> Hello, > Petr Vorel <pvorel@xxxxxxx> writes: > > Hi Richie, > >> Hello, > >> Petr Vorel <pvorel@xxxxxxx> writes: > >> > df01.sh started to fail on XFS on certain configuration since mkfs.xfs > >> > and kernel 5.19. Implement fsfreeze instead of introducing external > >> > dependency. NOTE: implementation could fail on other filesystems > >> > (EOPNOTSUPP on exfat, ntfs, vfat). > >> > Suggested-by: Darrick J. Wong <djwong@xxxxxxxxxx> > >> > Suggested-by: Eric Sandeen <sandeen@xxxxxxxxxx> > >> > Signed-off-by: Petr Vorel <pvorel@xxxxxxx> > >> > --- > >> > Hi, > >> > FYI the background of this issue: > >> > https://lore.kernel.org/ltp/Yv5oaxsX6z2qxxF3@magnolia/ > >> > https://lore.kernel.org/ltp/974cc110-d47e-5fae-af5f-e2e610720e2d@xxxxxxxxxx/ > >> > @LTP developers: not sure if the consensus is to avoid LTP API > >> > completely (even use it just with TST_NO_DEFAULT_MAIN), if required I > >> Why would that be the consensus? :-) > > $ ls testcases/lib/*.c |wc -l > > 19 > > $ git grep -l TST_NO_DEFAULT_MAIN testcases/lib/*.c |wc -l > > 9 > > => 10 tests not use tst_test.h at all. > > => none is *not* defining TST_NO_DEFAULT_MAIN (not a big surprise), > > but 2 of them (testcases/lib/tst_device.c, testcases/lib/tst_get_free_pids.c) > > implement workaround to force messages to be printed from the new library > > (tst_test.c). > Possibly the reason for this is that it's not clear whether some core > library functions will work as expected if we create an executable with > TST_NO_DEFAULT_MAIN. > However most stuff works fine. > > static struct tst_test test = { > > }; > > tst_test = &test; > > My opinion also was based on Cyril's comments on nfs05_make_tree.c patch, but he > > probably meant to just use TST_NO_DEFAULT_MAIN instead of struct tst_test test: > > https://lore.kernel.org/ltp/YqxFo1iFzHatNRIl@yuki/ > Certainly we shouldn't put a test struct in anything which is not a > test. Possibly we could create a util struct > >> > can rewrite to use it just to get SAFE_*() macros (like > >> > testcases/lib/tst_checkpoint.c) or even with tst_test workarounds > >> > (testcases/lib/tst_get_free_pids.c). > >> Yes, it should work fine with TST_NO_DEFAULT_MAIN > > Both versions IMHO work well, the question what we prefer more. > > Do you vote for rewriting? > Yes, avoiding the LTP library caused a number of problems in sparse-ltp > and the ltx prototype. Then I found linking in the LTP libs with > TST_NO_DEFAULT_MAIN to ltx and using tst_res(TBROK, ...) etc. worked > fine. Well, this simple utility works without LTP library. It's more a matter of style. OK, I'll send TST_NO_DEFAULT_MAIN version and let the community decide. Kind regards, Petr