2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-21 23:28:19 +00:00
Files
xcat-core/xCAT-test
Daniel Hilst 1c91237cfc test(kvm): cover the accelerator and CPU policy of an ARM guest
The aarch64 domain of the branch was measured on one host and guest pair, an
x86_64 hypervisor emulating aarch64. Three other pairs are not covered.

An aarch64 guest on an aarch64 hypervisor must be a kvm domain that takes the
host CPU, not a qemu domain pinned to cortex-a57. An aarch64 guest on a POWER
hypervisor must take neither the POWER CPU model, nor the pseries CPU topology,
nor the qemu-system-ppc64 emulator. A CPU mode from vm.othersettings must not
reach an emulated domain, because TCG has no host CPU.

The video assertion stated that the aarch64 virt machine has no virtio video
model. libvirt reports virtio for a riscv64 virt machine and not for an aarch64
one on the same host, and the aarch64 emulator there has no virtio-gpu device,
so the refusal came from that build and not from the machine type. The test now
expects the virtio model, as it does for riscv64.

The POWER controls now pass a hypervisor cputype, which is what builds the CPU
model and the topology element.

Ten of the new assertions fail on the unfixed tree.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-10-08 12:14:41 -03:00
..
…

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
Black-box service tests xCAT-test/blackboxtest/ python3 -m unittest discover -s tests, then blackboxtest run <conf> on a management node
Native host tests xCAT-test/native/*.t Explicit lab runs; see native/README.md
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.

blackboxtest is the odd one out: its Python unit tests and blackboxtest validate run offline like the others, but its point is the third column -- asking a management node what a booting node asks (DHCP, DNS, TFTP, HTTP, xcatd) and asserting on the answers. It talks to the services only as a client, so it does not depend on which DHCP server answers or on the xCAT database.

See unit/README.md, bats/README.md and blackboxtest/README.md for the detailed rules for each suite.