On Sunday 05 September 2010, Ralf Wildenhues wrote: > * Stefano Lattarini wrote on Fri, Sep 03, 2010 at 12:24:12AM CEST: > > * tests/defs.in ($top_srcdir): Define unconditionally > > to @abs_top_src...@. Use it throughout. > > * tests/ar-lib.test: Use `$top_srcdir' instead of > > `$testsrcdir/..'. > > * tests/auxdir.test: Likewise. > > * tests/compile.test: Likewise. > > * tests/compile2.test: Likewise. > > * tests/compile3.test: Likewise. > > * tests/compile5.test: Likewise. > > * tests/mdate6.test: Likewise. > > * tests/mkinst3.test: Likewise. > > * tests/multlib.test: Likewise. > > * tests/txinfo22.test: Likewise. > > I'm not sure I understand why you first rename testsrcdir to > top_srcdir just to then rename it again. I never renamed $testsrcdir as $top_srcdir; what I did was add $top_srcdir, and then rename it to $top_testsrcdir in the next commit. Which is still suboptimal, and is the result of various amendings/squashings/movings of git commits. > Why not rename it to the final name right away? No reason not to. I'll amend the patches to introduce $top_testsrcdir right away, and then do the rename $srcdir -> $testsrcdir in the following commit. The updated patches are attached. > That would also alleviate any fears that > top_srcdir could influence testsuite results (I don't see your > patch exporting the variable, but it may have been exported > elsewhere, or before). Another good point. > Other than that, the flattened changes 2-4/4 look fine, thanks. > (I haven't checked whether you caught all instances of the > variables.) grep seems to confirm I did. Anyway, I'll run the testsuite before pushing the patch series.
Regards, Stefano
From a70b489a1f96539ce2d19b27f899ad74c04f500f Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Thu, 3 Jun 2010 01:03:00 +0200 Subject: [PATCH 2/4] Tests defs: new variable $top_testsrcdir. * tests/defs.in ($top_testsrcdir): Define unconditionally to @abs_top_src...@. Use it throughout. * tests/ar-lib.test: Use `$top_testsrcdir' instead of `$testsrcdir/..'. * tests/auxdir.test: Likewise. * tests/compile.test: Likewise. * tests/compile2.test: Likewise. * tests/compile3.test: Likewise. * tests/compile5.test: Likewise. * tests/mdate6.test: Likewise. * tests/mkinst3.test: Likewise. * tests/multlib.test: Likewise. * tests/txinfo22.test: Likewise. --- ChangeLog | 15 +++++++++++++++ tests/ar-lib.test | 3 ++- tests/auxdir.test | 5 +++-- tests/compile.test | 4 ++-- tests/compile2.test | 4 ++-- tests/compile3.test | 2 +- tests/compile5.test | 2 +- tests/defs.in | 15 ++++++++------- tests/mdate6.test | 2 +- tests/mkinst3.test | 4 ++-- tests/multlib.test | 4 ++-- tests/obsolete.test | 2 +- tests/txinfo22.test | 5 +++-- 13 files changed, 43 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index a42df97..28826f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,20 @@ 2010-09-06 Stefano Lattarini <stefano.lattar...@gmail.com> + Tests defs: new variable $top_testsrcdir. + * tests/defs.in ($top_testsrcdir): Define unconditionally + to @abs_top_src...@. Use it throughout. + * tests/ar-lib.test: Use `$top_testsrcdir' instead of + `$testsrcdir/..'. + * tests/auxdir.test: Likewise. + * tests/compile.test: Likewise. + * tests/compile2.test: Likewise. + * tests/compile3.test: Likewise. + * tests/compile5.test: Likewise. + * tests/mdate6.test: Likewise. + * tests/mkinst3.test: Likewise. + * tests/multlib.test: Likewise. + * tests/txinfo22.test: Likewise. + Tests defs: $srcdir is unconditionally substituted. * tests/defs.in ($srcdir): Define unconditionally to @abs_src...@. Remove code for $srcdir normalization, which is now useless. diff --git a/tests/ar-lib.test b/tests/ar-lib.test index d418c21..d3f5f01 100755 --- a/tests/ar-lib.test +++ b/tests/ar-lib.test @@ -20,7 +20,8 @@ set -e -cp "$testsrcdir/../lib/ar-lib" . +cp "$top_testsrcdir/lib/ar-lib" . + # Use a dummy lib, since lib isn't readily available on all systems cat >lib <<'END' #! /bin/sh diff --git a/tests/auxdir.test b/tests/auxdir.test index 95a7a20..74f6e6c 100755 --- a/tests/auxdir.test +++ b/tests/auxdir.test @@ -1,5 +1,6 @@ #! /bin/sh -# Copyright (C) 1996, 2001, 2002, 2003, 2004, 2007 Free Software Foundation, Inc. +# Copyright (C) 1996, 2001, 2002, 2003, 2004, 2007, 2010 Free Software +# Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -30,7 +31,7 @@ cat > Makefile.am << 'END' pkgdata_DATA = END -cp "$testsrcdir/../lib/mkinstalldirs" . +cp "$top_testsrcdir/lib/mkinstalldirs" . # The "././" prefix confuses Automake into thinking it is doing a # subdir build. Yes, this is hacky. diff --git a/tests/compile.test b/tests/compile.test index ef27afe..6162861 100755 --- a/tests/compile.test +++ b/tests/compile.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2004, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2007, 2010 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,7 +20,7 @@ set -e -cp "$testsrcdir/../lib/compile" . +cp "$top_testsrcdir/lib/compile" . # -o 'a c' should not be stripped because 'a c' is not an object # (it does not matter whether touch creates ./-- or not) diff --git a/tests/compile2.test b/tests/compile2.test index fe4574a..e3069d0 100755 --- a/tests/compile2.test +++ b/tests/compile2.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2009 Free Software Foundation, Inc. +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,7 +20,7 @@ set -e -cp "$testsrcdir/../lib/compile" . +cp "$top_testsrcdir/lib/compile" . cat >mycc <<'END' source_seen=no diff --git a/tests/compile3.test b/tests/compile3.test index b77237b..e7b8b6d 100755 --- a/tests/compile3.test +++ b/tests/compile3.test @@ -20,7 +20,7 @@ set -e -cp "$testsrcdir/../lib/compile" . +cp "$top_testsrcdir/lib/compile" . # Use a dummy cl, since cl isn't readily available on all systems cat >cl <<'END' diff --git a/tests/compile5.test b/tests/compile5.test index cd1468f..5fc1b30 100755 --- a/tests/compile5.test +++ b/tests/compile5.test @@ -21,7 +21,7 @@ set -e -cp "$testsrcdir/../lib/compile" . +cp "$top_testsrcdir/lib/compile" . # Use a dummy cl, since cl isn't readily available on all systems cat >cl <<'END' diff --git a/tests/defs.in b/tests/defs.in index 109c458..7179659 100644 --- a/tests/defs.in +++ b/tests/defs.in @@ -22,6 +22,7 @@ # Absolutely necessary variable(s). srcdir='@abs_srcdir@' +top_testsrcdir='@abs_top_srcdir@' # Protect this file against multiple inclusion, useful for generated tests. if test x"$am_skip_defs" = xyes; then @@ -66,7 +67,7 @@ test -z "$MAKE" && MAKE=make test -z "$AUTOCONF" && AUTOCONF="@am_AUTOCONF@" test -z "$AUTOHEADER" && AUTOHEADER="@am_AUTOHEADER@" test -z "$AUTOUPDATE" && AUTOUPDATE=autoupdate -test -z "$MISSING" && MISSING=`pwd`/../lib/missing +test -z "$MISSING" && MISSING=$top_testsrcdir/lib/missing # Use -Werror because this also turns some Perl warnings into error. # (Tests for which this is inappropriate should use -Wno-error.) test -z "$ACLOCAL" && ACLOCAL="acloc...@apiversion@ -Werror" @@ -278,7 +279,7 @@ signal=0 # Copy in some files we need. for file in install-sh missing depcomp; do - cp "$srcdir/../lib/$file" "$testSubDir/$file" || Exit 1 + cp "$top_testsrcdir/lib/$file" "$testSubDir/$file" || Exit 1 done cd ./$testSubDir @@ -326,9 +327,9 @@ echo "=== Running test $0" # We might need extra macros, e.g., from Libtool or Gettext. # Find them on the system. -# Use `-I $srcdir/../m4' in addition to `--acdir=$srcdir/../m4', because the -# other `-I' directories added for libtool and gettext might contain -# files from an old version of Automake that we don't want to use. +# Use `-I $top_testsrcdir/m4' in addition to `--acdir=$top_testsrcdir/m4', +# because the other `-I' directories added for libtool and gettext might +# contain files from an old version of Automake that we don't want to use. # Use `-Wno-syntax' because we do not want our test suite to fail because # some third-party .m4 file is underquoted. case " $required " in @@ -363,11 +364,11 @@ case " $required " in case $srcdir,`pwd` in *\ * | *\ *) Exit 77;; esac - ACLOCAL="$ACLOCAL -Wno-syntax -I $srcdir/../m4 $extra_includes -I $aclocaldir" + ACLOCAL="$ACLOCAL -Wno-syntax -I $top_testsrcdir/m4 $extra_includes -I $aclocaldir" ;; esac -testaclocaldir='@abs_top_srcdir@/m4' +testaclocaldir=$top_testsrcdir/m4 # POSIX no longer requires 'egrep' and 'fgrep', # but some hosts lack 'grep -E' and 'grep -F'. diff --git a/tests/mdate6.test b/tests/mdate6.test index e7f7d69..cb2456c 100755 --- a/tests/mdate6.test +++ b/tests/mdate6.test @@ -24,7 +24,7 @@ a= file='file name $a' ( : > "$file" ) || Exit 77 -cp "$testsrcdir"/../lib/mdate-sh . +cp "$top_testsrcdir/lib/mdate-sh" . $SHELL ./mdate-sh "$file" >stdout 2>stderr || { cat stdout; cat stderr >&2; Exit 1; } cat stdout diff --git a/tests/mkinst3.test b/tests/mkinst3.test index 18f18fb..6ccabf9 100755 --- a/tests/mkinst3.test +++ b/tests/mkinst3.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2005, 2006, 2010 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ mkdir '~a b' || Exit 77 mkdir '~a b/-x y' || Exit 77 rm -rf '~a b' -cp "$testsrcdir/../lib/mkinstalldirs" . +cp "$top_testsrcdir/lib/mkinstalldirs" . # Test mkinstalldirs with the installed mkdir. diff --git a/tests/multlib.test b/tests/multlib.test index 5ff19d7..73e9b37 100755 --- a/tests/multlib.test +++ b/tests/multlib.test @@ -107,8 +107,8 @@ mkdir libbar/sub : > libbar/bar.c -cp "$testsrcdir/../lib/config-ml.in" . -cp "$testsrcdir/../lib/symlink-tree" . +cp "$top_testsrcdir/lib/config-ml.in" . +cp "$top_testsrcdir/lib/symlink-tree" . $ACLOCAL $AUTOCONF diff --git a/tests/obsolete.test b/tests/obsolete.test index 337e4db..588fc0d 100755 --- a/tests/obsolete.test +++ b/tests/obsolete.test @@ -28,7 +28,7 @@ AC_INIT END $PERL -ne '/AU_DEFUN\(\[(\w+)\]/ && print "$1\n"' \ - "$testsrcdir/../m4/obsolete.m4" >> obs + "$top_testsrcdir/m4/obsolete.m4" >> obs cat obs >> configure.in $PERL -ne 'chomp; print "grep $_ stderr || Exit 1\n"; ' obs > obs.1 $PERL -ne 'chomp; print "grep $_ configure.in && Exit 1\n"; ' obs > obs.2 diff --git a/tests/txinfo22.test b/tests/txinfo22.test index 3c2265d..4adf473 100755 --- a/tests/txinfo22.test +++ b/tests/txinfo22.test @@ -1,5 +1,6 @@ #! /bin/sh -# Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2007, 2008, 2010 Free Software Foundation, +# Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -56,7 +57,7 @@ END mkdir aux1 mkdir tex -cp "$testsrcdir/../lib/texinfo.tex" tex +cp "$top_testsrcdir/lib/texinfo.tex" tex $ACLOCAL $AUTOMAKE --add-missing -- 1.7.1
From b30c520ee85b91dd8a5afa5296b83e0ec578c53e Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Wed, 2 Jun 2010 21:55:23 +0200 Subject: [PATCH 3/4] Tests defs: $srcdir renaming. * tests/defs.in ($srcdir): Remove, define $testsrcdir directly. * tests/Makefile.am ($(parallel_tests)): Generation of derived tests updated. --- ChangeLog | 5 +++++ tests/Makefile.am | 6 +++--- tests/Makefile.in | 6 +++--- tests/defs.in | 18 ++++++++---------- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 28826f3..2b41e2b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2010-09-06 Stefano Lattarini <stefano.lattar...@gmail.com> + Tests defs: $srcdir and $top_srcdir renaming. + * tests/defs.in ($srcdir): Remove, define $testsrcdir directly. + * tests/Makefile.am ($(parallel_tests)): Generation of derived + tests updated. + Tests defs: new variable $top_testsrcdir. * tests/defs.in ($top_testsrcdir): Define unconditionally to @abs_top_src...@. Use it throughout. diff --git a/tests/Makefile.am b/tests/Makefile.am index d86b03b..f4fba45 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -34,10 +34,10 @@ $(parallel_tests): Makefile.am { echo '#!/bin/sh'; \ echo '# DO NOT EDIT! GENERATED AUTOMATICALLY!'; \ echo; \ - echo '# Ensure proper definition of $$srcdir.'; \ + echo '# Ensure proper definition of $$testsrcdir.'; \ echo 'am_skip_defs=yes'; \ echo '. ./defs || exit 99'; \ - echo 'test -n "$$srcdir" || exit 99 # sanity check'; \ + echo 'test -n "$$testsrcdir" || exit 99 # sanity check'; \ echo; \ echo "# Run the test with Automake's parallel-tests driver enabled."; \ echo 'parallel_tests=yes'; \ @@ -46,7 +46,7 @@ $(parallel_tests): Makefile.am echo "if test -f \"./$$input\"; then"; \ echo " . \"./$$input\""; \ echo 'else'; \ - echo " . \"\$$srcdir/$$input\""; \ + echo " . \"\$$testsrcdir/$$input\""; \ echo 'fi'; \ } > $...@-t $(AM_V_at)chmod a+rx $...@-t && mv -f $...@-t $@ diff --git a/tests/Makefile.in b/tests/Makefile.in index 77ec888..af80fdb 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1408,10 +1408,10 @@ $(parallel_tests): Makefile.am { echo '#!/bin/sh'; \ echo '# DO NOT EDIT! GENERATED AUTOMATICALLY!'; \ echo; \ - echo '# Ensure proper definition of $$srcdir.'; \ + echo '# Ensure proper definition of $$testsrcdir.'; \ echo 'am_skip_defs=yes'; \ echo '. ./defs || exit 99'; \ - echo 'test -n "$$srcdir" || exit 99 # sanity check'; \ + echo 'test -n "$$testsrcdir" || exit 99 # sanity check'; \ echo; \ echo "# Run the test with Automake's parallel-tests driver enabled."; \ echo 'parallel_tests=yes'; \ @@ -1420,7 +1420,7 @@ $(parallel_tests): Makefile.am echo "if test -f \"./$$input\"; then"; \ echo " . \"./$$input\""; \ echo 'else'; \ - echo " . \"\$$srcdir/$$input\""; \ + echo " . \"\$$testsrcdir/$$input\""; \ echo 'fi'; \ } > $...@-t $(AM_V_at)chmod a+rx $...@-t && mv -f $...@-t $@ diff --git a/tests/defs.in b/tests/defs.in index 7179659..7f6807c 100644 --- a/tests/defs.in +++ b/tests/defs.in @@ -21,7 +21,7 @@ # Tom Tromey <tro...@cygnus.com> # Absolutely necessary variable(s). -srcdir='@abs_srcdir@' +testsrcdir='@abs_srcdir@' top_testsrcdir='@abs_top_srcdir@' # Protect this file against multiple inclusion, useful for generated tests. @@ -50,9 +50,9 @@ test -f ./defs || { exit 1 } -# Ensure $srcdir is set correctly. -test -f "$srcdir/defs.in" || { - echo "$srcdir/defs.in not found, check \$srcdir" 1>&2 +# Ensure $testsrcdir is set correctly. +test -f "$testsrcdir/defs.in" || { + echo "$testsrcdir/defs.in not found, check \$testsrcdir" 1>&2 exit 1 } @@ -312,6 +312,9 @@ unset DESTDIR unset prefix exec_prefix bindir datarootdir datadir docdir dvidir unset htmldir includedir infodir libdir libexecdir localedir mandir unset oldincludedir pdfdir psdir sbindir sharedstatedir sysconfdir +# The tests call `make -e' but we do not want $srcdir from the environment +# to override the definition from the Makefile. +unset srcdir # Also unset variables that control our test driver. While not # conceptually independent, they cause some changed semantics we # need to control (and test for) in some of the tests to ensure @@ -361,7 +364,7 @@ case " $required " in # Libtool cannot cope with spaces in the build tree. Our testsuite setup # cannot cope with spaces in the source tree name for Libtool and gettext # tests. - case $srcdir,`pwd` in + case $testsrcdir,`pwd` in *\ * | *\ *) Exit 77;; esac ACLOCAL="$ACLOCAL -Wno-syntax -I $top_testsrcdir/m4 $extra_includes -I $aclocaldir" @@ -380,11 +383,6 @@ FGREP='@FGREP@' # and can be up to 3 seconds in the future w.r.t. the system clock. sleep='sleep @MODIFICATION_DELAY@' -# The tests call `make -e' but we do not want $srcdir from the environment -# to override the definition from the Makefile. -testsrcdir=$srcdir -unset srcdir - # An old timestamp that can be given to a file, in "touch -t" format. # The time stamp should be portable to all file systems of interest. # Just for fun, choose the exact time of the announcement of the GNU project -- 1.7.1