From: Petr Vorel <pvorel@suse.cz>
To: "xuyang2018.jy@fujitsu.com" <xuyang2018.jy@fujitsu.com>
Cc: "ltp@lists.linux.it" <ltp@lists.linux.it>
Subject: Re: [LTP] [PATCH v3 0/2] mount03: Convert to new API
Date: Mon, 15 Aug 2022 08:40:37 +0200 [thread overview]
Message-ID: <YvnqZfyByO42kAX9@pevik> (raw)
In-Reply-To: <765b4f35-2cd0-04e1-e405-04261b5ef645@fujitsu.com>
Hi Xu,
> Hi Petr
> > Hi,
> > I wanted to speedup mount03 rewrite [1], thus I finished the work.
> > Changes include:
> > * simplify code by using:
> > - SAFE macros
> > - TST_EXP_FAIL() instead of TST_EXP_FAIL2()
> > - remove if () check from SAFE macros (that's the point of safe macros
> > to not having to use if () check
> > * fix mount03_setuid_test call, so it can expect 0 exit code
> > I wonder myself why this fixes it:
> > - SAFE_SETREUID(nobody_uid, nobody_gid);
> Why here is nobody_gid?
> > + SAFE_SETGID(nobody_gid);
> > + SAFE_SETREUID(-1, nobody_uid);
> What problem do you meet?
Using original code SAFE_SETREUID(nobody_uid, nobody_gid);
causes mount03_setuid_test to fail (exit 1).
The same code is in creat08.c, creat09.c, open10.c.
Did I answer your question?
> > * add missing TST_RESOURCE_COPY()
> > @Cyril: is it really needed?
> IMO, if we use resourcein test struct, we don't need it because ltp lib
> has move it to tmpdir, we can just use SAFE_COPY ie prctl06.c.
Ah, thanks!
SAFE_CP(TESTBIN, file);
...
> > +#define FLAG_DESC(x) .flag = x, .desc = #x
> > +static struct tcase {
> > + unsigned int flag;
> > + char *desc;
> > + void (*test)(void);
> > +} tcases[] = {
> > + {FLAG_DESC(MS_RDONLY), test_rdonly},
> > + {FLAG_DESC(MS_NODEV), test_nodev},
> > + {FLAG_DESC(MS_NOEXEC), test_noexec},
> > + {FLAG_DESC(MS_SYNCHRONOUS), test_synchronous},
> > + {FLAG_DESC(MS_RDONLY), test_remount},
> > + {FLAG_DESC(MS_NOSUID), test_nosuid},
> > + {FLAG_DESC(MS_NOATIME), test_noatime},
> > +};
> > - sleep(1);
> > +static void setup(void)
> > +{
> > + struct stat st;
> > + struct passwd *ltpuser = SAFE_GETPWNAM("nobody");
> > - SAFE_READ(0, otfd, readbuf, sizeof(readbuf));
> > + nobody_uid = ltpuser->pw_uid;
> > + nobody_gid = ltpuser->pw_gid;
> > - SAFE_FSTAT(otfd, &file_stat);
> > + snprintf(file, PATH_MAX, "%s/%s", MNTPOINT, TESTBIN);
> > + TST_RESOURCE_COPY(NULL, TESTBIN, file);
> In fact, old test case copy resource file when mount fileystem, but now,
> you change this. So in test_nosuid function, you test nosuid behaviour
> in tmpdir instead of different filesystems.
old code in setup:
fs_type = tst_dev_fs_type();
device = tst_acquire_device(cleanup);
if (!device)
tst_brkm(TCONF, cleanup, "Failed to obtain block device");
tst_mkfs(cleanup, device, fs_type, NULL, NULL);
SAFE_MKDIR(cleanup, mntpoint, DIR_MODE);
SAFE_MOUNT(cleanup, device, mntpoint, fs_type, 0, NULL);
TST_RESOURCE_COPY(cleanup, "mount03_setuid_test", path_name);
new code:
snprintf(file, PATH_MAX, "%s/%s", MNTPOINT, TESTBIN);
SAFE_CP(TESTBIN, file);
Well, Li in his v2 removed the code because there is .mntpoint = MNTPOINT, in
struct tst_test, therefore MNTPOINT is mounted in the filesystem, right?
But he also did SAFE_STAT and SAFE_CHMOD on MNTPOINT, which is IMHO wrong
(or at least different from the old code).
Kind regards,
Petr
> Best Regards
> Yang Xu
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2022-08-15 6:40 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-11 13:57 [LTP] [PATCH v3 0/2] mount03: Convert to new API Petr Vorel
2022-08-11 13:57 ` [LTP] [PATCH v3 1/2] tst_test_macros.h: Add TST_EXP_EQ_STR Petr Vorel
2022-08-15 3:17 ` xuyang2018.jy
2022-08-11 13:57 ` [LTP] [PATCH v3 2/2] mount03: Convert to new API Petr Vorel
2022-08-16 9:07 ` Cyril Hrubis
2022-08-16 9:18 ` Petr Vorel
2022-08-16 9:31 ` Cyril Hrubis
2022-08-15 5:15 ` [LTP] [PATCH v3 0/2] " xuyang2018.jy
2022-08-15 6:40 ` Petr Vorel [this message]
2022-08-15 6:58 ` xuyang2018.jy
2022-08-15 8:28 ` Petr Vorel
2022-08-15 9:57 ` xuyang2018.jy
2022-08-15 14:19 ` Petr Vorel
2022-08-16 3:40 ` xuyang2018.jy
2022-08-16 11:49 ` Petr Vorel
2022-08-16 13:01 ` Petr Vorel
2022-08-17 2:23 ` xuyang2018.jy
2022-08-22 13:28 ` Petr Vorel
2022-08-22 13:35 ` Petr Vorel
2022-08-16 4:37 ` xuyang2018.jy
2022-08-16 6:57 ` Petr Vorel
2022-08-16 7:28 ` xuyang2018.jy
2022-08-16 9:00 ` Cyril Hrubis
2022-08-16 9:06 ` Petr Vorel
2022-08-16 9:57 ` xuyang2018.jy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YvnqZfyByO42kAX9@pevik \
--to=pvorel@suse.cz \
--cc=ltp@lists.linux.it \
--cc=xuyang2018.jy@fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox