public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/azanella/y2038] tst: Extend cross-test-ssh.sh to specify if target date can be altered
@ 2021-03-04 17:37 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2021-03-04 17:37 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a28a5643dcdb16780949505e6cd72d53f6f399df

commit a28a5643dcdb16780949505e6cd72d53f6f399df
Author: Lukasz Majewski <lukma@denx.de>
Date:   Fri Jan 15 16:40:39 2021 +0100

    tst: Extend cross-test-ssh.sh to specify if target date can be altered
    
    This code adds new flag - '--allow-time-setting' to cross-test-ssh.sh
    script to indicate if it is allowed to alter the date on the system
    on which tests are executed. This change is supposed to be used with
    test systems, which use virtual machines for testing.
    
    The GLIBC_TEST_ALLOW_TIME_SETTING env variable is exported to the
    remote environment on which the eligible test is run and brings no
    functional change when it is not.
    
    Changes for v2:
    - Utilize flock to provide serialization of cross-test-ssh.sh script
      execution.
    - Add entry to manual/install.texi about --allow-time-setting flag
      usage.
    
    Changes for v3:
    - The install.texi manual has been augmented to explain two distinct
      use cases for setting the time on target system.

Diff:
---
 manual/install.texi       | 17 +++++++++++++++++
 scripts/cross-test-ssh.sh | 22 +++++++++++++++++++++-
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/manual/install.texi b/manual/install.texi
index 419576f49c..13a8058616 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -380,6 +380,23 @@ the newly built binaries of @theglibc{}.  The source and build
 directories must be visible at the same locations on both the build
 system and @var{hostname}.
 
+It is also possible to execute tests, which require setting date on
+the target machine. Following use cases are supported:
+@itemize @bullet
+@item
+The @code{GLIBC_TEST_ALLOW_TIME_SETTING} is set in the environment in
+which eligible tests are executed and have priviledges to run
+@code{clock_settime}. In this case there is no prevention from running
+those tests in parallel, so the caller shall assure that those tests
+are serialized or provide proper wrapper script for it.
+
+@item
+The @code{cross-test-ssh.sh} script is used and one passes
+@option{--allow-time-setting} flag. In this case both - setting the
+@code{GLIBC_TEST_ALLOW_TIME_SETTING} and serialization of tests execution
+are assured automatically.
+@end itemize
+
 In general, when testing @theglibc{}, @samp{test-wrapper} may be set
 to the name and arguments of any program to run newly built binaries.
 This program must preserve the arguments to the binary being run, its
diff --git a/scripts/cross-test-ssh.sh b/scripts/cross-test-ssh.sh
index 6d8fbcdfd2..c4b112aa1d 100755
--- a/scripts/cross-test-ssh.sh
+++ b/scripts/cross-test-ssh.sh
@@ -22,7 +22,7 @@
 
 progname="$(basename $0)"
 
-usage="usage: ${progname} [--ssh SSH] HOST COMMAND ..."
+usage="usage: ${progname} [--ssh SSH][--allow-time-setting] HOST COMMAND ..."
 help="Run a glibc test COMMAND on the remote machine HOST, via ssh,
 preserving the current working directory, and respecting quoting.
 
@@ -32,6 +32,11 @@ instead of ordinary 'ssh'.
 If the '--timeoutfactor FACTOR' flag is present, set TIMEOUTFACTOR on
 the remote machine to the specified FACTOR.
 
+If the '--allow-time-setting' flag is present, set
+GLIBC_TEST_ALLOW_TIME_SETTING on the remote machine to inform that
+time can be safely adjusted when e.g. tests are run in a virtual
+machine.
+
 To use this to run glibc tests, invoke the tests as follows:
 
   $ make test-wrapper='ABSPATH/cross-test-ssh.sh HOST' tests
@@ -81,6 +86,10 @@ while [ $# -gt 0 ]; do
       timeoutfactor="$1"
       ;;
 
+    "--allow-time-setting")
+      settimeallowed="1"
+      ;;
+
     "--help")
       echo "$usage"
       echo "$help"
@@ -127,6 +136,17 @@ if [ "$timeoutfactor" ]; then
 ${command}"
 fi
 
