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. -- Thank you, Richard.