Patchwork D8316: testlib: adjust wait-on-file timeout according to the global test timeout

login
register
mail settings
Submitter phabricator
Date March 20, 2020, 11:08 p.m.
Message ID <differential-rev-PHID-DREV-7dzd5jkttrddnccy4nze-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/45854/
State Superseded
Headers show

Comments

phabricator - March 20, 2020, 11:08 p.m.
marmoute created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Lets assume that if test timeout have been set to be twice as long, it means
  local timeout should be twice as long too.
  
  I am not aware of any case were extending timeout for file based synchronisation
  was necessary, but the safety seems simple to implements.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D8316

AFFECTED FILES
  tests/run-tests.py
  tests/testlib/wait-on-file

CHANGE DETAILS




To: marmoute, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/tests/testlib/wait-on-file b/tests/testlib/wait-on-file
--- a/tests/testlib/wait-on-file
+++ b/tests/testlib/wait-on-file
@@ -10,6 +10,12 @@ 
 fi
 
 timer="$1"
+
+# if the test timeout have been extended, explicitly extend the provided timer
+if [ "$HGTEST_TIMEOUT_DEFAULT" -lt "$HGTEST_TIMEOUT" ]; then
+    timer=$(( ("$timer" * "$HGTEST_TIMEOUT") / $HGTEST_TIMEOUT_DEFAULT ))
+fi
+
 wait_on="$2"
 create=""
 if [ $# -eq 3 ]; then
diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -321,7 +321,7 @@ 
 if 'java' in sys.platform:
     IMPL_PATH = b'JYTHONPATH'
 
-defaults = {
+default_defaults = {
     'jobs': ('HGTEST_JOBS', multiprocessing.cpu_count()),
     'timeout': ('HGTEST_TIMEOUT', 180),
     'slowtimeout': ('HGTEST_SLOWTIMEOUT', 1500),
@@ -329,6 +329,8 @@ 
     'shell': ('HGTEST_SHELL', 'sh'),
 }
 
+defaults = default_defaults.copy()
+
 
 def canonpath(path):
     return os.path.realpath(os.path.expanduser(path))
@@ -1322,6 +1324,9 @@ 
         env['TESTTMP'] = _bytes2sys(self._testtmp)
         env['TESTNAME'] = self.name
         env['HOME'] = _bytes2sys(self._testtmp)
+        formated_timeout = _bytes2sys(b"%d" % default_defaults['timeout'][1])
+        env['HGTEST_TIMEOUT_DEFAULT'] = formated_timeout
+        env['HGTEST_TIMEOUT'] = _bytes2sys(b"%d" % self._timeout)
         # This number should match portneeded in _getport
         for port in xrange(3):
             # This list should be parallel to _portmap in _getreplacements