Simplify scripts/cross-test-ssh.sh configuration.

Message ID 20221221223601.2258958-1-carlos@redhat.com
State Committed
Commit 9ffeabdf2e5078d8e8a4158e9b6be2ac2c616220
Headers
Series Simplify scripts/cross-test-ssh.sh configuration. |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Carlos O'Donell Dec. 21, 2022, 10:36 p.m. UTC
  With modern ssh clients and daemons it is required to use AcceptEnv and
SendEnv configuration options to correctly support testing the DSO sort
ordering tests.  This requirement is present because
scripts/dso-ordering-test.py injects GLIBC_TUNABLES to the left of the
${test_wrapper_env} and so it must both be sent by the ssh client and
accepted by the ssh daemon.  This requirement is removed in this change
and the injected GLIBC_TUNABLES is placed after ${run_program_env} and
so still correctly provides the override that the test requires.
This is similar to existing tests like elf/tst-pathopt.sh,
elf/tst-rtld-load-self.sh, and locale/tst-locale-locpath.sh.

Tested that it fixes two failures when cross-testing on aarch64 with
scripts/cross-test-ssh.sh and an ssh client and daemon that do not pass
GLIBC_TUNABLES. Without this fix such a configuration will report the
following failures (since the GLIBC_TUNABLES not preserved):
FAIL: elf/tst-bz15311
FAIL: elf/tst-bz28937

Tested without regression on native x86_64 and aarch64 builds.
---
 scripts/dso-ordering-test.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Florian Weimer Dec. 22, 2022, 7:15 a.m. UTC | #1
* Carlos O'Donell:

> With modern ssh clients and daemons it is required to use AcceptEnv and
> SendEnv configuration options to correctly support testing the DSO sort
> ordering tests.  This requirement is present because
> scripts/dso-ordering-test.py injects GLIBC_TUNABLES to the left of the
> ${test_wrapper_env} and so it must both be sent by the ssh client and
> accepted by the ssh daemon.  This requirement is removed in this change
> and the injected GLIBC_TUNABLES is placed after ${run_program_env} and
> so still correctly provides the override that the test requires.
> This is similar to existing tests like elf/tst-pathopt.sh,
> elf/tst-rtld-load-self.sh, and locale/tst-locale-locpath.sh.
>
> Tested that it fixes two failures when cross-testing on aarch64 with
> scripts/cross-test-ssh.sh and an ssh client and daemon that do not pass
> GLIBC_TUNABLES. Without this fix such a configuration will report the
> following failures (since the GLIBC_TUNABLES not preserved):
> FAIL: elf/tst-bz15311
> FAIL: elf/tst-bz28937

Nice explanation in the commit message.  Looks okay to me.

Reviewed-by: Florian Weimer <fweimer@redhat.com>

Thanks,
Florian
  
Carlos O'Donell Dec. 22, 2022, 4:09 p.m. UTC | #2
On 12/22/22 02:15, Florian Weimer wrote:
> * Carlos O'Donell:
> 
>> With modern ssh clients and daemons it is required to use AcceptEnv and
>> SendEnv configuration options to correctly support testing the DSO sort
>> ordering tests.  This requirement is present because
>> scripts/dso-ordering-test.py injects GLIBC_TUNABLES to the left of the
>> ${test_wrapper_env} and so it must both be sent by the ssh client and
>> accepted by the ssh daemon.  This requirement is removed in this change
>> and the injected GLIBC_TUNABLES is placed after ${run_program_env} and
>> so still correctly provides the override that the test requires.
>> This is similar to existing tests like elf/tst-pathopt.sh,
>> elf/tst-rtld-load-self.sh, and locale/tst-locale-locpath.sh.
>>
>> Tested that it fixes two failures when cross-testing on aarch64 with
>> scripts/cross-test-ssh.sh and an ssh client and daemon that do not pass
>> GLIBC_TUNABLES. Without this fix such a configuration will report the
>> following failures (since the GLIBC_TUNABLES not preserved):
>> FAIL: elf/tst-bz15311
>> FAIL: elf/tst-bz28937
> 
> Nice explanation in the commit message.  Looks okay to me.
> 
> Reviewed-by: Florian Weimer <fweimer@redhat.com>

Thanks. Pushed.
  

Patch

diff --git a/scripts/dso-ordering-test.py b/scripts/dso-ordering-test.py
index b87cf2f809..7c29c21632 100644
--- a/scripts/dso-ordering-test.py
+++ b/scripts/dso-ordering-test.py
@@ -745,7 +745,7 @@  def process_testcase(t):
                                  if tunable_env else "")
                 # Write out fragment of shell script for this single test.
                 test_descr.sh.write \
-                    ("%s${test_wrapper_env} ${run_program_env} \\\n"
+                    ("${test_wrapper_env} ${run_program_env} %s\\\n"
                      "${common_objpfx}support/test-run-command \\\n"
                      "${common_objpfx}elf/ld.so \\\n"
                      "--library-path ${common_objpfx}elf/%s:"