+# Add command to set the info that time on target can be adjusted,
+# if required.
+# Serialize execution of this script on host to prevent from unintended
+# change of target time.
+FLOCK_PATH="/var/lock/clock_settime"
+if [ "$settimeallowed" ]; then
+  exec 99<>${FLOCK_PATH}
+  flock 99 || { echo "Cannot lock ${FLOCK_PATH}"; exit 1; }
+  command="export GLIBC_TEST_ALLOW_TIME_SETTING=1 ${command}"
+fi
+
 # HOST's sshd simply concatenates its arguments with spaces and
 # passes them to some shell.  We want to force the use of /bin/sh,
 # so we need to re-quote the whole command to ensure it appears as


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/y2038] tst: Extend cross-test-ssh.sh to specify if target date can be altered
@ 2021-03-04 11:30 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2021-03-04 11:30 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a28a5643dcdb16780949505e6cd72d53f6f399df

commit a28a5643dcdb16780949505e6cd72d53f6f399df
Author: Lukasz Majewski <lukma@denx.de>
Date:   Fri Jan 15 16:40:39 2021 +0100

    tst: Extend cross-test-ssh.sh to specify if target date can be altered
    
    This code adds new flag - '--allow-time-setting' to cross-test-ssh.sh
    script to indicate if it is allowed to alter the date on the system
    on which tests are executed. This change is supposed to be used with
    test systems, which use virtual machines for testing.
    
    The GLIBC_TEST_ALLOW_TIME_SETTING env variable is exported to the
    remote environment on which the eligible test is run and brings no
    functional change when it is not.
    
    Changes for v2:
    - Utilize flock to provide serialization of cross-test-ssh.sh script
      execution.
    - Add entry to manual/install.texi about --allow-time-setting flag
      usage.
    
    Changes for v3:
    - The install.texi manual has been augmented to explain two distinct
      use cases for setting the time on target system.

Diff:
---
 manual/install.texi       | 17 +++++++++++++++++
 scripts/cross-test-ssh.sh | 22 +++++++++++++++++++++-
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/manual/install.texi b/manual/install.texi
index 419576f49c..13a8058616 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -380,6 +380,23 @@ the newly built binaries of @theglibc{}.  The source and build
 directories must be visible at the same locations on both the build
 system and @var{hostname}.
 
+It is also possible to execute tests, which require setting date on
+the target machine. Following use cases are supported:
+@itemize @bullet
+@item
+The @code{GLIBC_TEST_ALLOW_TIME_SETTING} is set in the environment in
+which eligible tests are executed and have priviledges to run
+@code{clock_settime}. In this case there is no prevention from running
+those tests in parallel, so the caller shall assure that those tests
+are serialized or provide proper wrapper script for it.
+
+@item
+The @code{cross-test-ssh.sh} script is used and one passes
+@option{--allow-time-setting} flag. In this case both - setting the
+@code{GLIBC_TEST_ALLOW_TIME_SETTING} and serialization of tests execution
+are assured automatically.
+@end itemize
+
 In general, when testing @theglibc{}, @samp{test-wrapper} may be set
 to the name and arguments of any program to run newly built binaries.
 This program must preserve the arguments to the binary being run, its
diff --git a/scripts/cross-test-ssh.sh b/scripts/cross-test-ssh.sh
index 6d8fbcdfd2..c4b112aa1d 100755
--- a/scripts/cross-test-ssh.sh
+++ b/scripts/cross-test-ssh.sh
@@ -22,7 +22,7 @@
 
 progname="$(basename $0)"
 
-usage="usage: ${progname} [--ssh SSH] HOST COMMAND ..."
+usage="usage: ${progname} [--ssh SSH][--allow-time-setting] HOST COMMAND ..."
 help="Run a glibc test COMMAND on the remote machine HOST, via ssh,
 preserving the current working directory, and respecting quoting.
 
@@ -32,6 +32,11 @@ instead of ordinary 'ssh'.
 If the '--timeoutfactor FACTOR' flag is present, set TIMEOUTFACTOR on
 the remote machine to the specified FACTOR.
 
+If the '--allow-time-setting' flag is present, set
+GLIBC_TEST_ALLOW_TIME_SETTING on the remote machine to inform that
+time can be safely adjusted when e.g. tests are run in a virtual
+machine.
+
 To use this to run glibc tests, invoke the tests as follows:
 
   $ make test-wrapper='ABSPATH/cross-test-ssh.sh HOST' tests
