Remove blank lines from output files before comparing.
authorCarl Worth <cworth@cworth.org>
Thu, 27 May 2010 21:53:51 +0000 (14:53 -0700)
committerCarl Worth <cworth@cworth.org>
Thu, 27 May 2010 21:53:51 +0000 (14:53 -0700)
Recently I'm seeing cases where "gcc -E" mysteriously omits blank
lines, (even though it prints the blank lines in other very similar
cases). Rather than trying to decipher and imitate this, just get rid
of the blank lines.

This approach with sed to kill the lines before the diff is better
than "diff -B" since when there is an actual difference, the presence
of blank lines won't make the diff harder to read.

.gitignore
tests/glcpp-test

index d67bd38..b88f0cc 100644 (file)
@@ -6,4 +6,5 @@ glcpp-parse.h
 *~
 tests/*.expected
 tests/*.gcc
+tests/*.glcpp
 tests/*.out
index bf88d44..92c9949 100755 (executable)
@@ -3,8 +3,9 @@ set -e
 
 for test in *.c; do
     echo "Testing $test"
-    ../glcpp < $test > $test.out
+    ../glcpp < $test > $test.glcpp
+    grep -v '^$' < $test.glcpp > $test.out || true
     gcc -E $test -o $test.gcc
-    grep -v '^#' < $test.gcc > $test.expected
-    diff -B -u $test.expected $test.out
+    grep -v '^#' < $test.gcc | grep -v '^$' > $test.expected || true
+    diff -u $test.expected $test.out
 done