bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

tests: fix valgrind uses


From: Akim Demaille
Subject: tests: fix valgrind uses
Date: Mon, 12 Nov 2012 09:59:27 +0100

These patches were applied (in order) in branch-2.6, maint, and master, 
together with the appropriate merges.

From 2bb8f621eb61ef282fadd39232a96589ba1979ad Mon Sep 17 00:00:00 2001
From: Akim Demaille <address@hidden>
Date: Sat, 10 Nov 2012 09:26:40 +0100
Subject: [PATCH] tests: use valgrind where appropriate
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Reported by Théophile Ranquet.

* tests/glr-regression.at: Rewrite some test cases so that AT_PARSER_CHECK,
which runs valgrind, is exposed with the parser, not with "echo".
* tests/local.at, tests/regression.at, tests/headers.at:
Use AT_PARSER_CHECK for generated parsers.
---
 THANKS                  |  1 +
 tests/glr-regression.at | 47 ++++++++++++++++++++++++++++-------------------
 tests/headers.at        |  2 +-
 tests/local.at          |  2 +-
 tests/regression.at     |  2 +-
 5 files changed, 32 insertions(+), 22 deletions(-)

diff --git a/THANKS b/THANKS
index 4e88e8f..e815f8e 100644
--- a/THANKS
+++ b/THANKS
@@ -106,6 +106,7 @@ Shura                     address@hidden
 Stefano Lattarini         address@hidden
 Steve Murphy              address@hidden
 Sum Wu                    address@hidden
+Théophile Ranquet         address@hidden
 Thiru Ramakrishnan        address@hidden
 Tim Josling               address@hidden
 Tim Landscheidt           address@hidden
diff --git a/tests/glr-regression.at b/tests/glr-regression.at
index 8570b19..aab0369 100644
--- a/tests/glr-regression.at
+++ b/tests/glr-regression.at
@@ -67,9 +67,13 @@ static YYSTYPE exprMerge (YYSTYPE x0, YYSTYPE x1)
   return 0;
 }
 
+const char *input = NULL;
+
 int
-main (void)
+main (int argc, const char* argv[])
 {
+  assert (argc == 2);
+  input = argv[1];
   return yyparse ();
 }
 
@@ -78,16 +82,7 @@ main (void)
 int
 yylex (void)
 {
-  for (;;)
-    {
-      int ch;
-      assert (!feof (stdin));
-      ch = getchar ();
-      if (ch == EOF)
-       return 0;
-      else if (ch == 'B' || ch == 'P')
-       return ch;
-    }
+  return *input++;
 }
 ]])
 AT_BISON_OPTION_POPDEFS
@@ -96,7 +91,7 @@ AT_BISON_CHECK([[-o glr-regr1.c glr-regr1.y]], 0, [],
 [glr-regr1.y: conflicts: 1 shift/reduce
 ])
 AT_COMPILE([glr-regr1])
-AT_PARSER_CHECK([[echo BPBPB | ./glr-regr1]], 0,
+AT_PARSER_CHECK([[./glr-regr1 BPBPB]], 0,
 [[E -> 'B'
 E -> 'B'
 E -> E 'P' E
@@ -212,16 +207,27 @@ AT_BISON_CHECK([[-o glr-regr2a.c glr-regr2a.y]], 0, [],
 ])
 AT_COMPILE([glr-regr2a])
 
-AT_PARSER_CHECK([[echo s VARIABLE_1 t v x q | ./glr-regr2a]], 0,
+AT_DATA([input1.txt],
+[[s VARIABLE_1 t v x q
+]])
+AT_PARSER_CHECK([[./glr-regr2a input1.txt]], 0,
 [[Variable: 'VARIABLE_1'
-]], [])
-AT_PARSER_CHECK([[echo s VARIABLE_1 , ANOTHER_VARIABLE_2 t e | ./glr-regr2a]],
+]])
+
+AT_DATA([input2.txt],
+[[s VARIABLE_1 , ANOTHER_VARIABLE_2 t e
+]])
+AT_PARSER_CHECK([[./glr-regr2a input2.txt]],
 0,
 [[Varlist: 'VARIABLE_1,ANOTHER_VARIABLE_2'
 ]])
-AT_PARSER_CHECK([[echo s VARIABLE_3 t v x | ./glr-regr2a]], 0,
+
+AT_DATA([input3.txt],
+[[s VARIABLE_3 t v x
+]])
+AT_PARSER_CHECK([[./glr-regr2a input3.txt]], 0,
 [[Variable: 'VARIABLE_3'
-]], [])
+]])
 
 
 AT_CLEANUP
