diff mbox series

Fix elf/tst-rtld-preload cross-testing

Message ID alpine.DEB.2.21.2001232131090.7536@digraph.polyomino.org.uk
State New
Headers show
Series Fix elf/tst-rtld-preload cross-testing | expand

Commit Message

Joseph Myers Jan. 23, 2020, 9:33 p.m. UTC
As noted in
<https://sourceware.org/ml/libc-alpha/2019-06/msg00824.html>,
elf/tst-rtld-preload fails when cross-testing because it attempts to
run the test wrapper with itself.  Unfortunately, that thread never
resulted in a complete and correct patch for that test.

This patch addresses the issues with that test more thoroughly.  The
test is changed not to use the wrapper twice, including updating the
message it prints about the command it runs to be more complete and
accurate after the change; the Makefile is changed not to pass the
redundant '$(test-wrapper)' argument.

Tested for Arm that this fixes the failure seen for that test in
cross-testing.

Comments

Carlos O'Donell Jan. 23, 2020, 10:26 p.m. UTC | #1
On 1/23/20 4:33 PM, Joseph Myers wrote:
> As noted in
> <https://sourceware.org/ml/libc-alpha/2019-06/msg00824.html>,
> elf/tst-rtld-preload fails when cross-testing because it attempts to
> run the test wrapper with itself.  Unfortunately, that thread never
> resulted in a complete and correct patch for that test.
> 
> This patch addresses the issues with that test more thoroughly.  The
> test is changed not to use the wrapper twice, including updating the
> message it prints about the command it runs to be more complete and
> accurate after the change; the Makefile is changed not to pass the
> redundant '$(test-wrapper)' argument.
> 
> Tested for Arm that this fixes the failure seen for that test in
> cross-testing.

OK for master with Siddhesh's approval.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

> diff --git a/elf/Makefile b/elf/Makefile
> index 0c6bd926a1..632a4d8b0f 100644
> --- a/elf/Makefile
> +++ b/elf/Makefile
> @@ -931,7 +931,7 @@ $(objpfx)tst-rtld-preload.out: tst-rtld-preload.sh $(objpfx)ld.so \
>  			       $(objpfx)preloadtest \
>  			       $(preloadtest-preloads:%=$(objpfx)%.so)
>  	$(SHELL) $< $(objpfx)ld.so $(objpfx)preloadtest \
> -		    '$(test-wrapper)' '$(test-wrapper-env)' '$(run_program_env)' \
> +		    '$(test-wrapper-env)' '$(run_program_env)' \

OK. This is correct because $(test-wrapper-env) is $(test-wrapper) with env.

>  		    '$(rpath-link)' '$(tst-rtld-preload-OBJS)' > $@; \
>  	$(evaluate-test)
>  
> diff --git a/elf/tst-rtld-preload.sh b/elf/tst-rtld-preload.sh
> index 02fe4a5a06..190d35c2ea 100755
> --- a/elf/tst-rtld-preload.sh
> +++ b/elf/tst-rtld-preload.sh
> @@ -21,17 +21,16 @@ set -e
>  
>  rtld=$1
>  test_program=$2
> -test_wrapper=$3
> -test_wrapper_env=$4
> -run_program_env=$5
> -library_path=$6
> -preload=$7
> +test_wrapper_env=$3
> +run_program_env=$4
> +library_path=$5
> +preload=$6

OK.

>  
> -echo "# [${test_wrapper}] [$rtld] [--library-path] [$library_path]" \
> -     "[--preload] [$preload] [$test_program]"
> +echo "# [${test_wrapper_env}] [${run_program_env}] [$rtld] [--library-path]" \
> +     "[$library_path] [--preload] [$preload] [$test_program]"

OK.

>  ${test_wrapper_env} \

OK. This is the point at which the test is run on the target.

>  ${run_program_env} \
> -${test_wrapper} $rtld --library-path "$library_path" \
> +$rtld --library-path "$library_path" \

OK.

>    --preload "$preload" $test_program 2>&1 && rc=0 || rc=$?
>  echo "# exit status $rc"
>  
>
Siddhesh Poyarekar Jan. 24, 2020, 2:59 a.m. UTC | #2
OK for master.

Thanks,
Siddhesh
diff mbox series

Patch

diff --git a/elf/Makefile b/elf/Makefile
index 0c6bd926a1..632a4d8b0f 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -931,7 +931,7 @@  $(objpfx)tst-rtld-preload.out: tst-rtld-preload.sh $(objpfx)ld.so \
 			       $(objpfx)preloadtest \
 			       $(preloadtest-preloads:%=$(objpfx)%.so)
 	$(SHELL) $< $(objpfx)ld.so $(objpfx)preloadtest \
-		    '$(test-wrapper)' '$(test-wrapper-env)' '$(run_program_env)' \
+		    '$(test-wrapper-env)' '$(run_program_env)' \
 		    '$(rpath-link)' '$(tst-rtld-preload-OBJS)' > $@; \
 	$(evaluate-test)
 
diff --git a/elf/tst-rtld-preload.sh b/elf/tst-rtld-preload.sh
index 02fe4a5a06..190d35c2ea 100755
--- a/elf/tst-rtld-preload.sh
+++ b/elf/tst-rtld-preload.sh
@@ -21,17 +21,16 @@  set -e
 
 rtld=$1
 test_program=$2
-test_wrapper=$3
-test_wrapper_env=$4
-run_program_env=$5
-library_path=$6
-preload=$7
+test_wrapper_env=$3
+run_program_env=$4
+library_path=$5
+preload=$6
 
-echo "# [${test_wrapper}] [$rtld] [--library-path] [$library_path]" \
-     "[--preload] [$preload] [$test_program]"
+echo "# [${test_wrapper_env}] [${run_program_env}] [$rtld] [--library-path]" \
+     "[$library_path] [--preload] [$preload] [$test_program]"
 ${test_wrapper_env} \
 ${run_program_env} \
-${test_wrapper} $rtld --library-path "$library_path" \
+$rtld --library-path "$library_path" \
   --preload "$preload" $test_program 2>&1 && rc=0 || rc=$?
 echo "# exit status $rc"