selftests: always check mask returned by statmount(2)
STATMOUNT_MNT_OPTS can actually be missing if there are no options. This
is a change of behavior since 75ead69a71
("fs: don't let statmount return
empty strings").
The other checks shouldn't actually trigger, but add them for correctness
and for easier debugging if the test fails.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Link: https://lore.kernel.org/r/20250129160641.35485-1-mszeredi@redhat.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
5eb9871053
commit
2cc02059fb
1 changed files with 21 additions and 1 deletions
|
@ -383,6 +383,10 @@ static void test_statmount_mnt_point(void)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!(sm->mask & STATMOUNT_MNT_POINT)) {
|
||||
ksft_test_result_fail("missing STATMOUNT_MNT_POINT in mask\n");
|
||||
return;
|
||||
}
|
||||
if (strcmp(sm->str + sm->mnt_point, "/") != 0) {
|
||||
ksft_test_result_fail("unexpected mount point: '%s' != '/'\n",
|
||||
sm->str + sm->mnt_point);
|
||||
|
@ -408,6 +412,10 @@ static void test_statmount_mnt_root(void)
|
|||
strerror(errno));
|
||||
return;
|
||||
}
|
||||
if (!(sm->mask & STATMOUNT_MNT_ROOT)) {
|
||||
ksft_test_result_fail("missing STATMOUNT_MNT_ROOT in mask\n");
|
||||
return;
|
||||
}
|
||||
mnt_root = sm->str + sm->mnt_root;
|
||||
last_root = strrchr(mnt_root, '/');
|
||||
if (last_root)
|
||||
|
@ -437,6 +445,10 @@ static void test_statmount_fs_type(void)
|
|||
strerror(errno));
|
||||
return;
|
||||
}
|
||||
if (!(sm->mask & STATMOUNT_FS_TYPE)) {
|
||||
ksft_test_result_fail("missing STATMOUNT_FS_TYPE in mask\n");
|
||||
return;
|
||||
}
|
||||
fs_type = sm->str + sm->fs_type;
|
||||
for (s = known_fs; s != NULL; s++) {
|
||||
if (strcmp(fs_type, *s) == 0)
|
||||
|
@ -464,6 +476,11 @@ static void test_statmount_mnt_opts(void)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!(sm->mask & STATMOUNT_MNT_BASIC)) {
|
||||
ksft_test_result_fail("missing STATMOUNT_MNT_BASIC in mask\n");
|
||||
return;
|
||||
}
|
||||
|
||||
while (getline(&line, &len, f_mountinfo) != -1) {
|
||||
int i;
|
||||
char *p, *p2;
|
||||
|
@ -514,7 +531,10 @@ static void test_statmount_mnt_opts(void)
|
|||
if (p2)
|
||||
*p2 = '\0';
|
||||
|
||||
statmount_opts = sm->str + sm->mnt_opts;
|
||||
if (sm->mask & STATMOUNT_MNT_OPTS)
|
||||
statmount_opts = sm->str + sm->mnt_opts;
|
||||
else
|
||||
statmount_opts = "";
|
||||
if (strcmp(statmount_opts, p) != 0)
|
||||
ksft_test_result_fail(
|
||||
"unexpected mount options: '%s' != '%s'\n",
|
||||
|
|
Loading…
Add table
Reference in a new issue