@@ -81,6 +86,10 @@ while [ $# -gt 0 ]; do
       timeoutfactor="$1"
       ;;
 
+    "--allow-time-setting")
+      settimeallowed="1"
+      ;;
+
     "--help")
       echo "$usage"
       echo "$help"
@@ -127,6 +136,17 @@ if [ "$timeoutfactor" ]; then
 ${command}"
 fi
 
+# Add command to set the info that time on target can be adjusted,
+# if required.
+# Serialize execution of this script on host to prevent from unintended
+# change of target time.
+FLOCK_PATH="/var/lock/clock_settime"
+if [ "$settimeallowed" ]; then
+  exec 99<>${FLOCK_PATH}
+  flock 99 || { echo "Cannot lock ${FLOCK_PATH}"; exit 1; }
+  command="export GLIBC_TEST_ALLOW_TIME_SETTING=1 ${command}"
+fi
+
 # HOST's sshd simply concatenates its arguments with spaces and
 # passes them to some shell.  We want to force the use of /bin/sh,
 # so we need to re-quote the whole command to ensure it appears as


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/y2038] tst: Extend cross-test-ssh.sh to specify if target date can be altered
@ 2021-03-02 12:31 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2021-03-02 12:31 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ca936f804d07ec1681e9fc3cdae336134d756238

commit ca936f804d07ec1681e9fc3cdae336134d756238
Author: Lukasz Majewski <lukma@denx.de>
Date:   Fri Jan 15 16:40:39 2021 +0100

    tst: Extend cross-test-ssh.sh to specify if target date can be altered
    
    This code adds new flag - '--allow-time-setting' to cross-test-ssh.sh
    script to indicate if it is allowed to alter the date on the system
    on which tests are executed. This change is supposed to be used with
    test systems, which use virtual machines for testing.
    
    The GLIBC_TEST_ALLOW_TIME_SETTING env variable is exported to the
    remote environment on which the eligible test is run and brings no
    functional change when it is not.
    
    Changes for v2:
    - Utilize flock to provide serialization of cross-test-ssh.sh script
      execution.
    - Add entry to manual/install.texi about --allow-time-setting flag
      usage.
    
    Changes for v3:
    - The install.texi manual has been augmented to explain two distinct
      use cases for setting the time on target system.

Diff:
---
 manual/install.texi       | 17 +++++++++++++++++
 scripts/cross-test-ssh.sh | 22 +++++++++++++++++++++-
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/manual/install.texi b/manual/install.texi
index 419576f49c..13a8058616 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -380,6 +380,23 @@ the newly built binaries of @theglibc{}.  The source and build
 directories must be visible at the same locations on both the build
 system and @var{hostname}.
 
+It is also possible to execute tests, which require setting date on
+the target machine. Following use cases are supported:
+@itemize @bullet
+@item
+The @code{GLIBC_TEST_ALLOW_TIME_SETTING} is set in the environment in
+which eligible tests are executed and have priviledges to run
+@code{clock_settime}. In this case there is no prevention from running
+those tests in parallel, so the caller shall assure that those tests
+are serialized or provide proper wrapper script for it.
+
+@item
+The @code{cross-test-ssh.sh} script is used and one passes
+@option{--allow-time-setting} flag. In this case both - setting the
+@code{GLIBC_TEST_ALLOW_TIME_SETTING} and serialization of tests execution
+are assured automatically.
+@end itemize
+
 In general, when testing @theglibc{}, @samp{test-wrapper} may be set
 to the name and arguments of any program to run newly built binaries.
 This program must preserve the arguments to the binary being run, its
diff --git a/scripts/cross-test-ssh.sh b/scripts/cross-test-ssh.sh
index 6d8fbcdfd2..c4b112aa1d 100755
--- a/scripts/cross-test-ssh.sh
+++ b/scripts/cross-test-ssh.sh
@@ -22,7 +22,7 @@
 
 progname="$(basename $0)"
 
-usage="usage: ${progname} [--ssh SSH] HOST COMMAND ..."
+usage="usage: ${progname} [--ssh SSH][--allow-time-setting] HOST COMMAND ..."
 help="Run a glibc test COMMAND on the remote machine HOST, via ssh,
 preserving the current working directory, and respecting quoting.
 
