automake-patches
[Top][All Lists]
Advanced

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

Re: [PATCH] Modernize, improve and/or tweak various test scripts.


From: Stefano Lattarini
Subject: Re: [PATCH] Modernize, improve and/or tweak various test scripts.
Date: Mon, 13 Sep 2010 11:22:37 +0200
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

Hello automakers.

I updated the patch slighty (see test `depdist.test') to follow the 
emerging principle of preferring "semantic" tests to "grepping" tests
in the Automake testsuite.

Regards,
   Stefano


From b6d67d34e440ef275f77c955a84658fb70c160f0 Mon Sep 17 00:00:00 2001
From: Stefano Lattarini <address@hidden>
Date: Mon, 21 Jun 2010 18:07:09 +0200
Subject: [PATCH] Modernize, improve and/or tweak various test scripts.

* tests/stamph2.test: Improve m4 quoting in `configure.in', and
prefer trailing `:' over trailing `Exit 0'.
* tests/syntax.test: Escape literal dots in grep regexps.
* tests/copy.test: Enable `errexit' shell flag.  Extend test by
checking with `test' utility that the script `install-sh' is
copied, but not symlinked.
* tests/depdist.test: Move setting of `errexit' shell flag earlier
in the script (just after inclusion of ./defs).  Avoid obsoleted
constructs in generated `configure.in'.  Prefer to do our checks
by running configure and make over grepping Makefile.in.
* tests/target-cflags: Move setting of `errexit' shell flag
earlier in the script (just after inclusion of ./defs). Use the
`configure.in' stub created by `./defs', rather than writing it
from scratch.
* tests/target-clash: Do not uselessly run autoconf.
* tests/ctarget1.test: Renamed ...
* tests/cond1.test: ... to this. Use the `configure.in' stub
created by `./defs', rather than writing it from scratch.
Move setting of `errexit' shell flag earlier in the script (just
after inclusion of ./defs).  Other minor cosmetic changes.
* tests/Makefile.am (TESTS): Updated.
---
 ChangeLog                           |   25 +++++++++++++++++++
 tests/Makefile.am                   |    2 +-
 tests/Makefile.in                   |    2 +-
 tests/{ctarget1.test => cond1.test} |   20 +++++++-------
 tests/copy.test                     |   11 +++++++-
 tests/depdist.test                  |   46 +++++++++++++++++++++++++----------
 tests/stamph2.test                  |   18 +++++++-------
 tests/syntax.test                   |    7 ++++-
 tests/target-cflags.test            |   12 ++++----
 tests/targetclash.test              |    5 ++-
 10 files changed, 102 insertions(+), 46 deletions(-)
 rename tests/{ctarget1.test => cond1.test} (81%)

diff --git a/ChangeLog b/ChangeLog
index 2334c5c..a990bc9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2010-09-13  Stefano Lattarini  <address@hidden>
+
+       Modernize, improve and/or tweak various test scripts.
+       * tests/stamph2.test: Improve m4 quoting in `configure.in', and
+       prefer trailing `:' over trailing `Exit 0'.
+       * tests/syntax.test: Escape literal dots in grep regexps.
+       * tests/copy.test: Enable `errexit' shell flag.  Extend test by
+       checking with `test' utility that the script `install-sh' is
+       copied, but not symlinked.
+       * tests/depdist.test: Move setting of `errexit' shell flag earlier
+       in the script (just after inclusion of ./defs).  Avoid obsoleted
+       constructs in generated `configure.in'.  Prefer to do our checks
+       by running configure and make over grepping Makefile.in.
+       * tests/target-cflags: Move setting of `errexit' shell flag
+       earlier in the script (just after inclusion of ./defs). Use the
+       `configure.in' stub created by `./defs', rather than writing it
+       from scratch.
+       * tests/target-clash: Do not uselessly run autoconf.
+       * tests/ctarget1.test: Renamed ...
+       * tests/cond1.test: ... to this. Use the `configure.in' stub
+       created by `./defs', rather than writing it from scratch.
+       Move setting of `errexit' shell flag earlier in the script (just
+       after inclusion of ./defs).  Other minor cosmetic changes.
+       * tests/Makefile.am (TESTS): Updated.
+
 2010-09-08  Stefano Lattarini  <address@hidden>
 
        Do not require "gzip" explicitly in tests.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 58103cc..205a520 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -162,6 +162,7 @@ compile2.test \
 compile_f90_c_cxx.test \
 compile_f_c_cxx.test \
 cond.test \
+cond1.test \
 cond2.test \
 cond3.test \
 cond4.test \
@@ -233,7 +234,6 @@ confsub.test \
 confvar.test \
 confvar2.test \
 copy.test \
-ctarget1.test \
 cxx.test \
 cxx2.test \
 cxxansi.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index e967caa..493d6bb 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -400,6 +400,7 @@ compile2.test \
 compile_f90_c_cxx.test \
 compile_f_c_cxx.test \
 cond.test \
+cond1.test \
 cond2.test \
 cond3.test \
 cond4.test \
@@ -471,7 +472,6 @@ confsub.test \
 confvar.test \
 confvar2.test \
 copy.test \
-ctarget1.test \
 cxx.test \
 cxx2.test \
 cxxansi.test \
diff --git a/tests/ctarget1.test b/tests/cond1.test
similarity index 81%
rename from tests/ctarget1.test
rename to tests/cond1.test
index d2191f6..0609ec1 100755
--- a/tests/ctarget1.test
+++ b/tests/cond1.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2001, 2002  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 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
@@ -18,11 +18,11 @@
 
 . ./defs || Exit 1
 
-cat > configure.in << 'END'
-AC_INIT
-AM_INIT_AUTOMAKE(nonesuch, nonesuch)
-AM_CONDITIONAL(TEST, true)
-AC_OUTPUT(Makefile)
+set -e
+
+cat >> configure.in << 'END'
+AM_CONDITIONAL([TEST], [true])
+AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
@@ -34,11 +34,11 @@ target: false
 endif
 END
 
-set -e
-
-$ACLOCAL || Exit 1
+$ACLOCAL
 $AUTOMAKE
+
 grep 'address@hidden@target: true' Makefile.in
 grep 'address@hidden@  action' Makefile.in
 grep 'address@hidden@target: false' Makefile.in
-Exit 0
+
+:
diff --git a/tests/copy.test b/tests/copy.test
index 770ae51..e4199a1 100755
--- a/tests/copy.test
+++ b/tests/copy.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 1999, 2001, 2002  Free Software Foundation, Inc.
+# Copyright (C) 1999, 2001, 2002, 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
@@ -18,8 +18,15 @@
 
 . ./defs || Exit 1
 
+set -e
+
 : > Makefile.am
 rm -f install-sh
 
-$ACLOCAL || Exit 1
+$ACLOCAL
 $AUTOMAKE -c -a
+
+test -f install-sh
+test ! -h install-sh
+
+:
diff --git a/tests/depdist.test b/tests/depdist.test
index f36eb47..c670cb8 100755
--- a/tests/depdist.test
+++ b/tests/depdist.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2001, 2002  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 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
@@ -17,40 +17,60 @@
 # Make sure depcomp is found for the distribution.
 # From Eric Magnien.
 
+required=gcc # FIXME: any C compiler should be ok!
 . ./defs || Exit 1
 
+set -e
+
 rm -f configure.in
 
 mkdir config
 for i in *; do
-   if test $i != "config"; then
-      mv $i config
+   if test "$i" != "config"; then
+      mv -f "$i" config
    fi
 done
 
-cat > configure.in << 'END'
-AC_INIT(subdir/foo.c)
-AC_CONFIG_AUX_DIR(config)
-AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+cat > configure.in << END
+AC_INIT([$me], [1.0])
+AC_CONFIG_AUX_DIR([config])
+AM_INIT_AUTOMAKE
 AC_PROG_CC
-AC_OUTPUT(subdir/Makefile Makefile)
+AC_CONFIG_FILES([subdir/Makefile Makefile])
+AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
 SUBDIRS = subdir
+check-local: test1 test2
+.PHONY: test1 test2
+test1:
+       echo ' ' $(DIST_COMMON) ' ' | grep '[ /]config/depcomp '
+test2: distdir
+       ls -l $(distdir)/*
+       test -f $(distdir)/config/depcomp
 END
 
 mkdir subdir
-: > subdir/foo.c
+cat > subdir/foo.c << 'END'
+int main(void)
+{
+  return 0;
+}
+END
 
 cat > subdir/Makefile.am << 'END'
 bin_PROGRAMS = foo
 foo_SOURCES = foo.c
 END
 
-set -e
-
 $ACLOCAL
-$AUTOMAKE --add-missing
 $AUTOCONF
-grep config/depcomp Makefile.in
+$AUTOMAKE --add-missing
+
+./configure
+
+$MAKE check
+$MAKE distcheck
+
+:
diff --git a/tests/stamph2.test b/tests/stamph2.test
index cb96d27..aa07743 100755
--- a/tests/stamph2.test
+++ b/tests/stamph2.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 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,14 +20,14 @@
 set -e
 
 cat >> configure.in << END
-AM_CONFIG_HEADER(1.h
-                 2.h:config.hin
-                 3.h:sdir1/config1.hin)
+AM_CONFIG_HEADER([1.h
+                  2.h:config.hin
+                  3.h:sdir1/config1.hin])
 # AM_CONFIG_HEADER and AC_CONFIG_HEADERS should be synonyms.
-AC_CONFIG_HEADERS(sdir1/4.h
-                  sdir1/5.h:config.hin
-                  sdir1/6.h:sdir1/config1.hin
-                  sdir1/7.h:sdir2/config2.hin)
+AC_CONFIG_HEADERS([sdir1/4.h
+                   sdir1/5.h:config.hin
+                   sdir1/6.h:sdir1/config1.hin
+                   sdir1/7.h:sdir2/config2.hin])
 AC_OUTPUT
 END
 
@@ -68,4 +68,4 @@ test ! -f sdir1/stamp-h5
 test ! -f sdir1/stamp-h6
 test -f sdir1/stamp-h7
 
-Exit 0
+:
diff --git a/tests/syntax.test b/tests/syntax.test
index 505486f..3b2a4e5 100755
--- a/tests/syntax.test
+++ b/tests/syntax.test
@@ -1,5 +1,6 @@
 #! /bin/sh
-# Copyright (C) 1998, 2001, 2002, 2003  Free Software Foundation, Inc.
+# Copyright (C) 1998, 2001, 2002, 2003, 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
@@ -28,4 +29,6 @@ END
 
 $ACLOCAL
 AUTOMAKE_fails
-grep 'Makefile.am:2:.*blank line' stderr
+grep 'Makefile\.am:2:.*blank line' stderr
+
+:
diff --git a/tests/target-cflags.test b/tests/target-cflags.test
index b324568..f3ac9cc 100755
--- a/tests/target-cflags.test
+++ b/tests/target-cflags.test
@@ -21,12 +21,12 @@
 required=gcc
 . ./defs || Exit 1
 
-cat > configure.in << 'END'
-AC_INIT(foo.c)
-AM_INIT_AUTOMAKE(target-cflags,0.0)
+set -e
+
+cat >> configure.in << 'END'
 AC_PROG_CC
 AM_PROG_CC_C_O
-AC_OUTPUT(Makefile)
+AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
@@ -54,8 +54,6 @@ int main(void)
 #endif
 END
 
-set -e
-
 $ACLOCAL
 $AUTOCONF
 $AUTOMAKE -a
@@ -72,3 +70,5 @@ cd ..
 $MAKE
 ./foo
 ./bar
+
+:
diff --git a/tests/targetclash.test b/tests/targetclash.test
index 0433b41..87e37a8 100755
--- a/tests/targetclash.test
+++ b/tests/targetclash.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2002, 2003  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 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,6 +30,7 @@ bin_PROGRAMS = ctags
 END
 
 $ACLOCAL
-$AUTOCONF
 AUTOMAKE_fails -a
 grep 'redefinition.*ctags' stderr
+
+:
-- 
1.7.1


reply via email to

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