2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-21 15:18:19 +00:00

docs(test): document Ubuntu image fixture boundaries

Describe the native test prerequisites, external command doubles and the image-building behavior these fixtures do not qualify.
This commit is contained in:
Vinícius Ferrão
2026-10-07 22:00:18 -03:00
parent 320a1a1299
commit b2a73685fb
+28
View File
@@ -16,6 +16,34 @@ It can run as root or an ordinary user with user namespaces enabled. This case
checks service policy and ordering; it does not boot or reinstall an OS.
The client steps cannot access the source tree or the server postscripts directory.
## Ubuntu media and image fixtures
The pull-request workflow runs these four tests explicitly:
```
prove xCAT-test/native/ubuntu_live_media_guardrails.t \
xCAT-test/native/ubuntu_genimage_debootstrap_arch.t \
xCAT-test/native/ubuntu_genimage_apt_mirror.t \
xCAT-test/native/ubuntu_genimage_resolver_libs.t
```
They require Linux user namespaces, Bubblewrap, cpio, gzip, GNU timeout and
the system Perl in `/usr/bin` or `/bin`. Install the source-tree Perl dependencies,
including File::Slurper, DBI and DBD::SQLite, for that interpreter. Tools must be
in `/usr/bin`, `/bin`, `/usr/sbin` or `/sbin`. Run the tests as an ordinary user.
Missing Linux prerequisites fail the tests; other operating systems skip them.
The fixtures execute the checkout's unchanged Debian plugin and Ubuntu genimage
script with private filesystems and no network access. Media copying, database
updates, the image's APT sources.list and initrd archives are real. Decompression
and archive inspection are real too. The debootstrap command records its arguments;
the architecture test stops at its deliberate failure. The mirror test lets it
complete, replaces mount commands and stops at a deliberate apt-get update failure.
The initrd fixture supplies chroot ldd and depmod results. These tests do not install
packages, execute target-architecture binaries or prove that the generated image boots.
## Other native tests
Run the package and unprivileged namespace cases as an ordinary user:
```