@@ -32,6 +32,11 @@ instead of ordinary 'ssh'.
 If the '--timeoutfactor FACTOR' flag is present, set TIMEOUTFACTOR on
 the remote machine to the specified FACTOR.
 
+If the '--allow-time-setting' flag is present, set
+GLIBC_TEST_ALLOW_TIME_SETTING on the remote machine to inform that
+time can be safely adjusted when e.g. tests are run in a virtual
+machine.
+
 To use this to run glibc tests, invoke the tests as follows:
 
   $ make test-wrapper='ABSPATH/cross-test-ssh.sh HOST' tests
@@ -81,6 +86,10 @@ while [ $# -gt 0 ]; do
       timeoutfactor="$1"
       ;;
 
+    "--allow-time-setting")
+      settimeallowed="1"
+      ;;
+
     "--help")
       echo "$usage"
       echo "$help"
@@ -127,6 +136,17 @@ if [ "$timeoutfactor" ]; then
 ${command}"
 fi
 
+# Add command to set the info that time on target can be adjusted,
+# if required.
+# Serialize execution of this script on host to prevent from unintended
+# change of target time.
+FLOCK_PATH="/var/lock/clock_settime"
+if [ "$settimeallowed" ]; then
+  exec 99<>${FLOCK_PATH}
+  flock 99 || { echo "Cannot lock ${FLOCK_PATH}"; exit 1; }
+  command="export GLIBC_TEST_ALLOW_TIME_SETTING=1 ${command}"
+fi
+
 # HOST's sshd simply concatenates its arguments with spaces and
 # passes them to some shell.  We want to force the use of /bin/sh,
 # so we need to re-quote the whole command to ensure it appears as


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/y2038] tst: Extend cross-test-ssh.sh to specify if target date can be altered
@ 2021-03-01 17:36 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2021-03-01 17:36 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=176bcb09952acfc670a66043d72081db339e4c5a

commit 176bcb09952acfc670a66043d72081db339e4c5a
Author: Lukasz Majewski <lukma@denx.de>
Date:   Fri Jan 15 16:40:39 2021 +0100

    tst: Extend cross-test-ssh.sh to specify if target date can be altered
    
    This code adds new flag - '--allow-time-setting' to cross-test-ssh.sh
    script to indicate if it is allowed to alter the date on the system
    on which tests are executed. This change is supposed to be used with
    test systems, which use virtual machines for testing.
    
    The GLIBC_TEST_ALLOW_TIME_SETTING env variable is exported to the
    remote environment on which the eligible test is run and brings no
    functional change when it is not.
    
    Changes for v2:
    - Utilize flock to provide serialization of cross-test-ssh.sh script
      execution.
    - Add entry to manual/install.texi about --allow-time-setting flag
      usage.
    
    Changes for v3:
    - The install.texi manual has been augmented to explain two distinct
      use cases for setting the time on target system.

Diff:
---
 manual/install.texi       | 17 +++++++++++++++++
 scripts/cross-test-ssh.sh | 22 +++++++++++++++++++++-
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/manual/install.texi b/manual/install.texi
index 419576f49c..13a8058616 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -380,6 +380,23 @@ the newly built binaries of @theglibc{}.  The source and build
 directories must be visible at the same locations on both the build
 system and @var{hostname}.
 
+It is also possible to execute tests, which require setting date on
+the target machine. Following use cases are supported:
+@itemize @bullet
+@item
+The @code{GLIBC_TEST_ALLOW_TIME_SETTING} is set in the environment in
+which eligible tests are executed and have priviledges to run
+@code{clock_settime}. In this case there is no prevention from running
+those tests in parallel, so the caller shall assure that those tests
+are serialized or provide proper wrapper script for it.
+
+@item
+The @code{cross-test-ssh.sh} script is used and one passes
+@option{--allow-time-setting} flag. In this case both - setting the
+@code{GLIBC_TEST_ALLOW_TIME_SETTING} and serialization of tests execution
+are assured automatically.
+@end itemize
+
 In general, when testing @theglibc{}, @samp{test-wrapper} may be set
 to the name and arguments of any program to run newly built binaries.
 This program must preserve the arguments to the binary being run, its
diff --git a/scripts/cross-test-ssh.sh b/scripts/cross-test-ssh.sh
index 6d8fbcdfd2..c4b112aa1d 100755
--- a/scripts/cross-test-ssh.sh
+++ b/scripts/cross-test-ssh.sh
@@ -22,7 +22,7 @@
 
 progname="$(basename $0)"
 
