On 7/15/11, Lawrence Crowl <cr...@google.com> wrote: > On 7/15/11, Gabriel Charette <gch...@google.com> wrote: >> 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 <gch...@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 > > Needs shortening of message. Otherwise, LGTM.
We have crossed the streams. LGTM. -- Lawrence Crowl