mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-21 16:39:30 +00:00
e2ef0662aa
diskless_flat_vmothersetting_machine.t measures shell. It lifts two commands out of reg_linux_diskless_installation_flat, renders the xcattest placeholders, writes a wrapper that shadows lsdef and chdef, and shells out. The Perl adds nothing the shell cannot state, and the case file it reads is shell itself. The test moves to xCAT-test/bats, which the xcat_test workflow already runs. It keeps what it proved: on ppc64le, x86_64 and riscv64 the restore writes a machine type rather than an empty vmothersetting, the check that follows it passes, and the remove path compares two defined strings. A command that stops matching fails the test instead of covering nothing. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
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.