2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-21 07:08:12 +00:00

docs(test): describe Genesis test boundaries

This commit is contained in:
Vinícius Ferrão
2026-10-09 19:08:58 -03:00
parent 54ce837c6f
commit 105069634d
2 changed files with 47 additions and 0 deletions
+14
View File
@@ -43,3 +43,17 @@ The two legacy Red Hat version cases use GNU awk. CI installs both interpreters.
Package-manager commands are test doubles, so these cases check selection,
arguments and error handling, not repository
availability or package installation.
## Genesis startup
`genesis_ib_modules.bats` and `genesis_secondary_dhcp.bats` run the complete
`doxcat` script in a private filesystem and network namespace. They replace
external services and device commands, then check the boot interface and the
IPv4 and IPv6 DHCP requests. They do not contact a DHCP server or a BMC.
The startup cases require Linux, bats-core 1.4 or newer, Bubblewrap, Bash, GNU
core utilities, grep, sed, awk and permission to create user namespaces.
Missing Linux prerequisites fail these cases. Non-Linux hosts skip them.
The RPM prerequisite check requires `rpmspec` but does not use the sandbox.
Run containers with an init process to
reap children created by deliberate-fault tests.
+33
View File
@@ -96,3 +96,36 @@ EL6 or Ubuntu 14.04 environment. These cases do not qualify native SUSE package
transactions, dependency resolution, a running xcatd daemon, or machine boot.
The namespace fixture targets merged-/usr hosts. Container runs need namespace
permissions and an init process that reaps orphaned children.
## Genesis OpenEmbedded
`genesis_metadata.py` runs inside a Genesis KAS shell. It uses BitBake to
evaluate machine and package policy, install local-file recipes into temporary
directories, generate extension manifests and reject invalid extension
metadata. It does not extract or evaluate recipe source fragments.
For example, from the source checkout:
```sh
export KAS_WORK_DIR=/path/to/kas-work
export KAS_BUILD_DIR=/path/to/kas-build-x86_64
source_tree=$PWD
kas dump --format json xCAT-genesis-base/oe/kas/x86_64.yml >"${KAS_BUILD_DIR}.json"
kas shell xCAT-genesis-base/oe/kas/x86_64.yml -c \
"GENESIS_ARCHITECTURE=x86_64 GENESIS_KAS_CONFIG='${KAS_BUILD_DIR}.json' python3 '${source_tree}/xCAT-test/native/genesis_metadata.py'"
```
Use the pinned KAS requirements and OpenEmbedded host prerequisites from
`xCAT-genesis-base/oe`. Run as an ordinary user with an executable temporary
directory. BitBake's build directory must use a supported local filesystem.
The `genesis_openembedded` workflow runs the metadata tests for x86, x86_64,
ppc64, ppc64le, armv7hf, aarch64, riscv64 and s390x.
`python3 xCAT-test/native/genesis_console.py` builds and installs the complete
console with Meson, then runs the installed program. It requires a C compiler,
Meson, Ninja, pkg-config, and development packages for Newt and systemd.
The unit test retains checks of the vendored release key, requested kernel
fragments and console service configuration. The BATS tests retain runtime,
console, hardware and packet behavior. None of these checks replaces a full
image build, inspection of its resolved kernel configuration or a boot test.