automake-patches
[Top][All Lists]
Advanced

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

[FYI] {maint} tests: move all under the same hierarchy ('tests/' directo


From: Stefano Lattarini
Subject: [FYI] {maint} tests: move all under the same hierarchy ('tests/' directory)
Date: Wed, 18 Jan 2012 13:34:48 +0100

This simplifies the organization of the Automake source tree and
reduces the (lamentably high) number of Makefiles in the Automake
build system by one.  It also makes the maintainer check that
verifies the consistency of list of tests more self-contained and
simpler.  Finally, it might be a first step forward the transition
to a non-recursive build system for automake (if we ever decide to
go down that road fully some day).

* lib/Automake/tests: All the '*.pl' tests in here moved ...
* tests/pm: ... into this new directory.
* lib/Automake/tests/Makefile.am: Remove, its meaningful
contents moved ...
* tests/Makefile.am: ... here, with obvious adjustments.
(test_subdirs): New variable, for the sake of the recipe
of 'maintainer-check-list-of-tests'.
* CheckListOfTests (maintainer-check-list-of-tests): Enhance
its recipe to make it able to deal with test script residing
in subdirectories.
* Makefile.am (maintainer-check-list-of-tests): Simplified.
(TEST_SUBDIRS): Remove, no more needed.
* tests/list-of-tests.mk (perl_TESTS): New variable, lists
the '.pl' tests just moved into 'tests/pm'.
(handwritten_TESTS): Add the contents of '$(perl_TESTS)'.
* lib/Automake/Makefile.am (SUBDIRS): Remove.
* configure.ac (AC_CONFIG_FILES): Update.
* .gitignore: Adjust.
---
 .gitignore                                         |    4 +-
 CheckListOfTests.am                                |   15 ++++++---
 Makefile.am                                        |   15 +--------
 configure.ac                                       |    1 -
 lib/Automake/Makefile.am                           |    7 +---
 lib/Automake/tests/Makefile.am                     |   33 --------------------
 tests/Makefile.am                                  |    6 +++
 tests/list-of-tests.mk                             |    9 +++++
 {lib/Automake/tests => tests/pm}/Condition-t.pl    |    0
 {lib/Automake/tests => tests/pm}/Condition.pl      |    0
 .../tests => tests/pm}/DisjConditions-t.pl         |    0
 {lib/Automake/tests => tests/pm}/DisjConditions.pl |    0
 {lib/Automake/tests => tests/pm}/Version.pl        |    0
 {lib/Automake/tests => tests/pm}/Wrap.pl           |    0
 14 files changed, 30 insertions(+), 60 deletions(-)
 delete mode 100644 lib/Automake/tests/Makefile.am
 rename {lib/Automake/tests => tests/pm}/Condition-t.pl (100%)
 rename {lib/Automake/tests => tests/pm}/Condition.pl (100%)
 rename {lib/Automake/tests => tests/pm}/DisjConditions-t.pl (100%)
 rename {lib/Automake/tests => tests/pm}/DisjConditions.pl (100%)
 rename {lib/Automake/tests => tests/pm}/Version.pl (100%)
 rename {lib/Automake/tests => tests/pm}/Wrap.pl (100%)

diff --git a/.gitignore b/.gitignore
index 33e3827..f219153 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,10 +47,10 @@ Makefile
 /doc/amhello/install-sh
 /doc/amhello/missing
 /lib/Automake/Config.pm
