changeset 16364:f64b25f147d7 stable

tests: avoid test-hup hanging on AIX test-hup hangs on AIX. Under ksh89 on AIX (the default shell), echo Hello; while [ ! -s not-there ]; do true; done produces no output while the loop executes. Replacing 'true' with 'sleep 0' fixes, as does using a less broken shell. ksh93 is fine. Update check-code.py to look for this, and make same change in test-serve.t. In fact test-serve works fine, probably because of additional commands between echo and the loop, but that's a subtlety not easy to test for.
author Jim Hague <jim.hague@acm.org>
date Thu, 05 Apr 2012 12:31:21 +0100
parents 16b75661828e
children c14898df3b92
files contrib/check-code.py tests/test-hup.t tests/test-serve.t
diffstat 3 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/contrib/check-code.py	Thu Apr 05 15:39:07 2012 +0200
+++ b/contrib/check-code.py	Thu Apr 05 12:31:21 2012 +0100
@@ -94,6 +94,8 @@
      "explicit exit code checks unnecessary"),
     (uprefix + r'set -e', "don't use set -e"),
     (uprefixc + r'( *)\t', "don't use tabs to indent"),
+    (uprefixc + r'.*do\s*true;\s*done',
+     "don't use true as loop body, use sleep 0"),
   ],
   # warnings
   []
--- a/tests/test-hup.t	Thu Apr 05 15:39:07 2012 +0200
+++ b/tests/test-hup.t	Thu Apr 05 12:31:21 2012 +0100
@@ -11,7 +11,7 @@
   $ (
   > echo lock
   > echo addchangegroup
-  > while [ ! -s .hg/store/journal ]; do true; done
+  > while [ ! -s .hg/store/journal ]; do sleep 0; done
   > kill -HUP $P
   > ) > p
 
--- a/tests/test-serve.t	Thu Apr 05 15:39:07 2012 +0200
+++ b/tests/test-serve.t	Thu Apr 05 12:31:21 2012 +0100
@@ -14,7 +14,7 @@
   >    else
   >        kill `cat hg.pid`
   >    fi
-  >    while kill -0 `cat hg.pid` 2>/dev/null; do true; done
+  >    while kill -0 `cat hg.pid` 2>/dev/null; do sleep 0; done
   > }
 
   $ hg init test