busybox: Skip a non-posix awk ptest on musl systems

The test depends on BSD extension REG_STARTEND which
is not in POSIX, glibc does implement this extention so it
works on glibc systems but musl does not and it needs to
be skipped and LIBC environment variable is used in this
test as well to run it conditionally.

(From OE-Core rev: a74eaca8e1830d09c5ff678c7d361cedbfc6f68a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
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:
Khem Raj
2025-07-24 00:24:13 -07:00
committed by Richard Purdie
parent 3d691e6740
commit 7e36ded417
4 changed files with 32 additions and 1 deletions

View File

@@ -371,6 +371,7 @@ do_install_ptest () {
rm -rf ${D}${PTEST_PATH}/testsuite/wget
sort ${B}/.config > ${D}${PTEST_PATH}/.config
ln -s ${base_bindir}/busybox ${D}${PTEST_PATH}/busybox
sed -i -e 's|LIBC="<libc>"|LIBC=${TCLIBC}|g' ${D}${PTEST_PATH}/run-ptest
}
inherit update-alternatives

View File

@@ -0,0 +1,28 @@
From 7ee04187bd59acc922982fb49e76ba6c39dd8a91 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 11 May 2025 08:36:54 -0700
Subject: [PATCH] busybox: Add awk gsub erroneous word start match test to know fails on musl
Musl does not implement this BSD extension REG_STARTEND and the test states
that it will fail without this extention, therefore guard it with SKIP_KNOWN_BUGS
so it can be ignored.
Upstream-Status: Submitted [https://lists.busybox.net/pipermail/busybox/2025-July/091623.html]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
testsuite/awk.tests | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/testsuite/awk.tests b/testsuite/awk.tests
index be25f6696..c56e217e8 100755
--- a/testsuite/awk.tests
+++ b/testsuite/awk.tests
@@ -612,7 +612,7 @@ b
# Currently we use REG_STARTEND ("This flag is a BSD extension, not present in POSIX")
# to implement the code to handle this correctly, but if your libc has no REG_STARTEND,
# the alternative code mishandles this case.
-testing 'awk gsub erroneous word start match' \
+test x"$LIBC" != x"musl" && testing 'awk gsub erroneous word start match' \
"awk 'BEGIN { a=\"abc\"; gsub(/\<b*/,\"\",a); print a }'" \
'abc\n' \
'' ''

View File

@@ -55,7 +55,9 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://0003-start-stop-false.patch \
file://0001-archival-disallow-path-traversals-CVE-2023-39810.patch \
file://0001-hwclock-Check-for-SYS_settimeofday-before-calling-sy.patch \
file://0001-busybox-Add-awk-gsub-erroneous-word-start-match-test.patch \
"
SRC_URI:append:libc-musl = " file://musl.cfg"
SRC_URI:append:x86-64 = " file://sha_accel.cfg"
SRC_URI[tarball.sha256sum] = "3311dff32e746499f4df0d5df04d7eb396382d7e108bb9250e7b519b837043a4"

View File

@@ -4,6 +4,6 @@ current_path=$(readlink -f $0)
export bindir=$(dirname $current_path)
export PATH=$bindir/bin:$PATH
export SKIP_KNOWN_BUGS=1
export LIBC="<libc>"
cd testsuite || exit 1
LANG=C.UTF-8 ./runtest -v | sed -r 's/^(SKIPPED|UNTESTED):/SKIP:/'