[LTP] [PATCH v2] open06.c: convert to new LTP API

Petr Vorel pvorel@suse.cz
Thu Aug 11 10:49:21 CEST 2022


Hi all,

> Hi Petr,

> On Thursday, July 14, 2022 6:48:48 PM IST Petr Vorel wrote:
> > Hi Avinesh,

> > > -	if (mknod(fname, S_IFIFO | 0644, 0) == -1)
> > > -		tst_brkm(TBROK, cleanup, "mknod FAILED");
> > > +	SAFE_MKFIFO(TEMP_FIFO, 0644);
> > You changed test from mknod() to mkfifo(). May I know why?
> > It would be worth to mention the reason in the commit message.

> > Should not we keep mknod() ?
> > SAFE_MKNOD(TEMP_FIFO, S_IFIFO | 0644, 0);

> > According to man mknod(2) your change is correct:

> >        POSIX.1-2001 says: "The only portable use of mknod() is to create
> >        a FIFO-special file.  If mode is not S_IFIFO or dev is not 0, the
> >        behavior of mknod() is unspecified."  However, nowadays one
> >        should never use mknod() for this purpose; one should use
> >        mkfifo(3), a function especially defined for this purpose.

> > Also note LTP tests should test even deprecated kernel API, we *might* want to
> > test both mkfifo() and mknod() via .test_variants. But I'd like to hear the
> > input of the others, because both glibc and musl use SYS_mknod or SYS_mknodat
> > for mkfifo() implementation with very thin wrapper, thus not sure if it's worth
> > to test also mknod().
> I changed to SAFE_MKFIFO as it seemed more intuitive in this open() test,
> but yes, I should have mentioned it in the commit message.
> I have not checked the mkfifo() implementation in libraries, so please
> lmk which one to proceed with here, I will send updated version if needed.

Thinking about it twice, given mknod() / mkfifo() are used in the setup it does
not look worth to run .test_variants just for this. So, unless anybody disagrees,
it's ok to keep SAFE_MKFIFO(). I'll wait little longer before merging it (with
note of changed function in the commit message).

Kind regards,
Petr


> > Kind regards,
> > Petr


> Thanks,
> Avinesh





More information about the ltp mailing list