[PATCH v3] strace-tst-thp.sh: Allow unsupported THP tests

"H.J. Lu" <[email protected]>
Newsgroups gmane.comp.lib.glibc.alpha
Message-ID <CAMe9rOoHwM3XxOsr-nt7U=WNifAT2BwZYAnRrkWjJwca_=E0PA@mail.gmail.com>
Change strace-tst-thp.sh to

output=${test_prog}.$$
...
/bin/sh -c \
  "timeout -k 4 $((3*$TIMEOUTFACTOR)) ${cmd} --direct 2>&1" > ${output}
if grep -E "madvise\(0x[0-9a-f]+, [0-9]+, 0xe)" ${output}; then
...

and use $(BASH) to run it so that unsupported THP tests exit with
status 77.


-- 
H.J.
v3-0001-strace-tst-thp.sh-Allow-unsupported-THP-tests.patch (text/x-patch, 5.8 KB)
From e903daa01e88a2ef492ea4fd11c1accdedc5f3a5 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <[email protected]>
Date: Sat, 4 Jul 2026 11:06:21 +0800
Subject: [PATCH v3] strace-tst-thp.sh: Allow unsupported THP tests

Change strace-tst-thp.sh to

output=${test_prog}.$$
...
/bin/sh -c \
  "timeout -k 4 $((3*$TIMEOUTFACTOR)) ${cmd} --direct 2>&1" > ${output}
if grep -E "madvise\(0x[0-9a-f]+, [0-9]+, 0xe)" ${output}; then
...

and use $(BASH) to run it so that unsupported THP tests exit with
status 77.

Signed-off-by: H.J. Lu <[email protected]>
---
 sysdeps/unix/sysv/linux/Makefile          | 18 +++++++++---------
 sysdeps/unix/sysv/linux/strace-tst-thp.sh | 21 +++++++++++++--------
 2 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 14a56d5cc3..563a85aaa0 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -842,7 +842,7 @@ endif
 $(objpfx)strace-tst-thp-1-enabled.out: \
   $(..)sysdeps/unix/sysv/linux/strace-tst-thp.sh $(objpfx)ld.so \
   $(objpfx)tst-thp-1
-	$(SHELL) $< '$(strace-test-via-rtld-prefix)' \
+	$(BASH) $< '$(strace-test-via-rtld-prefix)' \
 		'$(test-wrapper-env)' \
 		'$(run-program-env) GLIBC_TUNABLES=glibc.elf.thp=1' \
 		$(objpfx)tst-thp-1 > $@; \
@@ -851,7 +851,7 @@ $(objpfx)strace-tst-thp-1-enabled.out: \
 $(objpfx)strace-tst-thp-1-disabled.out: \
   $(..)sysdeps/unix/sysv/linux/strace-tst-thp.sh $(objpfx)ld.so \
   $(objpfx)tst-thp-1
-	$(SHELL) $< '$(strace-test-via-rtld-prefix)' \
+	$(BASH) $< '$(strace-test-via-rtld-prefix)' \
 		'$(test-wrapper-env)' \
 		'$(run-program-env) GLIBC_TUNABLES=glibc.elf.thp=0' \
 		$(objpfx)tst-thp-1 > $@; \
@@ -860,7 +860,7 @@ $(objpfx)strace-tst-thp-1-disabled.out: \
 $(objpfx)strace-tst-thp-1-pde-enabled.out: \
   $(..)sysdeps/unix/sysv/linux/strace-tst-thp.sh $(objpfx)ld.so \
   $(objpfx)tst-thp-1-pde
-	$(SHELL) $< '$(strace-test-via-rtld-prefix)' \
+	$(BASH) $< '$(strace-test-via-rtld-prefix)' \
 		'$(test-wrapper-env)' \
 		'$(run-program-env) GLIBC_TUNABLES=glibc.elf.thp=1' \
 		$(objpfx)tst-thp-1-pde > $@; \
@@ -869,7 +869,7 @@ $(objpfx)strace-tst-thp-1-pde-enabled.out: \
 $(objpfx)strace-tst-thp-1-pde-disabled.out: \
   $(..)sysdeps/unix/sysv/linux/strace-tst-thp.sh $(objpfx)ld.so \
   $(objpfx)tst-thp-1-pde
-	$(SHELL) $< '$(strace-test-via-rtld-prefix)' \
+	$(BASH) $< '$(strace-test-via-rtld-prefix)' \
 		'$(test-wrapper-env)' \
 		'$(run-program-env) GLIBC_TUNABLES=glibc.elf.thp=0' \
 		$(objpfx)tst-thp-1-pde > $@; \
@@ -878,7 +878,7 @@ $(objpfx)strace-tst-thp-1-pde-disabled.out: \
 $(objpfx)strace-tst-thp-1-static-enabled.out: \
   $(..)sysdeps/unix/sysv/linux/strace-tst-thp.sh \
   $(objpfx)tst-thp-1-static
