fixup: list of yacc/lex tests was botched
[platform/upstream/automake.git] / tests / lex3.test
1 #! /bin/sh
2 # Copyright (C) 1999, 2001, 2002, 2003, 2004, 2010, 2011 Free Software
3 # Foundation, Inc.
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2, or (at your option)
8 # any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18 # Basic semantic checks on Lex support.
19 # Test associated with PR 19.
20 # From Matthew D. Langston.
21
22 required=lex
23 . ./defs || Exit 1
24
25 set -e
26
27 cat >> configure.in << 'END'
28 AC_PROG_CC
29 AM_PROG_LEX
30 AC_OUTPUT
31 END
32
33 cat > Makefile.am << 'END'
34 LDADD             = @LEXLIB@
35 noinst_PROGRAMS   = foo
36 foo_SOURCES       = foo.l
37 END
38
39 cat > foo.l << 'END'
40 %%
41 "GOOD"   return EOF;
42 .
43 %%
44 int
45 main ()
46 {
47   /* We don't use a 'while' loop here (like a real lexer would do)
48      to avoid possible hangs. */
49   if (yylex () == EOF)
50     return 0;
51   else
52     return 1;
53 }
54
55 /* Avoid possible link errors. */
56 int yywrap (void)
57 {
58   return 1;
59 }
60 END
61
62 $ACLOCAL
63 $AUTOCONF
64 $AUTOMAKE -a
65
66 ./configure
67
68 # Program should build and run.
69 $MAKE
70 echo GOOD | ./foo
71 echo BAD | ./foo && Exit 1
72
73 # The generated file `foo.c' must be shipped.
74 $MAKE distdir
75 test -f $distdir/foo.c
76
77 # Sanity check on distribution.
78 yl_distcheck
79
80 # While we are at it, make sure that foo.c is erased by
81 # maintainer-clean, and not by distclean.
82 test -f foo.c
83 $MAKE distclean
84 test -f foo.c
85 ./configure # we must re-create `Makefile'
86 $MAKE maintainer-clean
87 test ! -f foo.c
88
89 :