The recent implementation of comparing expected diff checksum had a problem: 
different configs generate different assembly (and although the diff itself was 
still the same in both case, the actual differences were on different lines; 
thus the checksum of the diff was different).

Added logic to only diff on the actual differences.

Couldn't find a good TCL solution... had to revert to using 'exec grep', if 
anyone has a good solution, I'm willing to change it...

I also made a small modification to break down a line that was accidently 
longer than 80 columns in a previous checkin.

Tested with pph regression testing.

Gab

diff --git a/gcc/testsuite/ChangeLog.pph b/gcc/testsuite/ChangeLog.pph
index 7ffeaf2..c90ab86 100644
--- a/gcc/testsuite/ChangeLog.pph
+++ b/gcc/testsuite/ChangeLog.pph
@@ -1,3 +1,10 @@
+2011-07-22  Gabriel Charette  <gch...@google.com>
+
+       * g++.dg/pph/c1eabi1.cc: Change expected diff checksum.
+       * g++.dg/pph/p4eabi1.cc: Change expected diff checksum.
+       * lib/dg-pph.exp (dg-pph-pos): Ignore line numbers in diff checksum.
+       Split long output message, using sumMessage, to respect 80 cols limit.
+
 2011-07-18  Gabriel Charette  <gch...@google.com>
 
        * lib/dg-pph.exp (dg-pph-pos): Output actualSum on unexpected diff.
diff --git a/gcc/testsuite/g++.dg/pph/c1eabi1.cc 
b/gcc/testsuite/g++.dg/pph/c1eabi1.cc
index 3321870..d26900f 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 36206
+// pph asm xdiff 60950
 
 #include "c0eabi1.h"
 
diff --git a/gcc/testsuite/g++.dg/pph/p4eabi1.cc 
b/gcc/testsuite/g++.dg/pph/p4eabi1.cc
index 2f0715f..9b4739e 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 15662
+// pph asm xdiff 06317
 
 #include "p4eabi1.h"
 
diff --git a/gcc/testsuite/lib/dg-pph.exp b/gcc/testsuite/lib/dg-pph.exp
index 013ccfe..677fcd7 100644
--- a/gcc/testsuite/lib/dg-pph.exp
+++ b/gcc/testsuite/lib/dg-pph.exp
@@ -142,13 +142,18 @@ proc dg-pph-pos { subdir test options mapflag suffix } {
        file_on_host delete "$bname.s+pph"
     } elseif { $adiff == 1 } {
         verbose -log "Diff obtained:\n$diff_result"
-       set actualSum [lindex [split [exec sum << $diff_result] " "] 0]
+
+       #only checksum on the actual differences, ignore line numbers
+       set checksumed_diff [exec grep -E "^(<|>).*" << $diff_result]
+       verbose -log "Diff checksumed:\n$checksumed_diff"
+       set actualSum [lindex [split [exec sum << $checksumed_diff] " "] 0]
        if { $xdiff } {
            set expectedSum [lindex [split $xdiff_entry " \}"] 3]
            if { $expectedSum == $actualSum } {
                xfail "$nshort $options (assembly comparison)"
            } else {
-               fail "$nshort $options (assembly comparison, sums 
$expectedSum=>$actualSum)"
+               set sumMessage "sums $expectedSum=>$actualSum"
+               fail "$nshort $options (assembly comparison, $sumMessage)"
            }
        } else {
            fail "$nshort $options (assembly comparison, sum=$actualSum)"

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

Reply via email to