On 11/21/2024 12:34 PM, Bruce Ashfield wrote:
CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and know
the content is safe.
In message: [meta-virtualization][PATCH] cri-o: enable ptest
on 15/11/2024 Zhang, Peng (Paul) (CN) via lists.yoctoproject.org wrote:
From: Zhang Peng <[email protected]>
The ptest build for cri-o was previously disabled due to issues
introduced with Go 1.11, which borken the build process. With the
current Go version, these issues no longer occur, and the ptest build is
now functional.
This commit enables ptest support and resolves the "TMPDIR
[buildpaths]" issue encountered during the ptest build process.
Can you include a log of the ptest running in the commit log ?
That way the baseline pass/fail is understood and captured.
The CRI-O ptest suite consists of a total of 382 tests. Including the
entire test results in the commit message would make it overly
cumbersome and difficult to navigate. Instead, I propose including only
the list of failed and skipped tests in the commit message, as these
provide the most critical information.
Alternatively, the full test results could be stored in a README or
another documentation file. This approach ensures the comprehensive test
results are preserved as a baseline without bloating the commit message.
Would you prefer the abbreviated results in the commit message, or a
detailed log stored in a separate file?
Signed-off-by: Zhang Peng <[email protected]>
---
recipes-containers/cri-o/cri-o_git.bb | 37 ++++++++++++++++++-
.../0001-Add-trimpath-to-build-nri.test.patch | 31 ++++++++++++++++
recipes-containers/cri-o/files/run-ptest | 11 ++++++
3 files changed, 77 insertions(+), 2 deletions(-)
create mode 100644
recipes-containers/cri-o/files/0001-Add-trimpath-to-build-nri.test.patch
create mode 100644 recipes-containers/cri-o/files/run-ptest
diff --git a/recipes-containers/cri-o/cri-o_git.bb
b/recipes-containers/cri-o/cri-o_git.bb
index efc86fbe..596a43e2 100644
--- a/recipes-containers/cri-o/cri-o_git.bb
+++ b/recipes-containers/cri-o/cri-o_git.bb
@@ -17,7 +17,9 @@ At a high level, we expect the scope of cri-o to be
restricted to the following
SRCREV_cri-o = "20c06a19cb395445620c31730c0f1a0a1922eaae"
SRC_URI = "\
git://github.com/kubernetes-sigs/cri-o.git;branch=release-1.31;name=cri-o;protocol=https;destsuffix=${GO_SRCURI_DESTSUFFIX}
\
+ file://0001-Add-trimpath-to-build-nri.test.patch \
file://crio.conf \
+ file://run-ptest \
"
# Apache-2.0 for docker
@@ -28,7 +30,7 @@ GO_IMPORT = "import"
PV = "1.31.0+git${SRCREV_cri-o}"
-inherit features_check
+inherit features_check ptest
REQUIRED_DISTRO_FEATURES ?= "seccomp"
DEPENDS = " \
@@ -69,6 +71,13 @@ do_compile() {
oe_runmake binaries
}
+do_compile_ptest() {
+ set +e
+
+ cd ${S}/src/import
+
+ oe_runmake test-binaries
+}
SYSTEMD_PACKAGES =
"${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
SYSTEMD_SERVICE:${PN} =
"${@bb.utils.contains('DISTRO_FEATURES','systemd','crio.service','',d)}"
SYSTEMD_AUTO_ENABLE:${PN} = "enable"
@@ -100,6 +109,14 @@ do_install() {
install -d ${D}${localstatedir}/lib/crio
}
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/test
+ install -d ${D}${PTEST_PATH}/bin
+ install -d ${D}${PTEST_PATH}/vendor
+ cp -rf ${S}/src/import/test ${D}${PTEST_PATH}
+ cp -rf ${S}/src/import/bin ${D}${PTEST_PATH}
+ cp -rf ${S}/src/import/vendor ${D}${PTEST_PATH}
+}
I'm curious. Why does the vendor directory need to be
copied / installed for the ptest ?
The ctr_seccomp.bats test requires a JSON file located at
vendor/github.com/containers/common/pkg/seccomp/seccomp.json. This file
is accessed via the CONTAINER_SECCOMP_PROFILE environment variable,
which defaults to the path within the vendor directory. Although this
variable can be overridden with a custom-defined path, the default
configuration relies on the vendor directory.
This dependency contributes to only two sub-tests passing within the
suite. I share your concern about whether this folder should be
included. Another option is to allow ctr_seccomp.bats to fail by default
if the vendor directory is not installed.
Would you recommend keeping the directory or accept the tests failed to
avoid requiring the vendor directory?
FILES:${PN}-config = "${sysconfdir}/crio/config/*"
FILES:${PN} += "${systemd_unitdir}/system/*"
FILES:${PN} += "/usr/local/bin/*"
@@ -109,7 +126,23 @@ FILES:${PN} += "/usr/share/containers/oci/hooks.d"
ALLOW_EMPTY:${PN} = "1"
INSANE_SKIP:${PN} += "ldflags already-stripped textrel"
+INSANE_SKIP:${PN}-ptest += "textrel"
-deltask compile_ptest_base
+RDEPENDS:${PN}-ptest += " \
+ bash \
+ bats \
+ cni \
+ crictl \
+ bind-utils \
+ coreutils \
+ dbus-daemon-proxy \
+ iproute2 \
+ util-linux-unshare \
+ jq \
+ ipcalc \
+ slirp4netns \
+ parallel \
+ podman \
+"
This is an extensive list of rdepends for a ptest.
What exactly is it testing ? I think we need to document
in a README what exactly is being tested, since this
dependency list tells me that it is not trivial and it
will be prone to breakage.
Given the suite's complexity, documenting the detailed purpose of each
dependency would be challenging and potentially incomplete, as many
dependencies are used across multiple tests. However, I agree that a
README summarizing the primary focus areas of the tests (e.g.,
networking, security, etc.) could provide clarity and help maintainability.
Let me know if you’d prefer a high-level summary of the tests or
additional details in the README.
//Peng
Bruce
COMPATIBLE_HOST = "^(?!(qemu)?mips).*"
diff --git
a/recipes-containers/cri-o/files/0001-Add-trimpath-to-build-nri.test.patch
b/recipes-containers/cri-o/files/0001-Add-trimpath-to-build-nri.test.patch
new file mode 100644
index 00000000..c6be41f0
--- /dev/null
+++ b/recipes-containers/cri-o/files/0001-Add-trimpath-to-build-nri.test.patch
@@ -0,0 +1,31 @@
+From 0bf230f59d211044e7993543e010b0d7f9dcead3 Mon Sep 17 00:00:00 2001
+From: Peng Zhang <[email protected]>
+Date: Fri, 25 Oct 2024 10:42:02 +0800
+Subject: [PATCH] Add --trimpath to build nri.test
+
+when build test-binary, TMPDIR[buildpaths] error found in nri.test
+to fix this error, add "--trimpath" option to build nri.test.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Peng Zhang <[email protected]>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index:
cri-o-1.31.0+git20c06a19cb395445620c31730c0f1a0a1922eaae/src/import/Makefile
+===================================================================
+---
cri-o-1.31.0+git20c06a19cb395445620c31730c0f1a0a1922eaae.orig/src/import/Makefile
++++
cri-o-1.31.0+git20c06a19cb395445620c31730c0f1a0a1922eaae/src/import/Makefile
+@@ -169,7 +169,7 @@ test/checkcriu/checkcriu: $(GO_FILES)
+ $(GO_BUILD) $(GCFLAGS) $(GO_LDFLAGS) -tags "$(BUILDTAGS)" -o $@
./test/checkcriu
+
+ test/nri/nri.test: $(wildcard test/nri/*.go)
+- $(GO) test --tags "test $(BUILDTAGS)" -c ./test/nri -o $@
++ $(GO) test --tags "test $(BUILDTAGS)" -c ./test/nri -o $@ ${TRIMPATH}
+
+ bin/crio: $(GO_FILES)
+ $(GO_BUILD) $(GCFLAGS) $(GO_LDFLAGS) -tags "$(BUILDTAGS)" -o $@ ./cmd/crio
+--
+2.34.1
+
diff --git a/recipes-containers/cri-o/files/run-ptest
b/recipes-containers/cri-o/files/run-ptest
new file mode 100644
index 00000000..62abe959
--- /dev/null
+++ b/recipes-containers/cri-o/files/run-ptest
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+./test/test_runner.sh | while IFS= read -r line; do
+ if [[ $line =~ ^not\ ok ]]; then
+ echo "FAIL: ${line#not ok }"
+ elif [[ $line =~ ^ok && ! $line =~ \#\ skip ]]; then
+ echo "PASS: ${line#ok }"
+ elif [[ $line =~ ^ok.*#\ skip ]]; then
+ echo "SKIP: ${line#ok }"
+ fi
+done
--
2.35.5
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#8994):
https://lists.yoctoproject.org/g/meta-virtualization/message/8994
Mute This Topic: https://lists.yoctoproject.org/mt/109593003/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-