mock --init failed for every openEuler target. repo.openeuler.org is the only source the chroots have, and it served a build host at 7 kB/s, then reset connections mid-transfer: "Curl error (28) Operation too slow", "Curl error (56) SSL_read: SSL_ERROR_SYSCALL", "Curl error (92) INTERNAL_ERROR". All three attempts per package failed, so the openEuler core build could not start. mock-configs/templates/openeuler-lts-xcat.tpl builds dnf.conf, so baseurl now lists two mirrors before repo.openeuler.org, which stays last as the authority of record, and timeout rises to 300. minrate stays at dnf's default: the rate abort is the only signal that moves dnf to the next baseurl. gpgcheck stays on and gpgkey still names repo.openeuler.org, so a mirror cannot change what is built. Measured on one host, same gcc rpm: repo.openeuler.org 7 kB/s, mirrors.tuna 2.8 MB/s, mirror.nju 3.9 MB/s. A cold mock --init then completed in 2m38s. native/mock-configs.t asserts the slowest host is not first, the canonical url is present, every url names the same release and architecture, and minrate is unset. It could not run before: native/fixtures/mock-configs.py copied two templates no source ships and raised FileNotFoundError, so the test measured no config at all. 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.