mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-22 00:49:30 +00:00
3781b2255e
builddeb-genesis-base builds the Genesis payload in the host root. Its REQUIRED_PACKAGES list omits isc-dhcp-client, ifenslave and util-linux-extra, so dracut cannot find dhclient, ifenslave or hwclock. dracut_install reports each missing command and returns, the script does not read dracut's result, and the .deb is packaged with the holes. A Genesis image with no dhclient never obtains a provisioning lease, so the node netboots and never reports in. The EL path gates the payload: xCAT-genesis-base.spec runs verify-genesis-payload. The Ubuntu path runs no gate at all. genesis_ubuntu_build_root.t sources the Ubuntu dracut module with dracut_install shadowed, calls install(), and reads back the commands it installs unconditionally. It then evaluates the REQUIRED_PACKAGES assignment and asserts the build root supplies each one. Five of its eight assertions fail on this commit. 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.