-usage="usage: ${progname} [--ssh SSH] HOST COMMAND ..."
+usage="usage: ${progname} [--ssh SSH][--allow-time-setting] HOST COMMAND ..."
 help="Run a glibc test COMMAND on the remote machine HOST, via ssh,
 preserving the current working directory, and respecting quoting.
 
@@ -32,6 +32,11 @@ instead of ordinary 'ssh'.
 If the '--timeoutfactor FACTOR' flag is present, set TIMEOUTFACTOR on
 the remote machine to the specified FACTOR.
 
+If the '--allow-time-setting' flag is present, set
+GLIBC_TEST_ALLOW_TIME_SETTING on the remote machine to inform that
+time can be safely adjusted when e.g. tests are run in a virtual
+machine.
+
 To use this to run glibc tests, invoke the tests as follows:
 
   $ make test-wrapper='ABSPATH/cross-test-ssh.sh HOST' tests
@@ -81,6 +86,10 @@ while [ $# -gt 0 ]; do
       timeoutfactor="$1"
       ;;
 
+    "--allow-time-setting")
+      settimeallowed="1"
+      ;;
+
     "--help")
       echo "$usage"
       echo "$help"
@@ -127,6 +136,17 @@ if [ "$timeoutfactor" ]; then
 ${command}"
 fi
 
+# Add command to set the info that time on target can be adjusted,
+# if required.
+# Serialize execution of this script on host to prevent from unintended
+# change of target time.
+FLOCK_PATH="/var/lock/clock_settime"
+if [ "$settimeallowed" ]; then
+  exec 99<>${FLOCK_PATH}
+  flock 99 || { echo "Cannot lock ${FLOCK_PATH}"; exit 1; }
+  command="export GLIBC_TEST_ALLOW_TIME_SETTING=1 ${command}"
+fi
+
 # HOST's sshd simply concatenates its arguments with spaces and
 # passes them to some shell.  We want to force the use of /bin/sh,
 # so we need to re-quote the whole command to ensure it appears as


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/y2038] tst: Extend cross-test-ssh.sh to specify if target date can be altered
@ 2021-02-26 20:42 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2021-02-26 20:42 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bf8c1a9b02894602088d9feda4d8697f4498b487

commit bf8c1a9b02894602088d9feda4d8697f4498b487
Author: Lukasz Majewski <lukma@denx.de>
Date:   Fri Jan 15 16:40:39 2021 +0100

    tst: Extend cross-test-ssh.sh to specify if target date can be altered
    
    This code adds new flag - '--allow-time-setting' to cross-test-ssh.sh
    script to indicate if it is allowed to alter the date on the system
    on which tests are executed. This change is supposed to be used with
    test systems, which use virtual machines for testing.
    
    The GLIBC_TEST_ALLOW_TIME_SETTING env variable is exported to the
    remote environment on which the eligible test is run and brings no
    functional change when it is not.
    
    Changes for v2:
    - Utilize flock to provide serialization of cross-test-ssh.sh script
      execution.
    - Add entry to manual/install.texi about --allow-time-setting flag
      usage.
    
    Changes for v3:
    - The install.texi manual has been augmented to explain two distinct
      use cases for setting the time on target system.

Diff:
---
 manual/install.texi       | 17 +++++++++++++++++
 scripts/cross-test-ssh.sh | 22 +++++++++++++++++++++-
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/manual/install.texi b/manual/install.texi
index 419576f49c..13a8058616 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -380,6 +380,23 @@ the newly built binaries of @theglibc{}.  The source and build
 directories must be visible at the same locations on both the build
 system and @var{hostname}.
 
+It is also possible to execute tests, which require setting date on
+the target machine. Following use cases are supported:
+@itemize @bullet
+@item
+The @code{GLIBC_TEST_ALLOW_TIME_SETTING} is set in the environment in
+which eligible tests are executed and have priviledges to run
+@code{clock_settime}. In this case there is no prevention from running
+those tests in parallel, so the caller shall assure that those tests
+are serialized or provide proper wrapper script for it.
+
+@item
+The @code{cross-test-ssh.sh} script is used and one passes
+@option{--allow-time-setting} flag. In this case both - setting the
+@code{GLIBC_TEST_ALLOW_TIME_SETTING} and serialization of tests execution
+are assured automatically.
+@end itemize
+
 In general, when testing @theglibc{}, @samp{test-wrapper} may be set
 to the name and arguments of any program to run newly built binaries.
 This program must preserve the arguments to the binary being run, its
