mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
rpm-sequoia: add ptest
In rpm-sequoia, some default paths in test code (OUT_DIR, CARGO_MANIFEST_DIR) are invalid at runtime and cause test failures. To fix this, patch the test code (symbols.rs) to support overriding these paths via optional environment variables: FORCE_RUNTIME_PATH_LIB and FORCE_RUNTIME_PATH_SRC. Also make -ptest package RDEPEND on -dev package. Tests take less than a second so this is added to PTEST_FAST. ptest result: |root@qemux86-64:~# ptest-runner rpm-sequoia |START: ptest-runner |2025-05-02T15:57 |BEGIN: /usr/lib/rpm-sequoia/ptest | |running 1 test |test symbols ... ok | |test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s | | |running 2 tests |test tests::merge_certs_mismatch ... ok |test tests::merge_certs ... ok | |test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s | |DURATION: 0 |END: /usr/lib/rpm-sequoia/ptest |2025-05-02T15:57 |STOP: ptest-runner |TOTAL: 1 FAIL: 0 (From OE-Core rev: 16499cf903718e6bf022a13baa09df610cd43d62) Signed-off-by: Ines KCHELFI <ines.kchelfi@smile.fr> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
931ff89bdc
commit
d3208b539d
|
@ -80,6 +80,7 @@ PTESTS_FAST = "\
|
|||
python3-webcolors \
|
||||
qemu \
|
||||
quilt \
|
||||
rpm-sequoia \
|
||||
sed \
|
||||
slang \
|
||||
wayland \
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
From 590937523deea4ad2a2ee0e1ae4412a8f59e0170 Mon Sep 17 00:00:00 2001
|
||||
From: Ines KCHELFI <ines.kchelfi@smile.fr>
|
||||
Date: Thu, 10 Apr 2025 15:14:11 +0200
|
||||
Subject: [PATCH] Use optional env vars to force runtime paths in tests
|
||||
|
||||
Signed-off-by: Ines KCHELFI <ines.kchelfi@smile.fr>
|
||||
Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm-sequoia/pull/86]
|
||||
---
|
||||
tests/symbols.rs | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tests/symbols.rs b/tests/symbols.rs
|
||||
index c16dd9b..dc4a42c 100644
|
||||
--- a/tests/symbols.rs
|
||||
+++ b/tests/symbols.rs
|
||||
@@ -14,7 +14,8 @@ fn symbols() -> anyhow::Result<()> {
|
||||
// OUT_DIR gives us
|
||||
// `/tmp/rpm-sequoia/debug/build/rpm-sequoia-HASH/out`.
|
||||
|
||||
- let out_dir = PathBuf::from(env!("OUT_DIR"));
|
||||
+ let out_dir = PathBuf::from(option_env!("FORCE_RUNTIME_PATH_LIB")
|
||||
+ .unwrap_or(env!("OUT_DIR")));
|
||||
let mut build_dir = out_dir;
|
||||
let lib = loop {
|
||||
let mut lib = build_dir.clone();
|
||||
@@ -53,7 +54,8 @@ fn symbols() -> anyhow::Result<()> {
|
||||
}
|
||||
|
||||
let mut expected_symbols_txt_fn
|
||||
- = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
||||
+ = PathBuf::from(option_env!("FORCE_RUNTIME_PATH_SRC")
|
||||
+ .unwrap_or(env!("CARGO_MANIFEST_DIR")));
|
||||
expected_symbols_txt_fn.push("src/symbols.txt");
|
||||
|
||||
let mut expected_symbols_txt = Vec::new();
|
|
@ -10,9 +10,12 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f0ff5ff7747cf7d394079c6ae87f5f0c"
|
|||
|
||||
DEPENDS = "openssl"
|
||||
|
||||
inherit pkgconfig rust cargo cargo-update-recipe-crates
|
||||
inherit pkgconfig rust cargo cargo-update-recipe-crates ptest-cargo
|
||||
|
||||
SRC_URI = "git://github.com/rpm-software-management/rpm-sequoia.git;protocol=https;branch=main \
|
||||
file://0001-Use-optional-env-vars-to-force-runtime-paths-in-test.patch \
|
||||
"
|
||||
|
||||
SRC_URI = "git://github.com/rpm-software-management/rpm-sequoia.git;protocol=https;branch=main"
|
||||
|
||||
SRCREV = "0667e04ae7fb8cf0490919978d69883d16400e41"
|
||||
|
||||
|
@ -41,6 +44,13 @@ do_compile:prepend () {
|
|||
export LIBDIR="${libdir}"
|
||||
}
|
||||
|
||||
# By default, ptest binaries contain host build dir paths.
|
||||
# Use custom environment variables to force these paths to match the target instead.
|
||||
do_compile_ptest_cargo:prepend() {
|
||||
os.environ["FORCE_RUNTIME_PATH_LIB"] = d.getVar("libdir")
|
||||
os.environ["FORCE_RUNTIME_PATH_SRC"] = d.getVar("PTEST_PATH")
|
||||
}
|
||||
|
||||
do_install:append () {
|
||||
# Move the library to the correct location expected by rpm-sequoia.pc
|
||||
mkdir -p ${D}${libdir}
|
||||
|
@ -54,6 +64,18 @@ do_install:append () {
|
|||
install -m644 ${S}/target/release/rpm-sequoia.pc ${D}${libdir}/pkgconfig
|
||||
}
|
||||
|
||||
do_install_ptest:append () {
|
||||
install -d ${D}${PTEST_PATH}/src
|
||||
install -m 644 ${S}/src/symbols.txt ${D}${PTEST_PATH}/src/symbols.txt
|
||||
}
|
||||
|
||||
# Tests need objdump
|
||||
# ptest requires a symlinked library that is only present in the -dev package,
|
||||
# so we add the -dev to runtime dependencies.
|
||||
# The "dev-deps" QA check is skipped to avoid warnings about this dev package dependency.
|
||||
RDEPENDS:${PN}-ptest += "binutils ${PN}-dev"
|
||||
INSANE_SKIP:${PN}-ptest += "dev-deps"
|
||||
|
||||
RDEPENDS:${PN} = "rpm-sequoia-crypto-policy"
|
||||
PACKAGE_WRITE_DEPS += "rpm-sequoia-crypto-policy-native"
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user