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

75 Commits

Author SHA1 Message Date
Vinícius Ferrão 35d01515eb test(mknb): exercise compression and archive publication 2026-10-14 13:29:21 -03:00
Daniel Hilst 2ae9abbaf8 Merge pull request #7936 from VersatusHPC/refactor/r26-genesis-reuse
refactor(genesis): share runtime helpers and build policy
2026-10-14 11:47:15 -03:00
Daniel Hilst 82a658ff23 Merge pull request #7917 from VersatusHPC/test/r26-package-artifacts
test(packaging): exercise package and repository behavior
2026-10-14 11:44:03 -03:00
Vinícius Ferrão eaf95fb5bd test(genesis): exercise newt dialog navigation 2026-10-13 22:16:50 -03:00
Vinícius Ferrão 1cf06e4f70 test(ci): keep package and unit results independent 2026-10-13 11:39:40 -03:00
Vinícius Ferrão dbbdcddcb2 test(packaging): query resolved RPM dependencies 2026-10-13 11:38:11 -03:00
Vinícius Ferrão e7c7babce0 test(build): exercise release repository finalization 2026-10-13 11:38:10 -03:00
Vinícius Ferrão aebc350e1a test(probe): exercise the built RPM payload 2026-10-13 11:38:10 -03:00
Vinícius Ferrão 2d751ac847 test(el10): exercise media and RPM package policy 2026-10-13 11:38:09 -03:00
Vinícius Ferrão 14d0ac27da test(genimage): check driver selection after driver updates 2026-10-13 11:38:09 -03:00
Daniel Hilst be9c063981 Merge pull request #7913 from VersatusHPC/test/r26-ubuntu-image-behavior
test(ubuntu): exercise media imports and genimage behavior
2026-10-13 11:21:29 -03:00
Daniel Hilst d1f63dfc25 Merge pull request #7925 from VersatusHPC/test/r26-genesis-behavior
test(genesis): exercise startup and OpenEmbedded build contracts
2026-10-13 10:16:23 -03:00
Daniel Hilst abf0f2228f Merge pull request #7935 from VersatusHPC/refactor/r26-package-lifecycle
refactor(packaging): share package lifecycle helpers
2026-10-13 10:00:14 -03:00
Vinícius Ferrão 54ce837c6f test(genesis): evaluate OpenEmbedded build contracts 2026-10-12 15:56:25 -03:00
Vinícius Ferrão 320a1a1299 test(ubuntu): inspect resolver files in generated initrds
Run the unchanged initrd builder with fixture binaries and inspect both generated archives. Replace source extraction with checks for selected libraries and their contents.
2026-10-12 13:58:45 -03:00
Vinícius Ferrão a4e14299ee test(ubuntu): exercise genimage mirror selection
Read site settings from an isolated database and inspect the sources.list written into the image. Stop at an injected package-metadata failure without downloading packages.
2026-10-12 13:58:45 -03:00
Vinícius Ferrão 5013f85774 test(ubuntu): check debootstrap architecture arguments
Run genimage and inspect the arguments passed to debootstrap instead of evaluating an extracted assignment. Keep the existing ppc64le pass-through explicit.
2026-10-12 13:58:45 -03:00
Vinícius Ferrão 114efc35e1 test(ubuntu): exercise live-media imports and warnings
Replace source-text assertions with real media imports in an isolated filesystem and database. Run the native fixture before the package build in CI.
2026-10-12 13:58:32 -03:00
Vinícius Ferrão 7dea5f68b2 ci(test): install squashfs-tools and pigz for the packimage tests
The packimage tests skip their squashfs and pigz cases unless mksquashfs,
unsquashfs and pigz are installed. Install them in the unit test job so
that CI runs those cases.
2026-10-12 12:15:51 -03:00
Daniel Hilst 1786f80541 Merge pull request #7926 from VersatusHPC/test/r26-package-script-behavior
test(packages): exercise go-xcat and postscript behavior
2026-10-12 10:29:13 -03:00
Vinícius Ferrão 41839052cc test(packaging): exercise upgrade logging and failure policy
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-10-11 11:50:49 -03:00
Vinícius Ferrão 905510bca9 test(go-xcat): read release files through the complete script
Run OS detection in a private filesystem with the real release parser.
Remove the rewritten-source Perl harness and require GNU awk for the
legacy Red Hat fallback.
2026-10-09 21:01:25 -03:00
Vinícius Ferrão 39139f7101 test(packaging): exercise Apache setup and response headers 2026-10-09 03:22:47 -03:00
Vinícius Ferrão 1b69975d62 test(packaging): exercise daemon restart callers 2026-10-09 03:22:47 -03:00
Vinícius Ferrão c69f9fb2b4 test(packaging): exercise Apache configuration upgrades 2026-10-09 03:22:46 -03:00
Vinícius Ferrão 3abd11220a test(packaging): exercise RPM service lifecycle 2026-10-09 03:22:46 -03:00
Vinícius Ferrão e83ddfe0d9 test(packaging): exercise Debian service lifecycle 2026-10-09 03:22:46 -03:00
Vinícius Ferrão 0766c7213b test(ci): prepare syslog for dispatch redaction checks
Install rsyslog and create its xCAT log directory before installing xCAT.
Wait for a unique syslog marker before changing test state, including when
the log does not exist yet. Reuse that wait for the completion marker.
2026-10-02 22:35:57 -03:00
Vinícius Ferrão c97b8d412b test(ci): exercise the GitHub action driver
Run the unchanged driver with command and filesystem fixtures instead of
matching its source. Check apt arguments, syntax exclusions, and failure
propagation. Parse the workflow with YAML::PP and install it in CI.
2026-10-02 19:24:04 -03:00
Daniel Hilst 0d2f1f6450 Merge pull request #7833 from VersatusHPC/fix/remove-xcat-genesis-builder
fix(xcat-core): Remove legacy xCAT-genesis-builder
2026-10-01 10:29:29 -03:00
Daniel Hilst 0682d56de6 Merge master into fix/remove-xcat-genesis-builder
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-10-01 09:03:27 -03:00
Daniel Hilst 988b1654e1 Merge master into test/client-server-testing
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-10-01 08:22:20 -03:00
Daniel Hilst 016a5ed8cb Merge master into test/client-server-testing
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-29 12:28:35 -03:00
Vinícius Ferrão 63cf366b96 Merge master into feature/openeuler-lts 2026-09-29 00:01:05 -03:00
Vinícius Ferrão f375080212 ci(test): install rpm for the spec tests
The GitHub check installs no rpm, so riscv64_packaging.t and
genesis_spec_target_arch.t skip every check that runs rpmspec. The
workflow now installs rpm, which provides rpmspec on Ubuntu.
2026-09-28 15:22:28 -03:00
Daniel Hilst e747f015bb Merge master into test/client-server-testing
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-28 14:30:14 -03:00
Daniel Hilst a095259a01 Merge pull request #7868 from VersatusHPC/test/r26-otherpkgs-upgrade-behavior
test(otherpkgs): exercise repository-scoped upgrades
2026-09-28 13:47:30 -03:00
Vinícius Ferrão 463eca19e5 Merge master into feature/openeuler-lts 2026-09-25 01:41:02 -03:00
Daniel Hilst 052d2d5fbe fix(xcat-core): Genesis base tests from master read the old directory and evaluate shell
Master added a workflow and several tests after this branch renamed
xCAT-genesis-builder to xCAT-genesis-base. They still name files under
xCAT-genesis-builder/, which no longer exists, so they fail or read
nothing. The OpenEmbedded workflow, six bats files and four unit tests
now use the new paths.