diff --git a/scripts/cross-test-ssh.sh b/scripts/cross-test-ssh.sh
index 6d8fbcdfd2..c4b112aa1d 100755
--- a/scripts/cross-test-ssh.sh
+++ b/scripts/cross-test-ssh.sh
@@ -22,7 +22,7 @@
 
 progname="$(basename $0)"
 
-usage="usage: ${progname} [--ssh SSH] HOST COMMAND ..."
+usage="usage: ${progname} [--ssh SSH][--allow-time-setting] HOST COMMAND ..."
 help="Run a glibc test COMMAND on the remote machine HOST, via ssh,
 preserving the current working directory, and respecting quoting.
 
@@ -32,6 +32,11 @@ instead of ordinary 'ssh'.
 If the '--timeoutfactor FACTOR' flag is present, set TIMEOUTFACTOR on
 the remote machine to the specified FACTOR.
 
+If the '--allow-time-setting' flag is present, set
+GLIBC_TEST_ALLOW_TIME_SETTING on the remote machine to inform that
+time can be safely adjusted when e.g. tests are run in a virtual
+machine.
+
 To use this to run glibc tests, invoke the tests as follows:
 
   $ make test-wrapper='ABSPATH/cross-test-ssh.sh HOST' tests
@@ -81,6 +86,10 @@ while [ $# -gt 0 ]; do
       timeoutfactor="$1"
       ;;
 
+    "--allow-time-setting")
+      settimeallowed="1"
+      ;;
+
     "--help")
       echo "$usage"
       echo "$help"
@@ -127,6 +136,17 @@ if [ "$timeoutfactor" ]; then
 ${command}"
 fi
 
+# Add command to set the info that time on target can be adjusted,
+# if required.
+# Serialize execution of this script on host to prevent from unintended
+# change of target time.
+FLOCK_PATH="/var/lock/clock_settime"
+if [ "$settimeallowed" ]; then
+  exec 99<>${FLOCK_PATH}
+  flock 99 || { echo "Cannot lock ${FLOCK_PATH}"; exit 1; }
+  command="export GLIBC_TEST_ALLOW_TIME_SETTING=1 ${command}"
+fi
+
 # HOST's sshd simply concatenates its arguments with spaces and
 # passes them to some shell.  We want to force the use of /bin/sh,
 # so we need to re-quote the whole command to ensure it appears as


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/y2038] tst: Extend cross-test-ssh.sh to specify if target date can be altered
@ 2021-02-23 20:39 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2021-02-23 20:39 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=17d74bd54d72fe8d98203bf2d5990855bc32bd72

commit 17d74bd54d72fe8d98203bf2d5990855bc32bd72
Author: Lukasz Majewski <lukma@denx.de>
Date:   Fri Jan 15 16:40:39 2021 +0100

    tst: Extend cross-test-ssh.sh to specify if target date can be altered
    
    This code adds new flag - '--allow-time-setting' to cross-test-ssh.sh
    script to indicate if it is allowed to alter the date on the system
    on which tests are executed. This change is supposed to be used with
    test systems, which use virtual machines for testing.
    
    The GLIBC_TEST_ALLOW_TIME_SETTING env variable is exported to the
    remote environment on which the eligible test is run and brings no
    functional change when it is not.
    
    Changes for v2:
    - Utilize flock to provide serialization of cross-test-ssh.sh script
      execution.
    - Add entry to manual/install.texi about --allow-time-setting flag
      usage.
    
    Changes for v3:
    - The install.texi manual has been augmented to explain two distinct
      use cases for setting the time on target system.

Diff:
---
 manual/install.texi       | 17 +++++++++++++++++
 scripts/cross-test-ssh.sh | 22 +++++++++++++++++++++-
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/manual/install.texi b/manual/install.texi
index 419576f49c..13a8058616 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -380,6 +380,23 @@ the newly built binaries of @theglibc{}.  The source and build
 directories must be visible at the same locations on both the build
 system and @var{hostname}.
 
