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

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Tue Jul 14 20:39:55 GMT 2026



On 04/07/26 00:06, H.J. Lu wrote:
> 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
> ...
> 
> so that unsupported THP tests exit with status 77.
> 
> Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
> ---
>  sysdeps/unix/sysv/linux/strace-tst-thp.sh | 21 +++++++++++++--------
>  1 file changed, 13 insertions(+), 8 deletions(-)
> 
> 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

Unfortunately this is bash-only and Makefile will issue $(SHELL) even the
shebang requires bash (it will fail with dash for instance, and I think
it is redundant anyway).

I think you can just use -e here with the following changes:

>  
>  rtld="$1"
>  test_wrapper_env="$2"
>  run_program_env="$3"
>  test_prog="$4"
> +output=${test_prog}.$$
> +
> +trap "rm -f ${output}" ERR

Use 'trap 'rm -f "${output}"' EXIT' instead.

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

Also use double-score on ${output}.

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

This is also redundant with 'trap ... EXIT'.

> +exit ${status}



More information about the Libc-alpha mailing list