[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: testsuite -C dir
From: |
Eric Blake-1 |
Subject: |
Re: testsuite -C dir |
Date: |
Tue, 29 Jan 2008 09:29:37 -0800 (PST) |
> There was another bug I found in the process: './testsuite =' made the
> shell warn about =: command not found, then the subsequent 'export ' dumps
> the entire environment. Committing the following:
And that still didn't catch './testsuite 1=2'. Also, I had a quoting
bug, so that './testsuite var="two spaces"' failed. Fixed with this
(it's always nice to use fewer forks in the process of fixing bugs):
From: Eric Blake <address@hidden>
Date: Tue, 29 Jan 2008 10:24:12 -0700
Subject: [PATCH] More corner cases in testsuite VAR=VALUE handling.
* lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS): Fix quoting
bug.
<PARSE_ARGS_END>: Also detect leading digits in assignments.
* tests/autotest.at (Using atlocal): Enhance test to catch last
bug.
Signed-off-by: Eric Blake <address@hidden>
---
ChangeLog | 7 +++++++
lib/autotest/general.m4 | 17 +++++++++--------
tests/autotest.at | 9 +++++----
3 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 8d592df..5af0f7d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2008-01-29 Eric Blake <address@hidden>
+ More corner cases in testsuite VAR=VALUE handling.
+ * lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS): Fix quoting
+ bug.
+ <PARSE_ARGS_END>: Also detect leading digits in assignments.
+ * tests/autotest.at (Using atlocal): Enhance test to catch last
+ bug.
+
* doc/autoconf.texi (Limitations of Builtins) <.>: Mention bash
bug.
diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4
index 25b2d36..7c45a7a 100644
--- a/lib/autotest/general.m4
+++ b/lib/autotest/general.m4
@@ -569,9 +569,10 @@ m4_divert_push([PARSE_ARGS_END])dnl
*=*)
at_envvar=`expr "x$at_option" : 'x\([[^=]]*\)='`
# Reject names that are not valid shell variable names.
- test "x$at_envvar" = "x" ||
- expr "x$at_envvar" : "[.*[^_$as_cr_alnum]]" >/dev/null &&
- AS_ERROR([invalid variable name: $at_envvar])
+ case $at_envvar in
+ '' | [[0-9]]* | *[[!_$as_cr_alnum]]* )
+ AS_ERROR([invalid variable name: $at_envvar]) ;;
+ esac
at_value=`AS_ECHO(["$at_optarg"]) | sed "s/'/'\\\\\\\\''/g"`
# Export now, but save eval for later and for debug scripts.
export $at_envvar
@@ -719,7 +720,7 @@ done
: ${at_top_build_prefix=$at_top_builddir}
# Perform any assignments requested during argument parsing.
-eval $at_debug_args
+eval "$at_debug_args"
# atconfig delivers names relative to the directory the test suite is
# in, but the groups themselves are run in testsuite-dir/group-dir.
diff --git a/tests/autotest.at b/tests/autotest.at
index 2fb36e5..4e016d7 100644
--- a/tests/autotest.at
+++ b/tests/autotest.at
@@ -398,16 +398,16 @@ AT_CHECK([(cd micro-suite.dir/1 && ./run MY_VAR='one
space')],
# Setting default variable values via atlocal.
AT_CHECK_AT_TEST([Using atlocal],
- [AT_CHECK([test "x$MY_VAR" = xset || exit 42])],
+ [AT_CHECK([test "x$MY_VAR" = "xodd; 'string" || exit 42])],
[], [1], [ignore], [ignore], [
dnl check that command line can set variable
-AT_CHECK([$CONFIG_SHELL ./micro-suite MY_VAR=set], [0], [ignore])
+AT_CHECK([$CONFIG_SHELL ./micro-suite MY_VAR="odd; 'string"], [0],
[ignore])
dnl check that command line overrides environment
-AT_CHECK([MY_VAR=set $CONFIG_SHELL ./micro-suite MY_VAR=unset],
+AT_CHECK([MY_VAR="odd; 'string" $CONFIG_SHELL ./micro-suite MY_VAR=unset],
[1], [ignore], [ignore])
dnl check that atlocal can give it a default
AT_CHECK([cat <<EOF >atlocal
-MY_VAR=set
+MY_VAR="odd; 'string"
export MY_VAR
dnl Also populate enough of atlocal to do what atconfig normally does.
at_testdir=.
@@ -427,6 +427,7 @@ dnl check that command line overrides atlocal
AT_CHECK([$CONFIG_SHELL ./micro-suite MY_VAR=], [1], [ignore], [ignore])
dnl check that syntax error is detected
AT_CHECK([$CONFIG_SHELL ./micro-suite =], [1], [], [ignore], [ignore])
+AT_CHECK([$CONFIG_SHELL ./micro-suite 1=2], [1], [], [ignore], [ignore])
])
--
1.5.3.8
--
View this message in context:
http://www.nabble.com/testsuite--C-dir-tp15115560p15164722.html
Sent from the Gnu - Autoconf - Patches mailing list archive at Nabble.com.
- Re: testsuite -C dir, (continued)
- Re: testsuite -C dir, Ralf Wildenhues, 2008/01/29
- Re: testsuite -C dir, Eric Blake-1, 2008/01/29
- Re: testsuite -C dir, Ralf Wildenhues, 2008/01/29
- Re: testsuite -C dir, Ralf Wildenhues, 2008/01/29
- Re: testsuite -C dir, Eric Blake-1, 2008/01/29
- Re: testsuite -C dir, Eric Blake-1, 2008/01/29
- Re: testsuite -C dir, Ralf Wildenhues, 2008/01/30
- Re: testsuite -C dir,
Eric Blake-1 <=