tst: Extend cross-test-ssh.sh to support passing glibc tunables

This patch adds new flag --glibctunables to the cross-test-ssh.sh script
to pass Glibc tunables to the system on which tests are executed.

The value to pass can be also provided via the GLIBC_TUNABLES environment
variable.

This works similar to the TIMEOUTFACTOR variable.

Sometimes it is useful to cross test glibc with some non-default tunable,
and a global environment variable is the easiest way to inject some
tunable value into most tests. With this patch using cross-test-ssh.sh
script becomes very similar to running a test natively on the local host
when using non-default tunable is important.
Reviewed-by: Arjun Shankar <arjun@redhat.com>
This commit is contained in:
Yury Khrustalev 2024-09-09 09:29:14 +01:00 committed by Arjun Shankar
parent c9154cad66
commit e64a1e81aa

View File

@ -32,6 +32,9 @@ instead of ordinary 'ssh'.
If the '--timeoutfactor FACTOR' flag is present, set TIMEOUTFACTOR on If the '--timeoutfactor FACTOR' flag is present, set TIMEOUTFACTOR on
the remote machine to the specified FACTOR. the remote machine to the specified FACTOR.
If the '--glibctunables VALUE' flag is present, set GLIBC_TUNABLES on
the remote machine to the specified VALUE.
If the '--allow-time-setting' flag is present, set If the '--allow-time-setting' flag is present, set
GLIBC_TEST_ALLOW_TIME_SETTING on the remote machine to indicate that GLIBC_TEST_ALLOW_TIME_SETTING on the remote machine to indicate that
time can be safely adjusted (e.g. on a virtual machine). time can be safely adjusted (e.g. on a virtual machine).
@ -66,6 +69,7 @@ appropriately."
ssh='ssh' ssh='ssh'
timeoutfactor=$TIMEOUTFACTOR timeoutfactor=$TIMEOUTFACTOR
glibctunables=$GLIBC_TUNABLES
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
case "$1" in case "$1" in
@ -85,6 +89,14 @@ while [ $# -gt 0 ]; do
timeoutfactor="$1" timeoutfactor="$1"
;; ;;
"--glibctunables")
shift
if [ $# -lt 1 ]; then
break
fi
glibctunables="$1"
;;
"--allow-time-setting") "--allow-time-setting")
settimeallowed="1" settimeallowed="1"
;; ;;
@ -135,6 +147,12 @@ if [ "$timeoutfactor" ]; then
${command}" ${command}"
fi fi
# Add command to set glibc tunables, if required.
if [ "$glibctunables" ]; then
command="export GLIBC_TUNABLES=$(bourne_quote "$glibctunables")
${command}"
fi
# Add command to set the info that time on target can be adjusted, # Add command to set the info that time on target can be adjusted,
# if required. # if required.
# Serialize execution of this script on target to prevent from unintended # Serialize execution of this script on target to prevent from unintended