From 5af83504c73a631bf76b9b9661cd872e38155f91 Mon Sep 17 00:00:00 2001 From: John Millaway Date: Sat, 10 Aug 2002 16:39:10 +0000 Subject: Added a test for various DFA table options. --- tests/Makefile.am | 1 + tests/descriptions | 1 + tests/test-c-cpp-nr/Makefile.am | 2 +- tests/test-table-opts/.cvsignore | 9 ++++++ tests/test-table-opts/Makefile.am | 62 +++++++++++++++++++++++++++++++++++++++ tests/test-table-opts/scanner.l | 43 +++++++++++++++++++++++++++ tests/test-table-opts/test.input | 2 ++ 7 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 tests/test-table-opts/.cvsignore create mode 100644 tests/test-table-opts/Makefile.am create mode 100644 tests/test-table-opts/scanner.l create mode 100644 tests/test-table-opts/test.input (limited to 'tests') diff --git a/tests/Makefile.am b/tests/Makefile.am index 8a01810..109bd5c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -26,6 +26,7 @@ noinst_SCRIPTS = \ create-test SUBDIRS = \ + test-table-opts \ test-posixly-correct \ test-posix \ test-mem-r \ diff --git a/tests/descriptions b/tests/descriptions index 5dd3bdb..0066025 100644 --- a/tests/descriptions +++ b/tests/descriptions @@ -28,4 +28,5 @@ prefix-r - Verify prefixes are working, reentrant. pthread - Pthreads test. A NO-OP if libpthread not found. string-nr - Scan strings, non-reentrant. string-r - Scan strings, reentrant. +table-opts - Try every table compression option. yyextra - Test yyextra. diff --git a/tests/test-c-cpp-nr/Makefile.am b/tests/test-c-cpp-nr/Makefile.am index 32715f8..9550ef7 100644 --- a/tests/test-c-cpp-nr/Makefile.am +++ b/tests/test-c-cpp-nr/Makefile.am @@ -23,7 +23,7 @@ BISON = @BISON@ FLEX = $(top_builddir)/flex EXTRA_DIST = scanner.l test.input -CLEANFILES = scanner.c parser.c parser.h test-cpp-nr$(OBJS) OUTPUT +CLEANFILES = scanner.c parser.c parser.h test-cpp-nr $(OBJS) OUTPUT OBJS = scanner.o INCLUDES = -I $(srcdir) -I $(top_srcdir) -I $(top_builddir) -I . diff --git a/tests/test-table-opts/.cvsignore b/tests/test-table-opts/.cvsignore new file mode 100644 index 0000000..7a74a19 --- /dev/null +++ b/tests/test-table-opts/.cvsignore @@ -0,0 +1,9 @@ +Makefile +Makefile.in +parser.c +parser.h +scanner.c +TEMPLATE +OUTPUT +.deps +test-table-opts diff --git a/tests/test-table-opts/Makefile.am b/tests/test-table-opts/Makefile.am new file mode 100644 index 0000000..6441c66 --- /dev/null +++ b/tests/test-table-opts/Makefile.am @@ -0,0 +1,62 @@ +# This file is part of flex. + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: + +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. + +# Neither the name of the University nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. + +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE. + +# ------------------------------------------------ +# This test is really a set of tests, one for +# each compression flag. -Ca, -Cem, etc.. +# ------------------------------------------------ + +BISON = @BISON@ +FLEX = $(top_builddir)/flex + +testname := test-table-opts +allopts := -Ca -Ce -Cf -CF -Cm -Cem +alltests := $(foreach opt,$(allopts),test-opt-r$(opt) test-opt-nr$(opt)) +alltestexe := $(addsuffix $(EXEEXT),$(alltests)) +alltestsrc := $(addsuffix .c,$(alltests)) +alltestobj := $(addsuffix .o,$(alltests)) + +EXTRA_DIST = scanner.l test.input +CLEANFILES = scanner.c OUTPUT $(alltestobj) $(alltestsrc) $(alltestexe) +INCLUDES = -I $(srcdir) -I $(top_srcdir) -I $(top_builddir) -I . + + +test-table-opts: $(alltests) + +test-opt-r%.c: $(srcdir)/scanner.l + $(FLEX) --reentrant $* -o $@ $< + +test-opt-nr%.c: $(srcdir)/scanner.l + $(FLEX) $* -o $@ $< + +test-opt%$(EXEEXT): test-opt%.o + $(CC) -o $@ $< $(LDFLAGS) + +test: $(alltestexe) + for t in $(alltestexe) ; do \ + ./$$t < $(srcdir)/test.input ; \ + done + +.c.o: + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $(INCLUDES) $< + +.PHONY: test-table-opts +.SECONDARY: $(alltestobj) $(alltestsrc) diff --git a/tests/test-table-opts/scanner.l b/tests/test-table-opts/scanner.l new file mode 100644 index 0000000..7eaf4c3 --- /dev/null +++ b/tests/test-table-opts/scanner.l @@ -0,0 +1,43 @@ +/* + * This file is part of flex. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + +%{ +/* A template scanner file to build "scanner.c". */ +#include +#include +#include "config.h" + +%} + +%option 8bit prefix="vvv" +%option nounput main noyywrap +%option warn + + +%% +foo|bar ; +[[:digit:]]+ ; +[[:blank:]]+ ; +.|\n ; +%% + diff --git a/tests/test-table-opts/test.input b/tests/test-table-opts/test.input new file mode 100644 index 0000000..aec9276 --- /dev/null +++ b/tests/test-table-opts/test.input @@ -0,0 +1,2 @@ +0000 foo 1111 foo 0000 bar foobar +0000 foo 1111 foo 0000 bar foobar -- cgit v1.2.3