mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-10-20 14:45:41 +00:00
cc49558f77
The site table has two attributes for the same directory and only one of them is
covered: nothing pins what xcatdsklspost appends to mypostscript for
site.cleanupdiskfullxcatpost, on the path every updatenode run takes.
Drive append_xcatpost_cleanup against a scratch /xcatpost, run the mypostscript
it writes, and assert on the directory that comes back: the postscripts are gone
after a run that succeeds, updateflag.awk stays, and a run that fails keeps
everything. Add refute_grep to the helpers, because a "! grep" line cannot fail a
bats test unless it is the last line of one.
Three of the six tests fail on this commit. xcatdsklspost reads CLEANUPXCATPOST
and never reads CLEANUPDISKFULLXCATPOST.
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
(cherry picked from commit 501b1ba44d)
xCAT-test
Unit tests that run from the source checkout are split by implementation language:
| Test type | Location | Runner |
|---|---|---|
| Perl unit tests | xCAT-test/unit/*.t |
prove -r xCAT-test/unit |
| Shell unit tests | xCAT-test/bats/*.bats |
bats -r xCAT-test/bats |
| CLI functional tests | xCAT-test/autotest/testcase/ and xCAT-test/autotest/bundle/ |
xcattest -f <cluster.conf> -t <case> or xcattest -f <cluster.conf> -b <bundle> |
Use Perl .t tests for Perl modules, Perl scripts, templates, and repository
artifacts. Use BATS tests for shell-script behavior that can be exercised from
the checkout by sourcing a shell library or script and shadowing external
commands.
Shell behavior should not be tested by Perl tests that grep shell source. Put
those tests under xCAT-test/bats instead.
See unit/README.md and bats/README.md for the detailed rules for
each unit-test suite.