diff --git a/xCAT-test/autotest/testcase/integration/cases0 b/xCAT-test/autotest/testcase/integration/cases0 index a327ccffd..a3319a20a 100644 --- a/xCAT-test/autotest/testcase/integration/cases0 +++ b/xCAT-test/autotest/testcase/integration/cases0 @@ -4,4 +4,5 @@ os:Linux label:mn_only,ci_test,integration cmd:prove -I/opt/xcat/lib/perl -I/opt/xcat/lib/perl/xCAT -r /opt/xcat/share/xcat/tools/autotest/integration check:rc==0 +check:output=~Files=3 end diff --git a/xCAT-test/integration/README.md b/xCAT-test/integration/README.md index b30e5ee35..5b2ae6df5 100644 --- a/xCAT-test/integration/README.md +++ b/xCAT-test/integration/README.md @@ -27,6 +27,14 @@ against it. Note the `-I` flags: unlike the unit tests these run from the installed location, so they pick up xCAT modules from `/opt/xcat/lib/perl` rather than from a source tree. +The case checks `rc==0` and `output=~Files=3`. The second assertion is there because +`prove` exits 0 both when tests pass and when they all skip, so `rc==0` alone would let +the case report green having run nothing. Matching `Files=3` proves `prove` actually +found all three files, which catches a packaging regression or a file being renamed +without the count being updated here. **Add to that number when you add a test.** A +missing directory is already caught by `rc==0` -- `prove -r` on a path that does not +exist exits 2. + Note also that `github_action_xcat_test.pl` invokes each case through `sudo`, so in CI these tests run as **root** while the unit tests run unprivileged. That is the right way round -- integration tests legitimately need to write to places like `/etc/kea`,