@@ -329,10 +335,13 @@ AT_BISON_CHECK([[-o glr-regr3.c glr-regr3.y]], 0, [],
 ])
 AT_COMPILE([glr-regr3])
 
-AT_PARSER_CHECK([[echo p1 t4 o2 p1 p1 t1 o1 t2 p2 o1 t3 p2 p2 | ./glr-regr3]],
+AT_DATA([input.txt],
+[[p1 t4 o2 p1 p1 t1 o1 t2 p2 o1 t3 p2 p2
+]])
+AT_PARSER_CHECK([[./glr-regr3 input.txt]],
 0,
 [[Result: 1c04
-]], [])
+]])
 
 AT_CLEANUP
 
diff --git a/tests/headers.at b/tests/headers.at
index 7df4cc9..b53ee8a 100644
--- a/tests/headers.at
+++ b/tests/headers.at
@@ -272,7 +272,7 @@ done
 AT_SKIP_IF_CANNOT_LINK_C_AND_CXX
 
 AT_COMPILE_CXX([parser], [[x[1-8].o -DCC_IS_CXX=$CC_IS_CXX main.cc]])
-AT_CHECK([./parser], [0], [[expout]])
+AT_PARSER_CHECK([./parser], [0], [[expout]])
 
 m4_popdef([AT_TEST])
 
diff --git a/tests/local.at b/tests/local.at
index e803e57..a5dde80 100644
--- a/tests/local.at
+++ b/tests/local.at
@@ -716,7 +716,7 @@ AT_COMPILE([c-only.o], [c-only.c])
 AT_COMPILE_CXX([cxx-only.o], [cxx-only.cc])
 AT_CHECK([$CXX $CXXFLAGS $CPPFLAGS $LDFLAGS c-only.o cxx-only.o -o c-and-cxx ||
           exit 77], [ignore], [ignore])
-AT_CHECK([./c-and-cxx])
+AT_PARSER_CHECK([./c-and-cxx])
 ])
 
 
diff --git a/tests/regression.at b/tests/regression.at
index 6cf2268..03c4b80 100644
--- a/tests/regression.at
+++ b/tests/regression.at
@@ -1593,7 +1593,7 @@ main (void)
 ]])
 
 AT_FULL_COMPILE([input])
-AT_CHECK([./input], 0, [[x: 1, y: 2
+AT_PARSER_CHECK([./input], 0, [[x: 1, y: 2
 ]])
 AT_BISON_OPTION_POPDEFS
 
-- 
1.8.0





commit 2c08dc504c9f4ed12414a130bcebff8f0d3f43df
Author: Akim Demaille <address@hidden>
Date:   Mon Nov 12 09:49:49 2012 +0100

    tests: fix syntax-check errors
    
    Reported by Théophile Ranquet.
    
    * tests/c++.at: Use AT_PARSER_CHECK.
    Avoid using "strcmp", which triggers an error from syntax-check.

diff --git a/tests/c++.at b/tests/c++.at
index 0d50281..f5e5f46 100644
--- a/tests/c++.at
+++ b/tests/c++.at
@@ -177,8 +177,8 @@ main ()
 
 AT_BISON_CHECK([-o list.cc list.yy])
 AT_COMPILE_CXX([list])
-AT_CHECK([./list], 0,
-         [(0, 1, 2, 4)
+AT_PARSER_CHECK([./list], 0,
+[(0, 1, 2, 4)
 ])
 
 AT_BISON_OPTION_POPDEFS
@@ -687,7 +687,7 @@ main (int argc, const char *argv[])
       input = argv[1];
       break;
     case 3:
-      assert (!strcmp (argv[1], "--debug"));
+      assert (std::string(argv[1]) == "--debug");
       debug = 1;
       input = argv[2];
       break;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]