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

"H.J. Lu" <[email protected]>
Newsgroups gmane.comp.lib.glibc.alpha
Message-ID <CAMe9rOrz66jPjDKRORCBuQ66o2Yg09D4H5XdNyqNX7J+qPbUtg@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.
v4-0001-strace-tst-thp.sh-Allow-unsupported-THP-tests.patch (text/x-patch, 5.8 KB)
From 171385b2842da83f12043183a88ed4e2749ca38c Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <[email protected]>
Date: Sat, 4 Jul 2026 11:06:21 +0800
Subject: [PATCH v4] 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..188043acb5 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.