+It is also possible to execute tests, which require setting date on
+the target machine. Following use cases are supported:
+@itemize @bullet
+@item
+The @code{GLIBC_TEST_ALLOW_TIME_SETTING} is set in the environment in
+which eligible tests are executed and have priviledges to run
+@code{clock_settime}. In this case there is no prevention from running
+those tests in parallel, so the caller shall assure that those tests
+are serialized or provide proper wrapper script for it.
+
+@item
+The @code{cross-test-ssh.sh} script is used and one passes
+@option{--allow-time-setting} flag. In this case both - setting the
+@code{GLIBC_TEST_ALLOW_TIME_SETTING} and serialization of tests execution
+are assured automatically.
+@end itemize
+
 In general, when testing @theglibc{}, @samp{test-wrapper} may be set
 to the name and arguments of any program to run newly built binaries.
 This program must preserve the arguments to the binary being run, its
diff --git a/scripts/cross-test-ssh.sh b/scripts/cross-test-ssh.sh
index 6d8fbcdfd2..c4b112aa1d 100755
--- a/scripts/cross-test-ssh.sh
+++ b/scripts/cross-test-ssh.sh
@@ -22,7 +22,7 @@
 
 progname="$(basename $0)"
 
-usage="usage: ${progname} [--ssh SSH] HOST COMMAND ..."
+usage="usage: ${progname} [--ssh SSH][--allow-time-setting] HOST COMMAND ..."
 help="Run a glibc test COMMAND on the remote machine HOST, via ssh,
 preserving the current working directory, and respecting quoting.
 
@@ -32,6 +32,11 @@ instead of ordinary 'ssh'.
 If the '--timeoutfactor FACTOR' flag is present, set TIMEOUTFACTOR on
 the remote machine to the specified FACTOR.
 
+If the '--allow-time-setting' flag is present, set
+GLIBC_TEST_ALLOW_TIME_SETTING on the remote machine to inform that
+time can be safely adjusted when e.g. tests are run in a virtual
+machine.
+
 To use this to run glibc tests, invoke the tests as follows:
 
   $ make test-wrapper='ABSPATH/cross-test-ssh.sh HOST' tests
@@ -81,6 +86,10 @@ while [ $# -gt 0 ]; do
       timeoutfactor="$1"
       ;;
 
+    "--allow-time-setting")
+      settimeallowed="1"
+      ;;
+
     "--help")
       echo "$usage"
       echo "$help"
@@ -127,6 +136,17 @@ if [ "$timeoutfactor" ]; then
 ${command}"
 fi
 
+# Add command to set the info that time on target can be adjusted,
+# if required.
+# Serialize execution of this script on host to prevent from unintended
+# change of target time.
+FLOCK_PATH="/var/lock/clock_settime"
+if [ "$settimeallowed" ]; then
+  exec 99<>${FLOCK_PATH}
+  flock 99 || { echo "Cannot lock ${FLOCK_PATH}"; exit 1; }
+  command="export GLIBC_TEST_ALLOW_TIME_SETTING=1 ${command}"
+fi
+
 # HOST's sshd simply concatenates its arguments with spaces and
 # passes them to some shell.  We want to force the use of /bin/sh,
 # so we need to re-quote the whole command to ensure it appears as


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/y2038] tst: Extend cross-test-ssh.sh to specify if target date can be altered
@ 2021-02-23 12:37 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2021-02-23 12:37 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c56544d707b41a541f81816ca186d51cc08122b0

commit c56544d707b41a541f81816ca186d51cc08122b0
Author: Lukasz Majewski <lukma@denx.de>
Date:   Fri Jan 15 16:40:39 2021 +0100

    tst: Extend cross-test-ssh.sh to specify if target date can be altered
    
    This code adds new flag - '--allow-time-setting' to cross-test-ssh.sh
    script to indicate if it is allowed to alter the date on the system
    on which tests are executed. This change is supposed to be used with
    test systems, which use virtual machines for testing.
    
    The GLIBC_TEST_ALLOW_TIME_SETTING env variable is exported to the
    remote environment on which the eligible test is run and brings no
    functional change when it is not.
    
    Changes for v2:
    - Utilize flock to provide serialization of cross-test-ssh.sh script
      execution.
    - Add entry to manual/install.texi about --allow-time-setting flag
      usage.
    
    Changes for v3:
    - The install.texi manual has been augmented to explain two distinct
      use cases for setting the time on target system.