Two of those unit tests could reach the code only as shell.
genesis_ubuntu_build_root.t cut the package list out of
builddeb-genesis-base and evaluated it through bash.
genesis_payload_verification.t ran the bash verifier and parsed its
stderr.

XCAT::GenesisBuildRoot::required_packages() now returns the build-root
package list, and builddeb-genesis-base calls it. XCAT::GenesisPayload
holds the mandatory-command list and the payload check, and
verify-genesis-payload runs its main() with the same arguments, exit
codes and messages. stage_genesis_base_sources() stages the module
beside the script. Both modules use core Perl only.

The two tests now call these functions with chosen inputs and assert
the exact results. genesis_base_sources_staged.t expects the module in
the staged tarball.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-24 17:28:26 -03:00
Vinícius Ferrão 771da0e09e ci(genesis): run the OpenEmbedded check only when its inputs change
The OpenEmbedded metadata job ran on every pull request and took about
20 minutes. It reads only xCAT-genesis-builder/oe and
xCAT-genesis-scripts, and it pins its upstream sources to fixed commits.
A pull request that changes neither directory gets the same result each
time.

The job moves unchanged to its own workflow, which runs only when those
paths or the workflow file change. xcat_pr_test stays in xcat_test.yml
and runs on every pull request, because a required check that does not
run blocks the merge.
2026-09-23 13:39:05 -03:00
Vinícius Ferrão c7052489d2 ci(test): refresh package indexes before installing dependencies 2026-09-23 12:41:43 -03:00
Vinícius Ferrão f49941fb62 test: separate native openEuler checks from unit tests 2026-09-22 23:15:42 -03:00
Vinícius Ferrão 36168bc4f2 test(otherpkgs): exercise repository-scoped upgrades 2026-09-22 03:08:25 -03:00
Daniel Hilst bcc6acab5f fix(provtest): build the grub2 loader on Debian too, and run without one
The CI runner is Ubuntu, where the program is grub-mkimage and not
grub2-mkimage, so the fixture built no loader; grub2.pm writes no
configuration at all for a node whose loader is missing, setup died on the
node every later stage needs, and all eight wire cases failed for that one
reason.

