]> granicus.if.org Git - flex/commitdiff
Added test for noansi (traditional) options.
authorJohn Millaway <john43@users.sourceforge.net>
Wed, 26 Mar 2003 01:37:33 +0000 (01:37 +0000)
committerJohn Millaway <john43@users.sourceforge.net>
Wed, 26 Mar 2003 01:37:33 +0000 (01:37 +0000)
Reordered the tests so the basic ones are first.

configure.in
tests/Makefile.am
tests/test-noansi-nr/.cvsignore [new file with mode: 0644]
tests/test-noansi-nr/Makefile.am [new file with mode: 0644]
tests/test-noansi-nr/scanner.l [new file with mode: 0644]
tests/test-noansi-nr/test.input [new file with mode: 0644]
tests/test-noansi-r/.cvsignore [new file with mode: 0644]
tests/test-noansi-r/Makefile.am [new file with mode: 0644]
tests/test-noansi-r/scanner.l [new file with mode: 0644]
tests/test-noansi-r/test.input [new file with mode: 0644]

index 2a684b2c6d0546440030e8b46d5e9394c3893f16..366aeca4f127c7704531beff088836fcc8b237ee 100644 (file)
@@ -101,6 +101,8 @@ tests/test-include-by-buffer/Makefile
 tests/test-include-by-reentrant/Makefile
 tests/test-multiple-scanners-nr/Makefile
 tests/test-multiple-scanners-r/Makefile
+tests/test-noansi-nr/Makefile
+tests/test-noansi-r/Makefile
 tests/test-prefix-nr/Makefile
 tests/test-prefix-r/Makefile
 tests/test-pthread/Makefile
index 2fd9449da1422eddd55f08790208a1c19157efe1..daeefcbbb1627cf55f39b58c523d2eab732c6d6f 100644 (file)
@@ -26,9 +26,17 @@ dist_noinst_SCRIPTS = \
        create-test
 
 DIST_SUBDIRS = \
-       test-c++-multiple-scanners \
-       test-reject \
+       test-basic-nr \
+       test-basic-r \
+       test-bison-yylloc \
+       test-bison-yylval \
        test-bison-nr \
+       test-multiple-scanners-nr \
+       test-multiple-scanners-r \
+       test-header-nr \
+       test-header-r \
+       test-reject \
+       test-c++-multiple-scanners \
        test-c++-basic \
        test-posixly-correct \
        test-posix \
@@ -41,30 +49,32 @@ DIST_SUBDIRS = \
        TEMPLATE \
        test-array-nr \
        test-array-r \
-       test-basic-nr \
-       test-basic-r \
-       test-bison-yylloc \
-       test-bison-yylval \
        test-c-cpp-nr \
        test-c-cpp-r \
-       test-header-nr \
-       test-header-r \
        test-include-by-buffer \
        test-include-by-reentrant \
-       test-multiple-scanners-nr \
-       test-multiple-scanners-r \
        test-prefix-nr \
        test-prefix-r \
        test-pthread \
        test-string-nr \
        test-string-r \
        test-yyextra \
+       test-noansi-nr \
+       test-noansi-r \
        test-table-opts
 
 SUBDIRS = \
-       test-c++-multiple-scanners \
-       test-reject \
+       test-basic-nr \
+       test-basic-r \
+       test-bison-yylloc \
+       test-bison-yylval \
        test-bison-nr \
+       test-multiple-scanners-nr \
+       test-multiple-scanners-r \
+       test-header-nr \
+       test-header-r \
+       test-reject \
+       test-c++-multiple-scanners \
        test-c++-basic \
        test-posixly-correct \
        test-posix \
@@ -76,24 +86,18 @@ SUBDIRS = \
        test-lineno-nr \
        test-array-nr \
        test-array-r \
-       test-basic-nr \
-       test-basic-r \
-       test-bison-yylloc \
-       test-bison-yylval \
        test-c-cpp-nr \
        test-c-cpp-r \
-       test-header-nr \
-       test-header-r \
        test-include-by-buffer \
        test-include-by-reentrant \
-       test-multiple-scanners-nr \
-       test-multiple-scanners-r \
        test-prefix-nr \
        test-prefix-r \
        test-pthread \
        test-string-nr \
        test-string-r \
        test-yyextra \
+       test-noansi-nr \
+       test-noansi-r \
        test-table-opts
 
 # clean up before running the test suite so we dont test old builds of test code
