Hash :
b1b5ea5c
Author :
Date :
2011-06-01T17:43:44
lex tests: avoid possible hang; fix and extend * tests/lex3.test (foo.l:yywrap): Return 1, not 0, to avoid hangs. Bug introduced in commit 'v1.11-871-geb147a1'. (Makefile.am): Do not add `@LEXLIB@' to `$(LDADD)', as we define our own `yywrap' function. * tests/lex.test (tscan.l): In `yywrap', return 1, not 0, for consistency with the default flex implementation. * tests/lex-libobj.test (yywrap.c): Likewise. * tests/lex-subobj-nodep.test (s1.l): Likewise. * tests/lexvpath.test (foo.c): Likewise. * tests/silent-lex-gcc (foo.l): Likewise. * tests/silent-lex-generic (foo.l): Likewise. * tests/silent-many-gcc (foo5.l): Likewise. * tests/silent-many-generic (foo5.l): Likewise. * tests/lex-lib.test (mu.c): Likewise. Update heading comments, to refer to ... * tests/lex-lib-external.test: ... this new test, which checks that we can get use the `yywrap' function from a system-wide library, if that's available.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
#! /bin/sh
# Copyright (C) 2011 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/>.
# Ensure subdirs for subdir scanners are generated when subdir-objects
# are used, even when dependency tracking is disabled.
required='cc flex'
. ./defs || Exit 1
cat >>configure.in <<\END
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_LEX
AC_OUTPUT
END
cat >Makefile.am <<\END
AUTOMAKE_OPTIONS = subdir-objects
bin_PROGRAMS = p1 p2
p1_SOURCES = sub1/s1.l
p2_SOURCES = sub2/s2.l
p2_CPPFLAGS = -DWHATEVER
END
mkdir sub1 sub2
cat >sub1/s1.l <<\END
%%
"END" return EOF;
.
%%
int main (void)
{
while (yylex () != EOF)
;
return 0;
}
int yywrap(void)
{
return 1;
}
END
cp sub1/s1.l sub2/s2.l
$ACLOCAL
$AUTOCONF
$AUTOMAKE -a
mkdir build
cd build
../configure --disable-dependency-tracking
$MAKE sub1/s1.c
$MAKE sub2/s2.c
rm -rf sub1 sub2
$MAKE
: