From afa6e05789d35002fd7514d8de5c94baf6bffbee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Ferr=C3=A3o?= <2031761+viniciusferrao@users.noreply.github.com> Date: Fri, 25 Sep 2026 12:49:09 -0300 Subject: [PATCH] docs(test): document the BATS postscript sandbox --- xCAT-test/bats/README.md | 14 +++++++++++--- xCAT-test/unit/README.md | 13 ------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/xCAT-test/bats/README.md b/xCAT-test/bats/README.md index 11dce7d9d..2ed29552e 100644 --- a/xCAT-test/bats/README.md +++ b/xCAT-test/bats/README.md @@ -10,9 +10,6 @@ The GitHub Actions `xcat_test` workflow runs this command after the Perl `.t` unit tests. Use BATS for shell behavior that can be exercised from the source tree without an installed xCAT, a live management node, or real services. -The existing `otherpkgs_upgrade_scope.t` remains in `unit/` for its structured -command and repository assertions. See its [sandbox prerequisites](../unit/README.md#postscript-sandbox-prerequisites). - Prefer sourcing an existing shell library or sourceable script and calling the function under test. Keep reusable install-template helpers in `xCAT-server/share/xcat/install/scripts/scriptlib`, and reusable postscript @@ -22,3 +19,14 @@ commands so tests cannot write to the host. Extraction helpers in `helpers/shell_source.bash` are only for legacy code that cannot safely be sourced yet. Do not add Perl `.t` tests that grep shell source when the behavior can be tested with BATS. + +## Postscript sandbox prerequisites + +`otherpkgs_upgrade_scope.bats` runs the complete postscript in a Linux filesystem +sandbox because it writes to `/etc/yum.repos.d`. It requires Bubblewrap, Bash, +GNU core utilities, and permission to create user namespaces. The CI workflow +installs Bubblewrap and enables those namespaces. + +Missing prerequisites fail this test without stopping unrelated test files. +Non-Linux hosts report a skip. Set `TMPDIR` to a writable, executable filesystem +if the default temporary directory is mounted with `noexec`. diff --git a/xCAT-test/unit/README.md b/xCAT-test/unit/README.md index ce343b18d..daff2691c 100644 --- a/xCAT-test/unit/README.md +++ b/xCAT-test/unit/README.md @@ -10,19 +10,6 @@ which calls `run_unit_tests()` in `github_action_xcat_test.pl`: prove -r xCAT-test/unit ``` -## Postscript sandbox prerequisites - -`otherpkgs_upgrade_scope.t` runs the complete postscript in a Linux filesystem -sandbox. It requires Bubblewrap, Bash, GNU core utilities, and permission to create -user namespaces. The CI workflow installs Bubblewrap and enables those namespaces. -Missing prerequisites fail this test without stopping unrelated test files. -Non-Linux hosts report a skip. Set `TMPDIR` to a writable, executable filesystem -if the default temporary directory is mounted with `noexec`. - -This test is an exception to the shell-test placement rule below. It stays in Perl -to compare structured command arguments and generated repository records with the -existing test helpers. It does not read or extract postscript source. - You can run exactly the same thing from a clean checkout: ```