diff --git a/tests/test-noansi-nr/.cvsignore b/tests/test-noansi-nr/.cvsignore
new file mode 100644 (file)
index 0000000..1b47d0a
--- /dev/null
@@ -0,0 +1,7 @@
+Makefile
+parser.c
+parser.h
+scanner.c
+test-noansi-nr
+OUTPUT
+Makefile.in
diff --git a/tests/test-noansi-nr/Makefile.am b/tests/test-noansi-nr/Makefile.am
new file mode 100644 (file)
index 0000000..e357503
--- /dev/null
@@ -0,0 +1,48 @@
+# 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.
+
+
+FLEX = $(top_builddir)/flex
+
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.c parser.c parser.h test-noansi-nr OUTPUT $(OBJS)
+OBJS = scanner.o # parser.o
+
+AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
+#LDFLAGS = $(top_srcdir)/libfl.a 
+#YFLAGS = --defines --output=parser.c
+
+testname = test-noansi-nr
+
+scanner.c: $(srcdir)/scanner.l
+       $(FLEX) $<
+
+parser.c: $(srcdir)/parser.y
+       $(BISON) $(YFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+       $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+       ./$(testname)$(EXEEXT) < $(srcdir)/test.input
+
+.c.o:
+       $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-noansi-nr/scanner.l b/tests/test-noansi-nr/scanner.l
new file mode 100644 (file)
index 0000000..4afc8c2
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * 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.
+ */
+
+/* TEST scanner.
+   Basic non-reentrant scanner, but with non-ansi function defs.
+   Compile with:  flex scanner.l
+
+   Sample Input:
+       # this is a comment
+       foo = true
+       bar = "string value"
+       integer = 43
+*/
+%{
+#include "config.h"
+%}
+
+%option prefix="test" outfile="scanner.c" 
+%option nounput noyywrap noyylineno warn nodefault
+%option noansi-prototypes noansi-definitions
+
+IDENT [[:alnum:]_-]
+WS    [[:blank:]]
+%%
+
+^{IDENT}+{WS}*={WS}*(true|false){WS}*\r?\n    { return 100;}
+^{IDENT}+{WS}*={WS}*\"[^\"\n\r]*\"{WS}*\r?\n  { return 101;}
+^{IDENT}+{WS}*={WS}*[[:digit:]]+{WS}*\r?\n    { return 102;}
+^{WS}*#.*\r?\n     { }
+^{WS}*\r?\n        { }
+.|\n  { fprintf(stderr,"Invalid line.\n"); exit(-1);}
+
+%%
+
+int main(void);
+
+int main ()
+{
+    yyin = stdin;
+    yyout = stdout;
+    while( yylex() )
+    {
+    }
+    printf("TEST RETURNING OK.\n");
+    return 0;
+}
+
diff --git a/tests/test-noansi-nr/test.input b/tests/test-noansi-nr/test.input
new file mode 100644 (file)
index 0000000..642e0fb
--- /dev/null
@@ -0,0 +1,5 @@
+# this is a comment
+foo = "bar"
+num = 43
+setting = false
+
diff --git a/tests/test-noansi-r/.cvsignore b/tests/test-noansi-r/.cvsignore
new file mode 100644 (file)
index 0000000..40ede49
--- /dev/null
@@ -0,0 +1,7 @@
+Makefile
+parser.c
+parser.h
+scanner.c
+test-noansi-r
+OUTPUT
+Makefile.in
diff --git a/tests/test-noansi-r/Makefile.am b/tests/test-noansi-r/Makefile.am
new file mode 100644 (file)
index 0000000..c0a33df
--- /dev/null
@@ -0,0 +1,48 @@
+# 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.
+
+
+FLEX = $(top_builddir)/flex
+
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.c parser.c parser.h test-noansi-r OUTPUT $(OBJS)
+OBJS = scanner.o # parser.o
+
+AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
+#LDFLAGS = $(top_srcdir)/libfl.a 
+#YFLAGS = --defines --output=parser.c
+
+testname = test-noansi-r
+
+scanner.c: $(srcdir)/scanner.l
+       $(FLEX) $<
+
+parser.c: $(srcdir)/parser.y
+       $(BISON) $(YFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+       $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+       ./$(testname)$(EXEEXT) < $(srcdir)/test.input
+
+.c.o:
+       $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-noansi-r/scanner.l b/tests/test-noansi-r/scanner.l
new file mode 100644 (file)
index 0000000..e0b3ffb
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * 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 reentrant scanner.
+   This file will not compile under flex version <= 2.5.4.
+   Sample Input:
+       # this is a comment
+       foo = true
+       bar = "string value"
+       integer = 43
+*/
+%{
+#include "config.h"
+%}
+
+%option prefix="test" outfile="scanner.c" 
+%option nounput noyywrap noyylineno warn nodefault
+%option reentrant
+%option noansi-definitions noansi-prototypes
+
+IDENT [[:alnum:]_-]
+WS    [[:blank:]]
+%%
+
+^{IDENT}+{WS}*={WS}*(true|false){WS}*\r?\n    { return 100;}
+^{IDENT}+{WS}*={WS}*\"[^\"\n\r]*\"{WS}*\r?\n  { return 101;}
+^{IDENT}+{WS}*={WS}*[[:digit:]]+{WS}*\r?\n    { return 102;}
+^{WS}*#.*\r?\n     { }
+^{WS}*\r?\n        { }
+.|\n  { fprintf(stderr,"Invalid line.\n"); exit(-1);}
+
+%%
+
+int main(void);
+
+int main ()
+{
+    yyscan_t  lexer;
+    yylex_init( &lexer );
+    yyset_out ( stdout,lexer);
+    yyset_in  ( stdin, lexer);
+    while( yylex(lexer) )
+    {
+    }
+    yylex_destroy( lexer );
+    printf("TEST RETURNING OK.\n");
+    return 0;
+}
+
diff --git a/tests/test-noansi-r/test.input b/tests/test-noansi-r/test.input
new file mode 100644 (file)
index 0000000..2160628
--- /dev/null
@@ -0,0 +1,4 @@
+# this is a comment
+foo = "bar"
+num = 43
+setting = false