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

docs(test): describe Genesis policy and terminal coverage

This commit is contained in:
Vinícius Ferrão
2026-10-16 21:51:03 -03:00
parent 8dab5e4989
commit 32a98d6d99
+21 -9
View File
@@ -247,6 +247,9 @@ permissions and an init process that reaps orphaned children.
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.
The NetworkManager case supplies an installed-unit fixture and runs the
recipe's install append to check the wait-online policy. It does not verify
the unit format produced by an upstream NetworkManager build.
The POWER patch case keeps BitBake's machine prepends and replaces only the
upstream kernel task body with a no-op. It applies the real patch to a small
metadata fixture, checks repeat runs and verifies that patch errors propagate.
@@ -277,18 +280,27 @@ Meson, Ninja, pkg-config, and development packages for Newt and systemd.
dependencies plus the `pyte` Python package, bubblewrap,
systemd-journal-remote and journalctl. It runs the linked console in a
pseudo-terminal and checks help and diagnostics navigation, scrolling,
return to the main screen, and F3 journal filtering, order and history limits.
Rollover cases check paused selection, expired entries, duplicate messages,
wrapped lines and returning to follow mode.
live status updates, diagnostic snapshots, and return to the main screen.
The F3 cases check journal filtering, order, history limits, follow mode,
paused selection, navigation and reopening. Rollover cases check expired
entries, duplicate messages and wrapped lines. The F12 cases check cancellation,
confirmation, terminal input, successful and nonzero exits, repeated launches
and executable errors.
It checks termination from the main screen, not from inside a dialog.
The journal cases need working Linux user and mount namespaces. On Ubuntu
24.04, the CI job enables them with
The journal and shell cases need working Linux user and mount namespaces.
On Ubuntu 24.04, the CI job enables them with
`sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0`.
They import private journal files, including appends while F3 is open, and
verify each import with journalctl. They do not start a journal service or
read the host journal. Missing tools or namespace support fail the tests;
they do not skip.
The journal cases import private journal files, including appends while F3
is open, and verify each import with journalctl. They do not start a journal
service or read the host journal. Missing tools or namespace support fail
the tests; they do not skip.
The shell cases mount a fixture directory over `/usr/libexec` in a private
namespace to replace the external shell launcher. The real console handles
confirmation, child execution, waiting and terminal restoration.
The per-test temporary root is the only writable host-backed directory.
The libexec mount is read-only. Other writable mounts are private.
The real maintenance shell is not run.
The Genesis runtime BATS cases need Bash, Perl, OpenSSL, coreutils, diffutils
and bubblewrap. The credential-file cases use a private `/etc` in a Linux