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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.