[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 6/6] More tests on AM_PROG_LEX, AC_PROG_LEX and @address@hidden
From: |
Stefano Lattarini |
Subject: |
[PATCH 6/6] More tests on AM_PROG_LEX, AC_PROG_LEX and @address@hidden |
Date: |
Thu, 20 May 2010 12:47:26 +0200 |
User-agent: |
KMail/1.12.1 (Linux/2.6.30-2-686; KDE/4.3.4; i686; ; ) |
* tests/lexlib.test: New test, checks on @LEXLIB@ and $(LEXLIB).
* tests/lex12.test: New test, checks on AC_PROG_LEX and
AM_PROG_LEX.
* tests/lex13.test: New test, checks on AM_PROG_LEX.
* tests/lex3.test (configure.in): Use AC_PROG_LEX, not
AM_PROG_LEX.
* tests/lex5.test: Likewise.
* tests/Makefile.am (TESTS): Update.
---
ChangeLog | 10 +++++++
tests/Makefile.am | 3 ++
tests/Makefile.in | 3 ++
tests/lex12.test | 49 +++++++++++++++++++++++++++++++++++++
tests/lex13.test | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/lex3.test | 2 +-
tests/lex5.test | 2 +-
tests/lexlib.test | 56 ++++++++++++++++++++++++++++++++++++++++++
8 files changed, 193 insertions(+), 2 deletions(-)
create mode 100755 tests/lex12.test
create mode 100755 tests/lex13.test
create mode 100755 tests/lexlib.test
From 8f38e1144c282d359a9fa967cbc6eb6f0eb75f40 Mon Sep 17 00:00:00 2001
From: Stefano Lattarini <address@hidden>
Date: Wed, 19 May 2010 22:32:31 +0200
Subject: [PATCH 6/6] More tests on AM_PROG_LEX, AC_PROG_LEX and @address@hidden
* tests/lexlib.test: New test, checks on @LEXLIB@ and $(LEXLIB).
* tests/lex12.test: New test, checks on AC_PROG_LEX and
AM_PROG_LEX.
* tests/lex13.test: New test, checks on AM_PROG_LEX.
* tests/lex3.test (configure.in): Use AC_PROG_LEX, not
AM_PROG_LEX.
* tests/lex5.test: Likewise.
* tests/Makefile.am (TESTS): Update.
---
ChangeLog | 10 +++++++
tests/Makefile.am | 3 ++
tests/Makefile.in | 3 ++
tests/lex12.test | 49 +++++++++++++++++++++++++++++++++++++
tests/lex13.test | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/lex3.test | 2 +-
tests/lex5.test | 2 +-
tests/lexlib.test | 56 ++++++++++++++++++++++++++++++++++++++++++
8 files changed, 193 insertions(+), 2 deletions(-)
create mode 100755 tests/lex12.test
create mode 100755 tests/lex13.test
create mode 100755 tests/lexlib.test
diff --git a/ChangeLog b/ChangeLog
index 2c87601..4094f7c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2010-05-20 Stefano Lattarini <address@hidden>
+ More tests on AM_PROG_LEX, AC_PROG_LEX and @address@hidden
+ * tests/lexlib.test: New test, checks on @LEXLIB@ and $(LEXLIB).
+ * tests/lex12.test: New test, checks on AC_PROG_LEX and
+ AM_PROG_LEX.
+ * tests/lex13.test: New test, checks on AM_PROG_LEX.
+ * tests/lex3.test (configure.in): Use AC_PROG_LEX, not
+ AM_PROG_LEX.
+ * tests/lex5.test: Likewise.
+ * tests/Makefile.am (TESTS): Update.
+
New tests on Lex and Yacc dependencies declarations.
* tests/lex10.test: New test script.
* tests/lex11.test: Likewise.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 793e041..ca3f4d9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -413,7 +413,10 @@ lex8.test \
lex9.test \
lex10.test \
lex11.test \
+lex12.test \
+lex13.test \
lexcpp.test \
+lexlib.test \
lexvpath.test \
libexec.test \
libobj2.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 48f23e3..5c4be1e 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -650,7 +650,10 @@ lex8.test \
lex9.test \
lex10.test \
lex11.test \
+lex12.test \
+lex13.test \
lexcpp.test \
+lexlib.test \
lexvpath.test \
libexec.test \
libobj2.test \
diff --git a/tests/lex12.test b/tests/lex12.test
new file mode 100755
index 0000000..e2078e0
--- /dev/null
+++ b/tests/lex12.test
@@ -0,0 +1,49 @@
+#! /bin/sh
+# Copyright (C) 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
+# 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/>.
+
+# Checks on AC_PROG_LEX and AM_PROG_LEX.
+
+. ./defs || Exit 1
+
+set -e
+
+cat > Makefile.am <<'END'
+bin_PROGRAMS = foo
+foo_SOURCES = foo.l
+END
+
+mv configure.in configure.stub
+
+: > ylwrap
+
+# Both AC_PROG_LEX and AM_PROG_LEX must do AC_SUBST'ing and setting
+# of LEX, LEX_OUTPUT_ROOT and LEXLIB. And while they might generate
+# different code in configure, they shouldn't cause differences in
+# the Makefile.in.
+for x in AC AM; do
+ cp configure.stub configure.in
+ echo "${x}_PROG_LEX" >>configure.in
+ $ACLOCAL
+ $AUTOMAKE
+ mv Makefile.in Makefile-$x
+ for var in LEX LEX_OUTPUT_ROOT LEXLIB; do
+ test 1 = `grep -c "^$var *= address@hidden@ *$" Makefile-$x`
+ done
+done
+
+diff Makefile-AC Makefile-AM
+
+:
diff --git a/tests/lex13.test b/tests/lex13.test
new file mode 100755
index 0000000..cbb76c2
--- /dev/null
+++ b/tests/lex13.test
@@ -0,0 +1,70 @@
+#! /bin/sh
+# Copyright (C) 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
+# 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/>.
+
+# Check that AM_PROG_LEX brin in the `missing' script if lex is not
+# found.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in <<'END'
+AM_PROG_LEX
+AC_OUTPUT
+END
+
+cat > Makefile.am <<'END'
+bin_PROGRAMS = foo
+foo_SOURCES = foo.l
+END
+
+# This is a deliberately invalid input for lex.
+cat > foo.l <<'END'
+%%
+"x
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+# AC_PROG_LEX sets $LEX to `:' if it can't found a working lex program.
+# so the `LEX=:' assignment tricks AM_PROG_LEX into thinking that we lack
+# a lex program.
+./configure LEX=:
+
+grep '^LEX *=.*/missing --run flex *$' Makefile
+
+# Since the script `missing' always tries to run the desired program, and
+# since we cannot sanely remove it from $PATH, we override it with scripts
+# simulating "version mismatch", for which `missing' is gonna taking
+# appropriate actions.
+mkdir fakebin
+cat >fakebin/flex <<'END'
+#!/bin/sh
+# Exit code 63 means version mismatch.
+exit 63
+END
+cp fakebin/flex fakebin/lex
+chmod a+x fakebin/flex fakebin/lex
+PATH=`pwd`/fakebin:$PATH; export PATH
+
+# Now let's verify that the script `missing' is truly called.
+$MAKE >out 2>&1 && { cat out; Exit 1; }
+cat out
+grep 'WARNING:.* is probably too old' out
+
+:
diff --git a/tests/lex3.test b/tests/lex3.test
index a27968d..5378b2a 100755
--- a/tests/lex3.test
+++ b/tests/lex3.test
@@ -31,7 +31,7 @@ distdir=$me-1.0
cat >> configure.in << 'END'
AC_PROG_CC
-AM_PROG_LEX
+AC_PROG_LEX
AC_OUTPUT
END
diff --git a/tests/lex5.test b/tests/lex5.test
index ba77854..98813e5 100755
--- a/tests/lex5.test
+++ b/tests/lex5.test
@@ -24,7 +24,7 @@ set -e
cat >> configure.in << 'END'
AC_PROG_CC
AM_PROG_CC_C_O
-AM_PROG_LEX
+AC_PROG_LEX
AC_OUTPUT
END
diff --git a/tests/lexlib.test b/tests/lexlib.test
new file mode 100755
index 0000000..806ab2f
--- /dev/null
+++ b/tests/lexlib.test
@@ -0,0 +1,56 @@
+#! /bin/sh
+# Copyright (C) 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
+# 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/>.
+
+# Tests on @LEXLIB@ and $(LEXLIB).
+
+required='flex gcc'
+. ./defs || Exit 1
+
+set -e
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = foo
+foo_SOURCES = foo.l
+foo_LDADD = @LEXLIB@
+END
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_LEX
+AC_OUTPUT
+END
+
+cat > foo.l << 'END'
+%%
+"END" return EOF;
+.
+%%
+main(){}
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+grep '^LEXLIB *=' Makefile.in
+
+./configure
+$FGREP @LEXLIB@ Makefile && Exit 1
+
+$MAKE
+$MAKE distcheck
+
+:
--
1.6.5
- [PATCH 0/6] Lex, Yacc and explicit declarations of dependencies., Stefano Lattarini, 2010/05/20
- [PATCH 1/6] Extend, fix and improve tests on Yacc/Lex support., Stefano Lattarini, 2010/05/20
- [PATCH 2/6] New tests: Heirloom make and Lex/Yacc rules., Stefano Lattarini, 2010/05/20
- [PATCH 3/6] Add new tests on Lex and Yacc., Stefano Lattarini, 2010/05/20
- [PATCH 4/6] automake.in: improve declaration of dependencies in generated Makefile.in, Stefano Lattarini, 2010/05/20
- Subject: [PATCH 5/6] New tests on Lex and Yacc dependencies declarations., Stefano Lattarini, 2010/05/20
- [PATCH 6/6] More tests on AM_PROG_LEX, AC_PROG_LEX and @address@hidden,
Stefano Lattarini <=