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: 585bf4b780a8ad60ba2b33cede4f0092ff61ddfc)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj
2023-09-08 18:56:02 -07:00
committed by Richard Purdie
parent 14a6dc7c05
commit a1b3e8758e
3 changed files with 35 additions and 27 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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"
@@ -48,5 +49,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 = "(.*)"