Diff:
---
 manual/install.texi       | 17 +++++++++++++++++
 scripts/cross-test-ssh.sh | 22 +++++++++++++++++++++-
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/manual/install.texi b/manual/install.texi
index 419576f49c..13a8058616 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -380,6 +380,23 @@ the newly built binaries of @theglibc{}.  The source and build
 directories must be visible at the same locations on both the build
 system and @var{hostname}.
 
+It is also possible to execute tests, which require setting date on
+the target machine. Following use cases are supported:
+@itemize @bullet
+@item
+The @code{GLIBC_TEST_ALLOW_TIME_SETTING} is set in the environment in
+which eligible tests are executed and have priviledges to run
+@code{clock_settime}. In this case there is no prevention from running
+those tests in parallel, so the caller shall assure that those tests
+are serialized or provide proper wrapper script for it.
+
+@item
+The @code{cross-test-ssh.sh} script is used and one passes
+@option{--allow-time-setting} flag. In this case both - setting the
+@code{GLIBC_TEST_ALLOW_TIME_SETTING} and serialization of tests execution
+are assured automatically.
+@end itemize
+
 In general, when testing @theglibc{}, @samp{test-wrapper} may be set
 to the name and arguments of any program to run newly built binaries.
 This program must preserve the arguments to the binary being run, its
diff --git a/scripts/cross-test-ssh.sh b/scripts/cross-test-ssh.sh
index 6d8fbcdfd2..c4b112aa1d 100755
--- a/scripts/cross-test-ssh.sh
+++ b/scripts/cross-test-ssh.sh
@@ -22,7 +22,7 @@
 
 progname="$(basename $0)"
 
-usage="usage: ${progname} [--ssh SSH] HOST COMMAND ..."
+usage="usage: ${progname} [--ssh SSH][--allow-time-setting] HOST COMMAND ..."
 help="Run a glibc test COMMAND on the remote machine HOST, via ssh,
 preserving the current working directory, and respecting quoting.
 
@@ -32,6 +32,11 @@ instead of ordinary 'ssh'.
 If the '--timeoutfactor FACTOR' flag is present, set TIMEOUTFACTOR on
 the remote machine to the specified FACTOR.
 
+If the '--allow-time-setting' flag is present, set
+GLIBC_TEST_ALLOW_TIME_SETTING on the remote machine to inform that
+time can be safely adjusted when e.g. tests are run in a virtual
+machine.
+
 To use this to run glibc tests, invoke the tests as follows:
 
   $ make test-wrapper='ABSPATH/cross-test-ssh.sh HOST' tests
@@ -81,6 +86,10 @@ while [ $# -gt 0 ]; do
       timeoutfactor="$1"
       ;;
 
+    "--allow-time-setting")
+      settimeallowed="1"
+      ;;
+
     "--help")
       echo "$usage"
       echo "$help"
@@ -127,6 +136,17 @@ if [ "$timeoutfactor" ]; then
 ${command}"
 fi
 
+# Add command to set the info that time on target can be adjusted,
+# if required.
+# Serialize execution of this script on host to prevent from unintended
+# change of target time.
+FLOCK_PATH="/var/lock/clock_settime"
+if [ "$settimeallowed" ]; then
+  exec 99<>${FLOCK_PATH}
+  flock 99 || { echo "Cannot lock ${FLOCK_PATH}"; exit 1; }
+  command="export GLIBC_TEST_ALLOW_TIME_SETTING=1 ${command}"
+fi
+
 # HOST's sshd simply concatenates its arguments with spaces and
 # passes them to some shell.  We want to force the use of /bin/sh,
 # so we need to re-quote the whole command to ensure it appears as


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-03-04 17:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-04 17:37 [glibc/azanella/y2038] tst: Extend cross-test-ssh.sh to specify if target date can be altered Adhemerval Zanella
  -- strict thread matches above, loose matches on Subject: below --
2021-03-04 11:30 Adhemerval Zanella
2021-03-02 12:31 Adhemerval Zanella
2021-03-01 17:36 Adhemerval Zanella
2021-02-26 20:42 Adhemerval Zanella
2021-02-23 20:39 Adhemerval Zanella
2021-02-23 12:37 Adhemerval Zanella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).