-	$(SHELL) $< '' '$(test-wrapper-env)' \
+	$(BASH) $< '' '$(test-wrapper-env)' \
 		'$(run-program-env) GLIBC_TUNABLES=glibc.elf.thp=1' \
 		$(objpfx)tst-thp-1-static > $@; \
 	  $(evaluate-test)
@@ -886,7 +886,7 @@ $(objpfx)strace-tst-thp-1-static-enabled.out: \
 $(objpfx)strace-tst-thp-1-static-disabled.out: \
   $(..)sysdeps/unix/sysv/linux/strace-tst-thp.sh \
   $(objpfx)tst-thp-1-static
-	$(SHELL) $< '' '$(test-wrapper-env)' \
+	$(BASH) $< '' '$(test-wrapper-env)' \
 		'$(run-program-env) GLIBC_TUNABLES=glibc.elf.thp=0' \
 		$(objpfx)tst-thp-1-static > $@; \
 	  $(evaluate-test)
@@ -894,7 +894,7 @@ $(objpfx)strace-tst-thp-1-static-disabled.out: \
 $(objpfx)strace-tst-thp-align-default.out: \
   $(..)sysdeps/unix/sysv/linux/strace-tst-thp.sh $(objpfx)ld.so \
   $(objpfx)tst-thp-align $(objpfx)tst-thp-size-mod.so
-	$(SHELL) $< '$(strace-test-via-rtld-prefix)' \
+	$(BASH) $< '$(strace-test-via-rtld-prefix)' \
 		'$(test-wrapper-env)' '$(run-program-env)' \
 		$(objpfx)tst-thp-align > $@; \
 	  $(evaluate-test)
@@ -902,7 +902,7 @@ $(objpfx)strace-tst-thp-align-default.out: \
 $(objpfx)strace-tst-thp-align-enabled.out: \
   $(..)sysdeps/unix/sysv/linux/strace-tst-thp.sh $(objpfx)ld.so \
   $(objpfx)tst-thp-align $(objpfx)tst-thp-size-mod.so
-	$(SHELL) $< '$(strace-test-via-rtld-prefix)' \
+	$(BASH) $< '$(strace-test-via-rtld-prefix)' \
 		'$(test-wrapper-env)' \
 		'$(run-program-env) GLIBC_TUNABLES=glibc.elf.thp=1' \
 		$(objpfx)tst-thp-align > $@; \
@@ -911,7 +911,7 @@ $(objpfx)strace-tst-thp-align-enabled.out: \
 $(objpfx)strace-tst-thp-align-disabled.out: \
   $(..)sysdeps/unix/sysv/linux/strace-tst-thp.sh $(objpfx)ld.so \
   $(objpfx)tst-thp-align $(objpfx)tst-thp-size-mod.so
-	$(SHELL) $< '$(strace-test-via-rtld-prefix)' \
+	$(BASH) $< '$(strace-test-via-rtld-prefix)' \
 		'$(test-wrapper-env)' \
 		'$(run-program-env) GLIBC_TUNABLES=glibc.elf.thp=0' \
 		$(objpfx)tst-thp-align > $@; \
diff --git a/sysdeps/unix/sysv/linux/strace-tst-thp.sh b/sysdeps/unix/sysv/linux/strace-tst-thp.sh
index bff7d3e7a0..7a3c0e1e33 100644
--- a/sysdeps/unix/sysv/linux/strace-tst-thp.sh
+++ b/sysdeps/unix/sysv/linux/strace-tst-thp.sh
@@ -17,12 +17,15 @@
 # License along with the GNU C Library; if not, see
 # <https://www.gnu.org/licenses/>.
 
-set -e
+set -eE
 
 rtld="$1"
 test_wrapper_env="$2"
 run_program_env="$3"
 test_prog="$4"
+output=${test_prog}.$$
+
+trap "rm -f ${output}" ERR
 
 cmd="${test_wrapper_env} ${run_program_env} strace -X raw ${rtld} ${test_prog}"
 
@@ -45,18 +48,20 @@ esac
 
 # Finally the actual test inside the test environment, using the just
 # build ld.so and new libraries to run the THP test under strace.
-if /bin/sh -c \
-  "timeout -k 4 $((3*$TIMEOUTFACTOR)) ${cmd} --direct 2>&1 \
-   | grep -E \"madvise\(0x[0-9a-f]+, [0-9]+, 0xe)\""; then
+/bin/sh -c \
+  "timeout -k 4 $((3*$TIMEOUTFACTOR)) ${cmd} --direct 2>&1" > ${output}
+if grep -E "madvise\(0x[0-9a-f]+, [0-9]+, 0xe)" ${output}; then
   if test ${strace_expected} = yes; then
-    exit 0
+    status=0
   else
-    exit 1
+    status=1
   fi
 else
   if test ${strace_expected} = no; then
-    exit 0
+    status=0
   else
-    exit 1
+    status=1
   fi
 fi
+rm -f ${output}
+exit ${status}
-- 
2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.