2
0
mirror of https://github.com/xcat2/xcat-dep.git synced 2026-10-01 16:31:42 +00:00
Files
xcat-dep/native
Daniel Hilst 5d680aef0d fix(xcat-dep): every openEuler mock --init fails on a slow repo.openeuler.org
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>
2026-09-30 18:09:19 -03:00
..

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.