This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[pph] Expect checksums for tests marked with pph asm xdiff (issue4744043)


This patch adds an expected checksum for the tests expecting an asm diff.

This way if we were expecting an asm diff, still get one, but a different one, we know (before this patch we would ignore this, generating an XFAIL as usual, as the status of "having an asm diff" itself hadn't changed).

I had to change from using the TCL grep to the bash grep (through an exec call) as I now need the actual output of the grep call, not only the return value (it also turns out the return value for TCL grep and bash grep are different; hence the change in the if statements on the adiff variable)

Gab

2011-07-15  Gabriel Charette  <gchare@google.com>

	* g++.dg/pph/c1builtin-integral.cc: Add expected diff checksum.
	* g++.dg/pph/c1eabi1.cc: Add expected diff checksum.
	* g++.dg/pph/p4eabi1.cc: Add expected diff checksum.
	* lib/dg-pph.exp (dg-pph-pos): Expect checksums for pph asm xdiff.

diff --git a/gcc/testsuite/g++.dg/pph/c1builtin-integral.cc b/gcc/testsuite/g++.dg/pph/c1builtin-integral.cc
index c2fceec..6887b11 100644
--- a/gcc/testsuite/g++.dg/pph/c1builtin-integral.cc
+++ b/gcc/testsuite/g++.dg/pph/c1builtin-integral.cc
@@ -1,2 +1,2 @@
-// pph asm xdiff
+// pph asm xdiff 52758
 #include "c0builtin-integral.h"
diff --git a/gcc/testsuite/g++.dg/pph/c1eabi1.cc b/gcc/testsuite/g++.dg/pph/c1eabi1.cc
index b127f98..3321870 100644
--- a/gcc/testsuite/g++.dg/pph/c1eabi1.cc
+++ b/gcc/testsuite/g++.dg/pph/c1eabi1.cc
@@ -1,5 +1,5 @@
 // { dg-options "-w -fpermissive" }
-// pph asm xdiff
+// pph asm xdiff 36206
 
 #include "c0eabi1.h"
 
diff --git a/gcc/testsuite/g++.dg/pph/p4eabi1.cc b/gcc/testsuite/g++.dg/pph/p4eabi1.cc
index 4247f49..2f0715f 100644
--- a/gcc/testsuite/g++.dg/pph/p4eabi1.cc
+++ b/gcc/testsuite/g++.dg/pph/p4eabi1.cc
@@ -1,5 +1,5 @@
 // { dg-options "-w -fpermissive" }
-// pph asm xdiff
+// pph asm xdiff 15662
 
 #include "p4eabi1.h"
 
diff --git a/gcc/testsuite/lib/dg-pph.exp b/gcc/testsuite/lib/dg-pph.exp
index b706f27..1d7deed 100644
--- a/gcc/testsuite/lib/dg-pph.exp
+++ b/gcc/testsuite/lib/dg-pph.exp
@@ -128,12 +128,11 @@ proc dg-pph-pos { subdir test options mapflag suffix } {
     verbose -log ""
 
     # Compare the two assembly files.  They should be identical.
-    set adiff [diff "$bname.s-pph" "$bname.s+pph"]
+    set adiff [catch {exec diff "$bname.s-pph" "$bname.s+pph"} diff_result]
     # The sources mark when they expect the comparison to differ.
-    set xdiff [llength [grep $test "pph asm xdiff"]]
+    set xdiff_entry [grep $test "pph asm xdiff( )*\[0-9\]*"]
+    set xdiff [llength $xdiff_entry]
     if { $adiff == 0 } {
-	fail "$nshort $options comparison failure"
-    } elseif { $adiff == 1 } {
 	if { $xdiff } {
 	    xpass "$nshort $options (assembly comparison)"
 	} else {
@@ -141,11 +140,20 @@ proc dg-pph-pos { subdir test options mapflag suffix } {
 	}
 	file_on_host delete "$bname.s-pph"
 	file_on_host delete "$bname.s+pph"
-    } else {
+    } elseif { $adiff == 1 } {
+        verbose -log "Diff obtained:\n$diff_result"
 	if { $xdiff } {
-	    xfail "$nshort $options (assembly comparison)"
+	    set expectedSum [exec tr -d \} << [exec cut -f 4 -d\  << $xdiff_entry]]
+	    set actualSum [exec cut -f 1 -d\  << [exec sum << $diff_result]]
+	    if { $expectedSum == $actualSum } {
+	        xfail "$nshort $options (assembly comparison)"
+	    } else {
+	        fail "$nshort $options (assembly comparison, sums differ: expected $expectedSum, actual $actualSum)"
+	    }
 	} else {
 	    fail "$nshort $options (assembly comparison)"
 	}
+    } else {
+	fail "$nshort $options comparison failure"
     }
 }

--
This patch is available for review at http://codereview.appspot.com/4744043


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]