The published x86_64 goconserver is compiled GOAMD64=v3, and that binary stops a pre-AVX2 management node with SIGILL. Nothing caught it. A grep for an export line in the build script is no help: it passes when the export stops reaching the compiler, which is the failure itself. native/goconserver-openeuler.t now drives the cross path with an amd64 target and reads the setting out of the compiled binary. The stubbed compiler reports the setting the build asked for, and FIXTURE_GOAMD64 lets a case report a different one -- what a compiler that ignores the request looks like. Two more assertions hold the in-chroot gate down, because no unit test executes the generated spec. Twelve assertions fail on this tree. The fix that follows makes all 160 pass. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
Native packaging tests
The openEuler packaging tests build and sign RPMs or require Linux namespaces.
They run separately from prove -r t on a disposable host with the required
native tools:
prove -v native/*.t
Use an ordinary user for RPM builds. openeuler-power-inputs.t exercises the
whole build owner only on POWER with native Mock; its RPM admission checks also
run on x86_64. When running that test as root, set XCAT_TEST_BUILD_USER to an
unprivileged account for the fixture builds.
The fixtures are command doubles at the downloader and Mock boundaries. The POWER Mock adapter uses the installed Python API directly to load generated configurations. It does not execute another Python interpreter.
The Mock configuration test loads the installed Python API from a checked-in fixture and is kept outside the unit run.
Inspect TAP skips: a successful exit does not qualify an unavailable native tool or architecture.