bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [BLOCKER] cannot single-step unit tests any more


From: Jim Meyering
Subject: Re: [BLOCKER] cannot single-step unit tests any more
Date: Sun, 16 May 2010 22:31:29 +0200

Bruno Haible wrote:
>> Now I've tried harder, and this does the job:
>
> Thanks a lot for getting to this so quickly! I can now single-step through
> the test in the documented way.
>
> One line in the patch looks strange: In the test whether the current shell
> is OK you test for an exit code 9; then in the loop you test for exit code 2.
> In view of your comment about Solaris /bin/sh and exit code 2, I think you
> meant the following:
>
> --- tests/init.sh.orig        Sun May 16 21:50:43 2010
> +++ tests/init.sh     Sun May 16 21:50:14 2010
> @@ -96,7 +96,8 @@
>        test "$re_shell_" = no_shell && continue
>        test "$re_shell_" = fail && skip_ failed to find an adequate shell
>        "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null
> -      if test $? = 2; then
> +      if test $? = 9; then
> +        # Found a better shell than the current one.
>          exec "$re_shell_" "$0" --no-reexec "$@"
>          echo "$ME_: exec failed" 1>&2
>          exit 127

Yes, definitely.
Thank you.
Here's what I've done:

>From 1a183f8268eb1aae67bbc6bf65d98c703ac7983b Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sun, 16 May 2010 22:30:00 +0200
Subject: [PATCH] init.sh: fix an error in the previous change; add more comments

* tests/init.sh: Compare exit code in loop against 9, not 2.
Patch by Bruno Haible.
Make the two tests more similar by adding an empty "then" clause.
Add comments.
---
 ChangeLog     |    6 ++++++
 tests/init.sh |    8 ++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ea50e39..e7fbe0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2010-05-16  Jim Meyering  <address@hidden>

+       init.sh: fix an error in the previous change; add more comments
+       * tests/init.sh: Compare exit code in loop against 9, not 2.
+       Patch by Bruno Haible.
+       Make the two tests more similar by adding an empty "then" clause.
+       Add comments.
+
        init.sh: avoid unnecessary shell re-exec
        * tests/init.sh: Improve the re-exec-required check to first test the
        current shell.  If it passes the test, do not search for a shell that
diff --git a/tests/init.sh b/tests/init.sh
index 2ad385f..e23aa54 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -90,13 +90,17 @@ else
   # It does not evaluate any of the code after the "unexpected" `('.  Thus,
   # we must run it in a subshell.
   ( eval "$gl_shell_test_script_" ) > /dev/null 2>&1
-  if test $? != 9; then
+  if test $? = 9; then
+    : # The current shell is adequate.  No re-exec required.
+  else
+    # Search for a shell that meets our requirements.
     for re_shell_ in "${CONFIG_SHELL:-no_shell}" /bin/sh bash dash zsh pdksh 
fail
     do
       test "$re_shell_" = no_shell && continue
       test "$re_shell_" = fail && skip_ failed to find an adequate shell
       "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null
-      if test $? = 2; then
+      if test $? = 9; then
+        # Found an acceptable shell.
         exec "$re_shell_" "$0" --no-reexec "$@"
         echo "$ME_: exec failed" 1>&2
         exit 127
--
1.7.1.250.g7d1e8



reply via email to

[Prev in Thread] Current Thread [Next in Thread]