mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-21 16:39:30 +00:00
75474f10fd
The EL 10 riscv64 compute node xcat56-cn never installs a package. Its kickstart carries, at line 21, "timezone Could not determine timezone checksum --utc"; anaconda answers "One or zero arguments are expected for the timezone command" and stops. The node holds status=installing until retry_install.sh reinstalls over it (build 114). gettimezone in Utils.pm compares /etc/localtime against every file under /usr/share/zoneinfo and returns the string "Could not determine timezone checksum" when that pipeline exits non-zero. The Rocky 10.2 riscv64 cloud image has no /etc/localtime and runs on UTC, so the pipeline prints nothing, exits 1, and the sentence is written into the kickstart as a name. This test drives the routine against a scratch root and asserts it names a zone for a root with a symlink, with /etc/timezone, and with neither -- and that the value is one token, which is all the kickstart timezone command accepts. 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.