[Automake-NG] [FYI] [ng] tests: fix test driver botch-up on Solaris
This issue is very similar to the one fixed by commit v1.12.2-31-g587e0c6. The test 't/memoize.sh' was producing a '.log' file with few overly-long lines (more than 12k characters long) and, when Solaris XPG4 awk was in use, that was causing the 'test-driver.sh' script to experience a spurious failure: /usr/xpg4/bin/awk: line 382 (B): Record too long (LIMIT: 1 bytes) tap-driver.sh: fatal: I/O or internal error * t/memoize.sh: Temporary disable shell tracing and make output in a few places, to prevent the resulting '.log' file to contain overly long lines. Signed-off-by: Stefano Lattarini stefano.lattar...@gmail.com --- t/memoize.tap | 21 + 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/t/memoize.tap b/t/memoize.tap index 6d5eda4..a08942e 100755 --- a/t/memoize.tap +++ b/t/memoize.tap @@ -88,15 +88,23 @@ END var=foo for i in 1 2 3 4 5 6 7 8 9 10 11 12; do var=$var$var + # Temporary disable shell traces, because otherwise the result '.log' file + # would end up having too long lines that could confuse inferior awk + # implementations (e.g., Solaris 10 /usr/xpg4/bin/awk), which would cause + # spurious errors in our test harness. + set +x done +set -x # Re-enable shell traces. T very long variable name END $var = \$(call am__memoize,$var,foo) test: - test '\$($var)' = foo - test '\$($var)' = foo + # Why we silence this? + # See comment above about overly long lines in '.log' file. + @echo test1; test '\$($var)' = foo + @echo test2; test '\$($var)' = foo END #--- @@ -107,15 +115,20 @@ val=bar for i in 1 2 3 4 5 6 7 8 9 10 11 12; do var=$var$var val=$val$val + # Temporary disable shell traces. See comment above for a rationale. + set +x done +set -x # Re-enable shell traces. T very long variable name with long content END $var = \$(call am__memoize,$var,$val) test: - test '\$($var)' = '$val' - test '\$($var)' = '$val' + # Why we silence this? + # See comment above about overly long lines in '.log' file. + @echo test1; test '\$($var)' = '$val' + @echo test2; test '\$($var)' = '$val' END #--- -- 1.7.10.4
Re: [Automake-NG] [FYI] [ng] tests: relax even more a grepping check on configure output
Le 24 juil. 2012 à 10:12, Stefano Lattarini a écrit : This is a follow-up to today's commit v1.12.2-594-geee3aff. * t/subpkg.sh: Here: do bee too picky about the verb declension do bee? don't be I guess, but there might be a reference to Harry Potter that I don't grasp :) used in a checking whether message. Signed-off-by: Stefano Lattarini stefano.lattar...@gmail.com --- t/subpkg.sh |5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/t/subpkg.sh b/t/subpkg.sh index 9b9f7eb..d3bbb44 100755 --- a/t/subpkg.sh +++ b/t/subpkg.sh @@ -107,8 +107,9 @@ cd .. ./configure stdout || { cat stdout; exit 1; } cat stdout -# Don't pretend to know the name or path of the C compiler. -grep '^checking whether .* understands -c and -o together' stdout +# Don't pretend to know the name or path of the C compiler. Also, +# don't be too picky about the verb declension. +$EGREP '^checking whether .* understands? -c and -o together' stdout $MAKE $MAKE distcheck -- 1.7.10.4
Re: [Automake-NG] [FYI] [ng] tests: fix test driver botch-up on Solaris
Le 24 juil. 2012 à 10:13, Stefano Lattarini a écrit : This issue is very similar to the one fixed by commit v1.12.2-31-g587e0c6. The test 't/memoize.sh' was producing a '.log' file with few overly-long lines (more than 12k characters long) and, when Solaris XPG4 awk was in use, that was causing the 'test-driver.sh' script to experience a spurious failure: /usr/xpg4/bin/awk: line 382 (B): Record too long (LIMIT: 1 bytes) tap-driver.sh: fatal: I/O or internal error * t/memoize.sh: Temporary disable shell tracing and make output in a few places, to prevent the resulting '.log' file to contain overly long lines. Gee. there are so many more interesting things to do in life :( My condolences.
Re: [Automake-NG] [FYI] [ng] tests: relax even more a grepping check on configure output
On 07/24/2012 10:34 AM, Akim Demaille wrote: Le 24 juil. 2012 à 10:12, Stefano Lattarini a écrit : This is a follow-up to today's commit v1.12.2-594-geee3aff. * t/subpkg.sh: Here: do bee too picky about the verb declension Oops. Well spotted, I fixed that before pushing. do bee? don't be I guess, Yep. but there might be a reference to Harry Potter that I don't grasp :) I assure you there is none :-) Thanks, Stefano
Re: [Automake-NG] [PATCH 3/4] [ng] rename: am__configure_deps - am.remake.configure-deps
On 07/24/2012 10:38 AM, Akim Demaille wrote: All these are fine. Le 22 juil. 2012 à 19:08, Stefano Lattarini a écrit : - define_variable ('am__configure_deps', INTERNAL, @configuredeps); + define_variable ('am.remake.configure-deps', INTERNAL, @configuredeps); Wouldn't some am.deps.* make sense? That namespace might be better used for stuff dealing with C/C++ automatic dependency tracking IMHO (if the need will arise). And anyway, if some of our current renames turn out to be suboptimal, we can easily fix that later (since they are all about internal variables, which we can rename whenever we want); so I'm not trying too hard to come up with perfect names. Thanks, Stefano
[Automake-NG] [FYI] [ng] tests: run two slow tests earlier, for better make -j performance
* Makefile.am (long_running_TESTS): Add 't/parallel-tests-many.sh' and 't/dist-many.sh', which are slooow. Signed-off-by: Stefano Lattarini stefano.lattar...@gmail.com --- Makefile.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile.am b/Makefile.am index f4783c6..51258cc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -312,6 +312,8 @@ all_TESTS = \ # useful when running the testsuite in parallel on multicore machines. # Here too we assume that the autogenerated tests are placed in $(srcdir). long_running_TESTS = \ + $(srcdir)/t/dist-many.sh \ + $(srcdir)/t/parallel-tests-many.sh \ $(srcdir)/t/add-missing.tap \ $(srcdir)/t/instspc.tap \ $(wildcard $(srcdir)/t/depcomp-*.tap) \ -- 1.7.12.rc0
Re: [Automake-NG] [FYI] [ng] rename: am__newline - am.chars.newline
On 07/24/2012 04:23 PM, Akim Demaille wrote: Le 24 juil. 2012 à 16:03, Stefano Lattarini a écrit : On 07/24/2012 03:54 PM, Akim Demaille wrote: Le 24 juil. 2012 à 15:40, Stefano Lattarini a écrit : diff --git a/lib/am/header-vars.am b/lib/am/header-vars.am Maybe these vars should be defined elsewhere. Where do you suggest? A file named after their namespace. am.chars.am for am.chars.* etc. Yikes, this seems an horrid overkill to me. In fact, by fragmenting few definitions into many files, we would create confusion rather than dispersing it IMHO. Let's just keep the status quo for now, and rejoice that make is not Java ;-) BTW, while I'm fully open to the idea, I believe it is something that can be left for later. Sure, even renaming can be :) The main difference is that both we agree about that the renaming is a good move ;-) Who knows, we might even decide to put the definitions of all auxiliary variables and functions that do not use any '@...@' substitution in a '*.mk' file to be distributed in the build-auxdir of the client project, and then included by all the other generated Makefiles … Yeah! A whole new future of Automake hacking will be possible! Regards, Stefano
[Automake-NG] [FYI] Merge branch 'master' into ng/master
commit e3d6f0427bec781d524aa43ad058748d0fe8ea3b Merge: 1d9 06143bd Author: Stefano Lattarini stefano.lattar...@gmail.com Date: Wed Jul 25 00:14:09 2012 +0200 Merge branch 'master' into ng/master * master: tests: avoid non-textual output in a '.log' file tags: refactor to reduce code duplication (2) tags: refactor to reduce code duplication (1) tests: better name for a couple of tests check: support colorized testsuite output by default tags: unify recursion for tags targets with that of usual targets + Extra non-trivial edits: * automake.in (handle_tests): Drop the '%COLOR%' transform in the processing of both 'serial-tests.am' and 'parallel-tests.am', which have superseded the 'check.am' from mainline Automake. * lib/am/color-tests.am: Remove use of the '%?COLOR%' transform; just act as if it were unconditionally TRUE. (am__tty_colors_dummy): Merge into ... (am__tty_colors): ... this. Signed-off-by: Stefano Lattarini stefano.lattar...@gmail.com
[Automake-NG] [FYI] [ng] tests: fix spurious failure in t/color-tests2.sh
* t/color-tests2.sh: Change the idioms used to specify the value of 'AM_COLOR_TESTS' to make. This is required since, in contrast with what happens in the mainline Automake counterpart, this script doesn't invoke make with the '-e' option. Signed-off-by: Stefano Lattarini stefano.lattar...@gmail.com --- t/color-tests2.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/t/color-tests2.sh b/t/color-tests2.sh index f8bd85b..c66dbe5 100755 --- a/t/color-tests2.sh +++ b/t/color-tests2.sh @@ -130,7 +130,7 @@ for vpath in false :; do cat stdout test_no_color - AM_COLOR_TESTS=no MAKE=$MAKE expect -f $srcdir/expect-make stdout \ + MAKE=$MAKE AM_COLOR_TESTS=no expect -f $srcdir/expect-make stdout \ || { cat stdout; exit 1; } cat stdout test_no_color @@ -142,7 +142,7 @@ for vpath in false :; do cat stdout test_no_color - TERM=ansi MAKE=env AM_COLOR_TESTS=always $MAKE \ + TERM=ansi MAKE=$MAKE AM_COLOR_TESTS=always \ expect -f $srcdir/expect-make stdout || { cat stdout; exit 1; } cat stdout test_color -- 1.7.12.rc0