fstab-util: fix priority parsing and add test

(cherry picked from commit a75f4e2a02)

Conflicts:
	src/shared/fstab-util.c
	src/test/test-fstab-util.c
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2015-01-16 00:09:03 -05:00
parent 4c35b425f8
commit 6ae0597035
2 changed files with 21 additions and 2 deletions
+4 -2
View File
@@ -133,13 +133,15 @@ int fstab_find_pri(const char *options, int *ret) {
assert(ret);
r = fstab_filter_options(options, "pri\0", NULL, &opt, NULL);
if (r <= 0)
if (r < 0)
return r;
if (r == 0 || !opt)
return 0;
r = safe_atou(opt, &pri);
if (r < 0)
return r;
*ret = (int) r;
*ret = (int) pri;
return 1;
}
+17
View File
@@ -107,6 +107,23 @@ static void test_fstab_filter_options(void) {
do_fstab_filter_options("", "opt\0", 0, NULL, NULL, "");
}
static void test_fstab_find_pri(void) {
int pri = -1;
assert_se(fstab_find_pri("pri", &pri) == 0);
assert_se(pri == -1);
assert_se(fstab_find_pri("pri=11", &pri) == 1);
assert_se(pri == 11);
assert_se(fstab_find_pri("opt,pri=12,opt", &pri) == 1);
assert_se(pri == 12);
assert_se(fstab_find_pri("opt,opt,pri=12,pri=13", &pri) == 1);
assert_se(pri == 13);
}
int main(void) {
test_fstab_filter_options();
test_fstab_find_pri();
}