Starting with rhel 9.8 we are using the same rpmmacros format as Fedora
and RHEL 10, while RHEL older than 9.8 and 8 are using the "legacy"
format which pass-through the arguments to the cargo macros.
Rust will start marking all x86_64 code with SHSTK for CET support
in RHEL, CentOS and Fedora, by default and without need to pass
any flags.
This new test verifies that rust code always contain the SHSTK mark,
testing both binary and cdylib cases
Newer versions of stratisd have an obscene memory consumption,
reaching peaks of >5GiB in some rustc calls. This commit adds
logic to calculate a ratio of MiB per core in the system running
the test, then apply that number of cores to RPM_BUILD_NCPUS.
Start using 4GiB for building stratisd.
Older versions (RHEL 9 and older) are not affected
- Add analyze_build_failure() to distinguish resource failures from build failures
- Add EXIT trap to guarantee cleanup on timeout/SIGTERM/rlDie
- Execute rpmbuild silently, show only command and result
- Detect patterns: disk full, SIGKILL, missing dependencies
Do not rely on negative matches such as "cargo output does not
suggest using fetch_with_cli". Instead, verify that cargo actually
calls git fetch on the remote repo.
Use timeout to cover systems where git ignores the http timeout.
Increase test timeout to 15m
Some test systems have catch-all DNS resolvers that point
needs-proxy.invalid to loopback, resulting in a connection refused OS
error instead the expected Net error. This change uses a known invalid
IP to bypass any potential DNS, and also adds an extremely short timeout
to enforce a Net error.
Also make the test pattern matching a bit more fuzzy to avoid future
false positives.
Remove the standalone Cargo.toml file and integrate it into the main
script to be able to parametrize it.
Remove the "failed to find a pre-opened file..." string, as "error
opening" is enough. The specific error message is subject to change
and cause false positives.
Downstreamed version of the upstream test net_fetch_with_cli:
37b85ad9/tests/testsuite/git_auth.rs (L350)
This test needs DNS resolving so cargo is unable to reach the git repo provided
as dependency, hence suggesting to enable the git-fetch-with-cli config:
https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli
We need to downstream this test because koji builders don't have DNS resolving
hence it's impossible to pass the test there.
Additionally, we use https instead ssh for the remote because cargo does not
support libssh2 in RHEL/CentOS.
This commit contains the following changes:
* Remove wasm32-wasi package requirement in rust-1.84 and newer
* Compatibility fixes for nodejs in older RHEL, which is used
to test wasi.
* Updated script to test all the installed wasi targets
* Updated tmt metadata to install the new wasip1 target when relevant
* Moved nodejs dependency to tmt metadata on distro != rhel-8
* Disable librsvg2 in rhel 10 due to false positives
* Increase duration for stratisd as it times out in some archs
* Add extra logging with system resources at the script setup phase