From 5aaae18b8943d167e7b97dd96cf3dccd26e77d95 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 8 Sep 2023 18:56:02 -0700 Subject: libc-test: Run as non-root user Some of tests impose rlimit on it before running which wont be imposed when running as root user. Fixes src/regression/pthread_atfork-errno-clobber.c:23: (pid = fork()) == -1 failed: fork succeeded despite rlimit src/regression/pthread_atfork-errno-clobber.c:23: (pid = fork()) == -1 failed: fork succeeded despite rlimit FAIL src/regression/pthread_atfork-errno-clobber-static.exe [status 1] (From OE-Core rev: 16075f19b49cb23ead2dec6746d2be6773ae4ae7) Signed-off-by: Khem Raj Signed-off-by: Alexandre Belloni (cherry picked from commit 585bf4b780a8ad60ba2b33cede4f0092ff61ddfc) Signed-off-by: Steve Sakoman --- meta/recipes-core/musl/libc-test/run-libc-ptests | 28 +++++++++++++++++++++++ meta/recipes-core/musl/libc-test/run-ptest | 29 ++---------------------- meta/recipes-core/musl/libc-test_git.bb | 5 ++++ 3 files changed, 35 insertions(+), 27 deletions(-) create mode 100644 meta/recipes-core/musl/libc-test/run-libc-ptests diff --git a/meta/recipes-core/musl/libc-test/run-libc-ptests b/meta/recipes-core/musl/libc-test/run-libc-ptests new file mode 100644 index 0000000000..0b4b687dec --- /dev/null +++ b/meta/recipes-core/musl/libc-test/run-libc-ptests @@ -0,0 +1,28 @@ +#!/bin/sh + +set -e + +cd /opt/libc-test +make cleanall +make run || true + +echo "" +echo "--- ptest result ---" +# libc-test runs tests by module(e.g. src/api) and generates sub-module test +# report(e.g. src/api/REPORT) first. After all tests finish, it generates the +# consolidated report file src/REPORT. +report="/opt/libc-test/src/REPORT" +if ! [ -f "${report}" ]; then + echo "${report} not found!" + echo "FAIL: libc-test" + exit 1 +# libc-test prints error on failure and prints nothing on success. +elif grep -q '^FAIL src.*\.exe.*' "${report}"; then + # Print test failure in ptest format. + # e.g. "FAIL src/api/main.exe [status 1]" -> "FAIL: api_main" + grep '^FAIL src.*\.exe.*' "${report}" \ + | sed 's|^FAIL src/|FAIL: |;s|/|_|;s|\.exe.*\]||' + exit 1 +else + echo "PASS: libc-test" +fi diff --git a/meta/recipes-core/musl/libc-test/run-ptest b/meta/recipes-core/musl/libc-test/run-ptest index 0b4b687dec..53cd34f506 100644 --- a/meta/recipes-core/musl/libc-test/run-ptest +++ b/meta/recipes-core/musl/libc-test/run-ptest @@ -1,28 +1,3 @@ #!/bin/sh - -set -e - -cd /opt/libc-test -make cleanall -make run || true - -echo "" -echo "--- ptest result ---" -# libc-test runs tests by module(e.g. src/api) and generates sub-module test -# report(e.g. src/api/REPORT) first. After all tests finish, it generates the -# consolidated report file src/REPORT. -report="/opt/libc-test/src/REPORT" -if ! [ -f "${report}" ]; then - echo "${report} not found!" - echo "FAIL: libc-test" - exit 1 -# libc-test prints error on failure and prints nothing on success. -elif grep -q '^FAIL src.*\.exe.*' "${report}"; then - # Print test failure in ptest format. - # e.g. "FAIL src/api/main.exe [status 1]" -> "FAIL: api_main" - grep '^FAIL src.*\.exe.*' "${report}" \ - | sed 's|^FAIL src/|FAIL: |;s|/|_|;s|\.exe.*\]||' - exit 1 -else - echo "PASS: libc-test" -fi +chown -R ptest:ptest /opt/libc-test + su -c ./run-libc-ptests ptest diff --git a/meta/recipes-core/musl/libc-test_git.bb b/meta/recipes-core/musl/libc-test_git.bb index 6d64592f0c..060f5f9f12 100644 --- a/meta/recipes-core/musl/libc-test_git.bb +++ b/meta/recipes-core/musl/libc-test_git.bb @@ -13,6 +13,7 @@ SRCREV = "18e28496adee3d84fefdda6efcb9c5b8996a2398" SRC_URI = " \ git://repo.or.cz/libc-test;branch=master;protocol=https \ file://run-ptest \ + file://run-libc-ptests \ " PV = "0+git${SRCPV}" @@ -47,5 +48,9 @@ do_install () { cp -r ${S}/src ${D}${install_path} } +do_install_ptest_base:append() { + install -Dm 0755 ${WORKDIR}/run-libc-ptests ${D}${PTEST_PATH}/run-libc-ptests +} + COMPATIBLE_HOST = "null" COMPATIBLE_HOST:libc-musl = "(.*)" -- cgit v1.2.3-54-g00ecf