-/lib/Automake/tests/*.log
-/lib/Automake/tests/*.log-t
 /tests/*.log
 /tests/*.log-t
+/tests/pm/*.log
+/tests/pm/*.log-t
 /tests/*.dir
 /tests/*-p.test
 /tests/aclocal-1.*
diff --git a/CheckListOfTests.am b/CheckListOfTests.am
index 0a48447..c71c7fc 100644
--- a/CheckListOfTests.am
+++ b/CheckListOfTests.am
@@ -37,13 +37,18 @@ maintainer-check-list-of-tests:
         for t in $$lst; do \
           echo "$$t"; \
         done | sort >$(am__tmk); \
+## List of subdirs where to look for tests.
+        dirs='$(test_subdirs)'; \
+        test -n "$$dirs" || dirs=.; \
 ## List of tests on filesystem.  Be careful to cater for VPATH builds too.
         for ext in $(TEST_EXTENSIONS); do \
-          ls *$$ext 2>/dev/null; \
-          if test $(srcdir) != $(builddir); then \
-            (cd $(srcdir) && ls *$$ext 2>/dev/null); \
-          fi; \
-        done | sort | uniq >$(am__tfs); \
+          for dir in $$dirs; do \
+            ls $$dir/*$$ext 2>/dev/null; \
+            if test $(srcdir) != $(builddir); then \
+              (cd $(srcdir) && ls $$dir/*$$ext 2>/dev/null); \
+            fi; \
+          done; \
+        done | sed 's,^\./,,' | sort | uniq >$(am__tfs); \
 ## Compare the two lists, complain if they differ.
         if $$diff $(am__tmk) $(am__tfs) >$(am__tdf); then \
            result=0; \
diff --git a/Makefile.am b/Makefile.am
index 7ad3b92..b9166db 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,8 +25,6 @@
 ## run aclocal and automake.
 SUBDIRS = lib . contrib doc m4 tests
 
-TEST_SUBDIRS = tests lib/Automake/tests
-
 bin_SCRIPTS = automake aclocal
 
 CLEANFILES = $(bin_SCRIPTS)
@@ -203,18 +201,7 @@ maintainer-check: $(syntax_check_rules)
 ## list of all test scripts in the Automake testsuite.
 .PHONY: maintainer-check-list-of-tests
 maintainer-check-list-of-tests:
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       for subdir in $(TEST_SUBDIRS); do \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@) || eval $$failcom; \
-       done; \
-       test -z "$$fail"
-
+       $(am__cd) tests && $(MAKE) $(AM_MAKEFLAGS) $@
 maintainer-check: maintainer-check-list-of-tests
 
 ## Look for test whose names can cause spurious failures when used as
diff --git a/configure.ac b/configure.ac
index bcd28fd..18dbd8a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -209,7 +209,6 @@ AC_CONFIG_FILES([
   contrib/Makefile
   doc/Makefile
   lib/Automake/Makefile
-  lib/Automake/tests/Makefile
   lib/Makefile
   lib/am/Makefile
   m4/Makefile
diff --git a/lib/Automake/Makefile.am b/lib/Automake/Makefile.am
index cfc7272..9805024 100644
--- a/lib/Automake/Makefile.am
+++ b/lib/Automake/Makefile.am
@@ -1,7 +1,7 @@
 ## Process this file with automake to create Makefile.in
 
-# Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009, 2010, 2012 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
@@ -16,9 +16,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# `make clean check' should build Config.pm first.
-SUBDIRS = . tests
-
 perllibdir = $(pkgvdatadir)/Automake
 dist_perllib_DATA = \
   ChannelDefs.pm \
diff --git a/lib/Automake/tests/Makefile.am b/lib/Automake/tests/Makefile.am
deleted file mode 100644
index a537fd1..0000000
--- a/lib/Automake/tests/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-## Process this file with automake to create Makefile.in
-
-# Copyright (C) 2002, 2003, 2008, 2009, 2012 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
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-PL_LOG_COMPILER = $(PERL)
-AM_PL_LOG_FLAGS = -Mstrict -I ../.. -I $(top_srcdir)/lib -w
-TEST_EXTENSIONS = .pl
-
-TESTS = \
-Condition.pl \
-Condition-t.pl \
-DisjConditions.pl \
-DisjConditions-t.pl \
-Version.pl \
-Wrap.pl
-
-EXTRA_DIST = $(TESTS)
-
-include $(top_srcdir)/CheckListOfTests.am
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c2daff4..4939aab 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -52,6 +52,11 @@ TESTS_ENVIRONMENT = \
   test x"$$required" = x || unset required; \
   test x"$$parallel_tests" = x || unset parallel_tests;
 
+TEST_EXTENSIONS = .pl .test
+
+PL_LOG_COMPILER = $(PERL)
+AM_PL_LOG_FLAGS = -Mstrict -I $(top_builddir)/lib -I $(top_srcdir)/lib -w
+
 include $(srcdir)/list-of-tests.mk
 
 TESTS = $(handwritten_TESTS) $(parallel_tests)
@@ -128,6 +133,7 @@ EXTRA_DIST += distcheck-hook-m4.am
 check_SCRIPTS = defs aclocal-$(APIVERSION) automake-$(APIVERSION)
 
 ## Checking the list of tests.
+test_subdirs = . pm
 include $(top_srcdir)/CheckListOfTests.am
 maintainer-check-list-of-tests: $(parallel_tests)
 
diff --git a/tests/list-of-tests.mk b/tests/list-of-tests.mk
index 6e4412f..7585e2b 100644
--- a/tests/list-of-tests.mk
+++ b/tests/list-of-tests.mk
@@ -17,12 +17,21 @@
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+perl_TESTS = \
+pm/Condition.pl \
+pm/Condition-t.pl \
+pm/DisjConditions.pl \
+pm/DisjConditions-t.pl \
+pm/Version.pl \
+pm/Wrap.pl
+
 # The order here is mostly alphabetical, with the deliberate exception
 # that tests having a high runtime (especially TAP tests that run various
 # checks sequentially) are listed early; this improves performance on
 # concurrent testsuite runs.
 handwritten_TESTS = \
 get-sysconf.test \
+$(perl_TESTS) \
 self-check-env-sanitize.test \
 self-check-report.test \
 aclibobj.test \
diff --git a/lib/Automake/tests/Condition-t.pl b/tests/pm/Condition-t.pl
similarity index 100%
rename from lib/Automake/tests/Condition-t.pl
rename to tests/pm/Condition-t.pl
diff --git a/lib/Automake/tests/Condition.pl b/tests/pm/Condition.pl
similarity index 100%
rename from lib/Automake/tests/Condition.pl
rename to tests/pm/Condition.pl
diff --git a/lib/Automake/tests/DisjConditions-t.pl 
b/tests/pm/DisjConditions-t.pl
similarity index 100%
rename from lib/Automake/tests/DisjConditions-t.pl
rename to tests/pm/DisjConditions-t.pl
diff --git a/lib/Automake/tests/DisjConditions.pl b/tests/pm/DisjConditions.pl
similarity index 100%
rename from lib/Automake/tests/DisjConditions.pl
rename to tests/pm/DisjConditions.pl
diff --git a/lib/Automake/tests/Version.pl b/tests/pm/Version.pl
similarity index 100%
rename from lib/Automake/tests/Version.pl
rename to tests/pm/Version.pl
diff --git a/lib/Automake/tests/Wrap.pl b/tests/pm/Wrap.pl
similarity index 100%
rename from lib/Automake/tests/Wrap.pl
rename to tests/pm/Wrap.pl
-- 
1.7.7.3




reply via email to

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