What? Big test mock that checks all our file accesses whether we are touching anything outside $srcdir or $builddir. Why? Because it has happened in the past (and is happening even now as you'll see later) that our test suite produces nondeterministic results because of a file in live system being accessible or having some specific value. How? Well, this is merely introducing a mock library that every C program on Linux will use. I'm not aware of any approach for our shell tests. The mock library then collects all the paths outside $srcdir or $builddir and prints them into a file. The file is then checked against a white list, because some accesses might be desirable. Unfortunately, as you'll learn in the 4/4 commit message, I was unable to wire this up to 'make check' so this is accessible under 'make check-access' target. If there's some access outside aforementioned directories, the path will be printed out. So far there is plenty of them. For instance, in qemuxml2argvtest we are checking /proc/sys/crypto/fips_enabled for each test. Ouch. What's left to do? a) Enhance white list b) Wire this up to 'check' c) Test d) Review Michal Privoznik (4): seclabeltest: Update to use VIRT_TEST_MAIN tests: Introduce global mock library virtestmock: Print invalid file accesses into a file tests: Introduce check-file-access.pl .gitignore | 1 + HACKING | 11 ++ Makefile.am | 3 + cfg.mk | 8 +- docs/hacking.html.in | 15 +++ tests/Makefile.am | 28 +++- tests/check-file-access.pl | 106 +++++++++++++++ tests/file_access_whitelist.txt | 19 +++ tests/seclabeltest.c | 7 +- tests/testutils.c | 58 ++++++++- tests/testutils.h | 29 +---- tests/vircgroupmock.c | 6 +- tests/virpcimock.c | 6 +- tests/virtestmock.c | 279 ++++++++++++++++++++++++++++++++++++++++ 14 files changed, 535 insertions(+), 41 deletions(-) create mode 100755 tests/check-file-access.pl create mode 100644 tests/file_access_whitelist.txt create mode 100644 tests/virtestmock.c -- 2.7.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list