Both names are tried now, and the EFI and BIOS module trees under either
/usr/lib/grub or /usr/lib/grub2. Where none of that exists the node is set
with xnba instead, and the stages that read a grub2 config say which
assertions they left out. The workflow installs grub-common and
grub-efi-amd64-bin so the runner tests the grub2 path itself.
2026-09-11 11:25:55 -03:00
Daniel Hilst 3e302e7f19 test(xcat-core): Introduce BATS & convert shell scripting tests to it
The go-xcat shell behavior tests were written as Perl harnesses, which made the shell assertions harder to read and kept shell-specific setup outside a native shell test framework.

Add BATS to the GitHub Actions dependency set, run BATS tests from the same preserved source tree as the Perl unit suite, and move the go-xcat repository checks into xCAT-test/autotest/bats.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-08 12:57:16 -03:00
Vinícius Ferrão cfbbdb283b test(genesis): validate s390x build metadata 2026-09-04 14:43:35 -03:00
Vinícius Ferrão e08804d0e8 test(genesis): cover s390x OpenEmbedded target 2026-09-04 12:48:31 -03:00
Daniel Hilst da282043be fix(build): run buildrpms.pl in a sandbox and install its fork manager in CI
buildrpms_source_only.t's CLI half failed in CI: the runner has no
Parallel::ForkManager, so buildrpms.pl aborted at compile time and never
reached the option check the test is about. The module is needed only by
the test suite -- buildrpms.pl is not a runtime dependency of any package
-- so it goes in the workflow apt list.

The same half also escaped its scratch tree. Before buildrpms.pl looks at
@ARGV it rewrites the tracked Gitinfo in its working directory and creates
$HOME/rpmbuild, so running it from the checkout left the tree dirty and
reached into the developer's home to exercise argument parsing. It now
runs from a staged copy with HOME pointed at the sandbox.

Exit 2 is pinned rather than "non-zero", though perl also exits 2 on a
compile abort -- which is exactly how this assertion stayed green in CI
while the program could not load. The message assertion is what separates
the two, and the comment now says so.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-02 12:39:44 -03:00
Vinícius Ferrão 8fadd0664e test(genesis): cover reviewed edge cases
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-08-25 11:27:13 -03:00
Vinícius Ferrão b09d38220b ci(genesis): enable BitBake user namespaces 2026-08-21 00:27:42 -03:00