From db8e0d36da6eadb75aa1fbb562ffc9dd2e96a0f5 Mon Sep 17 00:00:00 2001 From: Will Estes Date: Mon, 16 Jun 2014 17:23:26 -0400 Subject: refactor quotes test for new test suite layout --- tests/.gitignore | 2 + tests/Makefile.am | 5 ++- tests/quotes.l | 101 ++++++++++++++++++++++++++++++++++++++++++ tests/quotes.txt | 2 + tests/test-quotes/.gitignore | 11 ----- tests/test-quotes/Makefile.am | 47 -------------------- tests/test-quotes/scanner.l | 101 ------------------------------------------ tests/test-quotes/test.input | 2 - 8 files changed, 109 insertions(+), 162 deletions(-) create mode 100644 tests/quotes.l create mode 100644 tests/quotes.txt delete mode 100644 tests/test-quotes/.gitignore delete mode 100644 tests/test-quotes/Makefile.am delete mode 100644 tests/test-quotes/scanner.l delete mode 100644 tests/test-quotes/test.input (limited to 'tests') diff --git a/tests/.gitignore b/tests/.gitignore index c5f2f20..788e118 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -69,6 +69,8 @@ reject_ver.table reject_ver.table.c reject_ser.table reject_ser.table.c +quotes +quotes.c string_nr string_nr.c string_r diff --git a/tests/Makefile.am b/tests/Makefile.am index 9f65c4e..5f608c5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -71,6 +71,7 @@ simple_tests = \ posixly_correct \ prefix_nr \ prefix_r \ + quotes \ string_nr \ string_r \ top \ @@ -112,6 +113,7 @@ posix_SOURCES = posix.l posixly_correct_SOURCES = posixly_correct.l prefix_nr_SOURCES = prefix_nr.l prefix_r_SOURCES = prefix_r.l +quotes_SOURCES = quotes.l reject_nr_reject_SOURCES = reject.l4 reject_r_reject_SOURCES = reject.l4 reject_ver_table_SOURCES = reject.l4 @@ -185,6 +187,7 @@ basic_nr.txt \ reject_r.reject.c \ reject_ver.table.c \ reject_ser.table.c \ + quotes.txt \ top.h \ top.txt \ yyextra.txt @@ -199,7 +202,7 @@ FLEX = $(top_builddir)/src/flex .ll.cc: $(FLEX) -+ -o $@ $< -bison_nr_main($objext): bison_nr_parser.h bison_nr_scanner.h +bison_nr_main.($OBJEXT): bison_nr_parser.h bison_nr_scanner.h bison_nr_scanner.h: bison_nr_scanner.c bison_yylloc_main$(objext): bison_yylloc_parser.h bison_yylloc_scanner.h diff --git a/tests/quotes.l b/tests/quotes.l new file mode 100644 index 0000000..30fe147 --- /dev/null +++ b/tests/quotes.l @@ -0,0 +1,101 @@ +/* + * 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. + */ + +/* The point of this test is to be sure our M4 madness does not + * interfere with user code. I particular, we are looking + * for instances of M4 quotes, [[ and ]], in here to make it through the flex + * machinery unscathed. + */ + +/* sect 1 [ 1 ] TEST_XXX */ +/* sect 1 [[ 2 ]] TEST_XXX */ +/* sect 1 [[[ 3 ]]] TEST_XXX */ +/* sect 1 [[[[ 4 ]]]] TEST_XXX */ +/* sect 1 ]] unmatched [[ TEST_XXX */ + +%{ +/* A template scanner file to build "scanner.c". */ +#include +#include +#include "config.h" +/*#include "parser.h" */ + +/* sect 1 block [ 1 ] TEST_XXX */ +/* sect 1 block [[ 2 ]] TEST_XXX */ +/* sect 1 block [[[ 3 ]]] TEST_XXX */ +/* sect 1 block [[[[ 4 ]]]] TEST_XXX */ +/* sect 1 block ]] unmatched [[ TEST_XXX */ + +static int a[1] = {0}; +static int b[1] = {0}; +static int c[1] = {0}; + +static int foo (int i){ + return a[b[c[i]]]; /* sect 1 code TEST_XXX */ +} +%} + +%option 8bit prefix="test" +%option nounput nomain noyywrap +%option warn + + +%% + +a /* action comment [ 1 ] */ ; +b /* action comment [[ 2 ]] */ ; +c /* action comment [[[ 3 ]]] */ ; +d /* action comment [[[[ 4 ]]]] */ ; +e /* action comment ]] unmatched [[ */ ; +f return 1+foo(a[b[c[0]]]); +.|\n { + /* action block [ 1 ] TEST_XXX */ + /* action block [[ 2 ]] TEST_XXX */ + /* action block [[[ 3 ]]] TEST_XXX */ + /* action block [[[[ 4 ]]]] TEST_XXX */ + /* action block ]] unmatched [[ TEST_XXX */ + return 1+foo(a[b[c[0]]]); // TEST_XXX + } +%% + +/* sect 3 [ 1 ] TEST_XXX */ +/* sect 3 [[ 2 ]] TEST_XXX */ +/* sect 3 [[[ 3 ]]] TEST_XXX */ +/* sect 3 [[[[ 4 ]]]] TEST_XXX */ +/* sect 3 ]] unmatched [[ TEST_XXX */ +static int bar (int i){ + return c[b[a[i]]]; /* sect 3 code TEST_XXX */ +} +int main(void); + +int +main () +{ + yyin = stdin; + yyout = stdout; + while (yylex()) + ; + printf("TEST RETURNING OK.\n"); + return bar(0); +} + diff --git a/tests/quotes.txt b/tests/quotes.txt new file mode 100644 index 0000000..7288a40 --- /dev/null +++ b/tests/quotes.txt @@ -0,0 +1,2 @@ +0000 foo 1111 foo 0000 bar +0000 foo 1111 foo 0000 bar diff --git a/tests/test-quotes/.gitignore b/tests/test-quotes/.gitignore deleted file mode 100644 index f235582..0000000 --- a/tests/test-quotes/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -Makefile -Makefile.in -parser.c -parser.h -scanner.c -TEMPLATE -OUTPUT -.deps -test-quotes -l.out -c.out diff --git a/tests/test-quotes/Makefile.am b/tests/test-quotes/Makefile.am deleted file mode 100644 index 70676ef..0000000 --- a/tests/test-quotes/Makefile.am +++ /dev/null @@ -1,47 +0,0 @@ -# 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 - -builddir = @builddir@ - -EXTRA_DIST = scanner.l test.input -CLEANFILES = l.out c.out scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS) -OBJS = scanner.o - -AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir) - -testname = test-quotes - -scanner.c: $(srcdir)/scanner.l - $(FLEX) $(LFLAGS) $< - -$(testname)$(EXEEXT): $(OBJS) - $(CC) $(CFLAGS) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES) - -test: $(testname)$(EXEEXT) - grep TEST_XXX < $(srcdir)/scanner.l | sed 's/^ *//' > l.out - grep TEST_XXX < scanner.c | sed 's/^ *//' > c.out - cmp -s l.out c.out - ./$(testname)$(EXEEXT) < $(srcdir)/test.input - -.c.o: - $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $< diff --git a/tests/test-quotes/scanner.l b/tests/test-quotes/scanner.l deleted file mode 100644 index 0c7c482..0000000 --- a/tests/test-quotes/scanner.l +++ /dev/null @@ -1,101 +0,0 @@ -/* - * 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. - */ - -/* The point of this test is to be sure our M4 madness does not - * interfere with user code. I particular, we are looking - * for instances of M4 quotes, [[ and ]], in here to make it through the flex - * machinery unscathed. - */ - -/* sect 1 [ 1 ] TEST_XXX */ -/* sect 1 [[ 2 ]] TEST_XXX */ -/* sect 1 [[[ 3 ]]] TEST_XXX */ -/* sect 1 [[[[ 4 ]]]] TEST_XXX */ -/* sect 1 ]] unmatched [[ TEST_XXX */ - -%{ -/* A template scanner file to build "scanner.c". */ -#include -#include -#include "config.h" -/*#include "parser.h" */ - -/* sect 1 block [ 1 ] TEST_XXX */ -/* sect 1 block [[ 2 ]] TEST_XXX */ -/* sect 1 block [[[ 3 ]]] TEST_XXX */ -/* sect 1 block [[[[ 4 ]]]] TEST_XXX */ -/* sect 1 block ]] unmatched [[ TEST_XXX */ - -static int a[1] = {0}; -static int b[1] = {0}; -static int c[1] = {0}; - -static int foo (int i){ - return a[b[c[i]]]; /* sect 1 code TEST_XXX */ -} -%} - -%option 8bit outfile="scanner.c" prefix="test" -%option nounput nomain noyywrap -%option warn - - -%% - -a /* action comment [ 1 ] */ ; -b /* action comment [[ 2 ]] */ ; -c /* action comment [[[ 3 ]]] */ ; -d /* action comment [[[[ 4 ]]]] */ ; -e /* action comment ]] unmatched [[ */ ; -f return 1+foo(a[b[c[0]]]); -.|\n { - /* action block [ 1 ] TEST_XXX */ - /* action block [[ 2 ]] TEST_XXX */ - /* action block [[[ 3 ]]] TEST_XXX */ - /* action block [[[[ 4 ]]]] TEST_XXX */ - /* action block ]] unmatched [[ TEST_XXX */ - return 1+foo(a[b[c[0]]]); // TEST_XXX - } -%% - -/* sect 3 [ 1 ] TEST_XXX */ -/* sect 3 [[ 2 ]] TEST_XXX */ -/* sect 3 [[[ 3 ]]] TEST_XXX */ -/* sect 3 [[[[ 4 ]]]] TEST_XXX */ -/* sect 3 ]] unmatched [[ TEST_XXX */ -static int bar (int i){ - return c[b[a[i]]]; /* sect 3 code TEST_XXX */ -} -int main(void); - -int -main () -{ - yyin = stdin; - yyout = stdout; - while (yylex()) - ; - printf("TEST RETURNING OK.\n"); - return bar(0); -} - diff --git a/tests/test-quotes/test.input b/tests/test-quotes/test.input deleted file mode 100644 index 7288a40..0000000 --- a/tests/test-quotes/test.input +++ /dev/null @@ -1,2 +0,0 @@ -0000 foo 1111 foo 0000 bar -0000 foo 1111 foo 0000 bar -- cgit v1.2.3