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 d67bd38c93cc8bb8e7d3f3bb94cfb907444d57b2..b88f0cc75c7463b51e9333620f5a94efc0261b84 100644 (file)
@@ -6,4 +6,5 @@ glcpp-parse.h
 *~
 tests/*.expected
 tests/*.gcc
+tests/*.glcpp
 tests/*.out
index bf88d4462e192c21f5913fe01e67708500ab99e5..92c994979a98a5d6782ecfcbf65eb8d62372c5c9 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