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:
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user