mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-25 09:14:05 +00:00
646b57c123
master changed the same three files this branch changes, so the pull request could not merge. Conflicts and how each was resolved: xCAT-genesis-builder/builddeb-genesis-base. Both sides teach the build root to cope with a package whose name moved between releases. master added optional_packages(), which keeps a package only where apt has a candidate, and called it for util-linux-extra. This branch added add_first_available(), which takes the first name apt carries and fails when it carries none, and calls it for bind9-dnsutils/dnsutils and util-linux-extra/util-linux, plus add_if_available() for tzdata-legacy. The branch covers master's case and two more, so its helpers are kept and optional_packages() goes with its only caller. Every other master change to this file, including the DHCP client fix, is preserved. xCAT-test/unit/genesis_payload_verification.t. master has four assertions this branch does not: two payloads missing an absolute path. Its version is kept. The branch replaced plan skip_all with a fail(), because skipping covers nothing when the file under test is the gate itself, and that change is applied to master's version. xCAT-test/unit/genesis_ubuntu_build_root.t. master's added assertions drive optional_packages() directly, which the resolved builder no longer has. This branch's version matches the implementation that survives, and it already dies rather than skipping when the builder is missing, so it is kept whole. prove -j4 -r xCAT-test/unit passes: 212 files, 5892 tests. 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.