[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Test suite and autotest
From: |
Tim Landscheidt |
Subject: |
Re: Test suite and autotest |
Date: |
Thu, 08 Mar 2012 14:22:21 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
I wrote:
> [...] NB: tests/run_make_tests.pl deletes
> tests/Makefile, [...]
In fact, this is caused by
tests/scripts/features/default_names. The attached patch
converts this script so that "make check" will work flaw-
lessly.
Tim
>From 2b1796348621d8ad47352c61b4c2db4db54cca61 Mon Sep 17 00:00:00 2001
From: Tim Landscheidt <address@hidden>
Date: Thu, 8 Mar 2012 14:03:00 +0000
Subject: [PATCH] Convert tests/scripts/features/default_names to autotest.
---
tests/Makefile.am | 2 +-
tests/features/default_names.at | 46 ++++++++++++++++++++++++++++++++++
tests/local.at | 2 +-
tests/scripts/features/default_names | 41 ------------------------------
tests/testsuite.at | 1 +
5 files changed, 49 insertions(+), 43 deletions(-)
create mode 100644 tests/features/default_names.at
delete mode 100644 tests/scripts/features/default_names
diff --git a/tests/Makefile.am b/tests/Makefile.am
index dbefa42..3d33ecc 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -32,6 +32,6 @@ clean-local:
AUTOM4TE = $(SHELL) $(top_srcdir)/config/missing --run autom4te
AUTOTEST = $(AUTOM4TE) --language=autotest
-$(TESTSUITE): $(srcdir)/testsuite.at $(srcdir)/local.at
$(srcdir)/options/dash-n.at $(srcdir)/package.m4
+$(TESTSUITE): $(srcdir)/testsuite.at $(srcdir)/local.at
$(srcdir)/features/default_names.at $(srcdir)/options/dash-n.at
$(srcdir)/package.m4
$(AUTOTEST) -I '$(srcdir)' -o address@hidden address@hidden
mv address@hidden $@
diff --git a/tests/features/default_names.at b/tests/features/default_names.at
new file mode 100644
index 0000000..0854e67
--- /dev/null
+++ b/tests/features/default_names.at
@@ -0,0 +1,46 @@
+# This test makes sure that make looks for default makefiles in the
+# correct order (GNUmakefile, makefile, Makefile).
+
+AT_SETUP([Test default Makefile.])
+
+AT_DATA([Makefile], [THIRD: ; @echo It chose Makefile
+])
+
+AT_TEST_MAKE([], [], [It chose Makefile
+])
+
+AT_CLEANUP
+
+AT_SETUP([Test precedence of GNUmakefile over makefile and Makefile.])
+
+# DOS/WIN32 platforms preserve case, but Makefile is the same file as
+# makefile. In this case, Makefile and makefile will be the same, but
+# we are only interested in the precedence of GNUmakefile here.
+
+AT_DATA([GNUmakefile], [FIRST: ; @echo It chose GNUmakefile
+])
+AT_DATA([makefile], [SECOND: ; @echo It chose makefile
+])
+AT_DATA([Makefile], [THIRD: ; @echo It chose Makefile
+])
+
+AT_TEST_MAKE([], [], [It chose GNUmakefile
+])
+
+AT_CLEANUP
+
+AT_SETUP([Test precedence of makefile over Makefile.])
+
+# DOS/WIN32 platforms preserve case, but Makefile is the same file as
+# makefile. In this case, we skip the test.
+
+AT_DATA([makefile], [SECOND: ; @echo It chose makefile
+])
+AT_SKIP_IF([test -e Makefile])
+AT_DATA([Makefile], [THIRD: ; @echo It chose Makefile
+])
+
+AT_TEST_MAKE([], [], [It chose makefile
+])
+
+AT_CLEANUP
diff --git a/tests/local.at b/tests/local.at
index f1f4618..51a71ce 100644
--- a/tests/local.at
+++ b/tests/local.at
@@ -2,7 +2,7 @@
# ---------------------------------------
# Try MAKEFILE with OPTIONS and expect EXPOUT.
m4_define([AT_TEST_MAKE],
-[AT_CHECK([MAKELEVEL= ../../../make --no-print-directory $2 -f $1], 0, [$3],
[])])
+[AT_CHECK([MAKELEVEL= ../../../make --no-print-directory $2]m4_if([$1], [],
[], [ -f $1]), 0, [$3], [])])
# AT_TOUCH(FILE)
# --------------
diff --git a/tests/scripts/features/default_names
b/tests/scripts/features/default_names
deleted file mode 100644
index e53127e..0000000
--- a/tests/scripts/features/default_names
+++ /dev/null
@@ -1,41 +0,0 @@
-# -*-perl-*-
-
-$description = "This script tests to make sure that Make looks for
-default makefiles in the correct order (GNUmakefile,makefile,Makefile)";
-
-# Create a makefile called "GNUmakefile"
-$makefile = "GNUmakefile";
-
-open(MAKEFILE,"> $makefile");
-print MAKEFILE "FIRST: ; address@hidden It chose GNUmakefile\n";
-close(MAKEFILE);
-
-# DOS/WIN32 platforms preserve case, but Makefile is the same file as makefile.
-# Just test what we can here (avoid Makefile versus makefile test).
-
-if ($port_type eq 'UNIX') {
- # Create another makefile called "makefile"
- open(MAKEFILE,"> makefile");
- print MAKEFILE "SECOND: ; address@hidden It chose makefile\n";
- close(MAKEFILE);
-}
-
-# Create another makefile called "Makefile"
-open(MAKEFILE,"> Makefile");
-print MAKEFILE "THIRD: ; address@hidden It chose Makefile\n";
-close(MAKEFILE);
-
-
-&run_make_with_options("","",&get_logfile);
-&compare_output("It chose GNUmakefile\n",&get_logfile(1));
-unlink $makefile;
-
-if ($port_type eq 'UNIX') {
- &run_make_with_options("","",&get_logfile);
- &compare_output("It chose makefile\n",&get_logfile(1));
- unlink "makefile";
-}
-
-&run_make_with_options("","",&get_logfile);
-&compare_output("It chose Makefile\n",&get_logfile(1));
-unlink "Makefile";
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 7ef2c23..da00c1b 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -1,3 +1,4 @@
AT_INIT
+m4_include([features/default_names.at])
m4_include([options/dash-n.at])
--
1.6.2.5