mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-25 09:14:05 +00:00
19a7a41572
The Subiquity template offers the installer logs with "nc -l 8080" in error-commands. Subiquity waits for every error command to return, and that listener waits for a collector an unattended install never has, so a failed install stops there until the provisioning timeout resets the node. The test runs the template's own error commands with nc, tar and tail replaced, and requires that they return and that they write the end of the curtin log to the console the caller names. Both assertions fail before the fix: the first times out. Evidence: reg_linux_diskfull_installation_flat on Ubuntu 24.04 ppc64le, cluster xcat25. The node wrote no disk block and sent no packet for 18 minutes with the console at "acquiring and extracting image from cp:///tmp/.../mount". Port 8080 was open; one connection to it released the install and the console then reported the error. 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.