There are several Lustre test scripts that run tests from an external program. These executables are themselves composed of several test routines. The test suites and test numbers that call these programs are:
sanity test_27D runs tests from llapi_layout_test.c
sanity test_154g runs tests from llapi_fid_test.c
sanity test_243 runs tests from group_lock_test.c
sanity test_244 runs tests from sendfile_grouplock.c
sanity test_255c runs tests from lockahead_test.c
sanity test_405 runs tests from swap_lock_test.c
sanity-hsm test_500 runs tests from llapi_hsm_test.c
sanityn test 18 runs tests from mmap_sanity.c
These external routines will sometimes fail in known situations. For example, sanity test 405 subtest 16 fails when a client mounts a Lustre file system subdirectory; see https://testing.whamcloud.com/test_sets/37edc450-e915-11e8-b67f-52540065bddc . In these situations, we’d like to skip the test during testing instead of it failing.
llapi_layout_test.c and mmap_sanity.c have the ability to skip tests. All others do not have the ability to skip tests.
We should pull out all the common routines, structures, etc. from each of these test (.c) programs and create a library that they can link to. If we pull out the skip ability from llapi_layout_test.c and mmap_sanity.c, then we can implement this in all the other programs.
This work will cut down on code duplication and add more flexibility to our testing.