mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-10-02 08:51:44 +00:00
d6f25640b1
check_provisioning_source.sh counted every request the compute node had ever made, for any path. Both directions were wrong. A flat run left management-node requests for the same address, so a later hierarchical run read them as its own and failed. A service-node entry from an earlier run, or a 404 for /favicon.ico, satisfied the positive check without any boot payload being served. The script now takes a baseline. --baseline records how many lines each access log holds on the management node and on the service node, before provisioning, and the check counts only lines after that point. It counts only requests under /install or /tftpboot, which are the trees httpd serves a boot payload from. A log shorter than its baseline was rotated, so it is read from its first line. Without a baseline the check refuses to answer instead of reading the whole log. The three hierarchy cases call --baseline before nodeset. check_provisioning_source.bats covers both regressions: a management-node request before the baseline no longer fails the run, a service-node request before the baseline no longer satisfies it, and a request that carries no boot payload does neither. Removing the baseline comparison fails the first two. Removing the path filter fails the other two. 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.