summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJohn Millaway <john43@users.sourceforge.net>2002-08-10 16:39:10 +0000
committerJohn Millaway <john43@users.sourceforge.net>2002-08-10 16:39:10 +0000
commit5af83504c73a631bf76b9b9661cd872e38155f91 (patch)
tree48e02ba2438e25344a9d892adcc87bd80f171346 /tests
parent6260bde22e43d352f949103eb9b54a8191e73e1a (diff)
Added a test for various DFA table options.
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/descriptions1
-rw-r--r--tests/test-c-cpp-nr/Makefile.am2
-rw-r--r--tests/test-table-opts/.cvsignore9
-rw-r--r--tests/test-table-opts/Makefile.am62
-rw-r--r--tests/test-table-opts/scanner.l43
-rw-r--r--tests/test-table-opts/test.input2
7 files changed, 119 insertions, 1 deletions
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 <stdio.h>
+#include <stdlib.h>
+#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