Bug 406355 - mcsignopass and mcsigpass fails due to a slight difference in gdb output
Summary: mcsignopass and mcsigpass fails due to a slight difference in gdb output
Status: RESOLVED FIXED
Alias: None
Product: valgrind
Classification: Developer tools
Component: general (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-04-09 12:35 UTC by Alexandra Hajkova
Modified: 2019-04-10 17:01 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
patch (4.77 KB, patch)
2019-04-09 12:35 UTC, Alexandra Hajkova
Details
Generic substitution, MIPS changes (1.67 KB, text/plain)
2019-04-10 14:18 UTC, Stefan Maksimovic
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexandra Hajkova 2019-04-09 12:35:52 UTC
Created attachment 119318 [details]
patch

SUMMARY
mcsignopass and mcsigpass fails due to a slight difference in gdb output

My patch adds a line to gdb_filter to make outputs from the differnt gdb versions  to look the same and updates the expected outputs.

perl tests/vg_regtest gdbserver_tests/
without the patch:
-- Finished tests in gdbserver_tests -----------------------------------

== 26 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 2 stdoutB failures, 0 post failures ==
gdbserver_tests/mcsignopass              (stdoutB)
gdbserver_tests/mcsigpass                (stdoutB)

with the patch:
-- Finished tests in gdbserver_tests -----------------------------------

== 26 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
Comment 1 Stefan Maksimovic 2019-04-10 14:18:17 UTC
Created attachment 119331 [details]
Generic substitution, MIPS changes

Hello Alexandra,

I have an exact problem as yours, the difference being there was an another test involved, namely gdbserver_tests/mcbreak.

--- mcbreak.stdoutB.exp 2019-02-13 14:31:47.000000000 +0100
+++ mcbreak.stdoutB.out 2019-04-04 13:16:30.000000000 +0200
@@ -43,11 +43,11 @@
 Delete all breakpoints? (y or n) [answered Y; input not from terminal]
 Continuing.
 Program received signal SIGTRAP, Trace/breakpoint trap.
-0x........ in make_error (s=0x........ "called from level") at t.c:41
+make_error (s=0x........ "called from level") at t.c:41
 41       if (int_und == 0)
 44          printf ("%s int_und is not zero\n", s);
 old_pc has changed after step
 Continuing.
 Program received signal SIGTRAP, Trace/breakpoint trap.
-0x........ in make_error (s=0x........ "called from main") at t.c:41
+make_error (s=0x........ "called from main") at t.c:41
 41       if (int_und == 0)

Could you alter your patch do substitutions globally instead of being tied to gdbserver_tests/mcsignopass
and
gdbserver_tests/mcsigpass
tests specifically?

Something along the lines of 's/0x........ in \([^\s]+\)/\1/' ?
I've attached a patch which works for me, could you check if it works for you as well?
If so, would it be possible for you to include my changes in your patch?

Details:
mips64r2 LE
Linux 3.7.10
glibc 2.28 
gcc 8.2.0
gdb 7.11.1

Thanks,
Stefan
Comment 2 Mark Wielaard 2019-04-10 17:01:17 UTC
I tested a slightly more restrictive variant of Stefan's regexp 's/^0x........ in \(\w\+ (\)/\1/' and used that.

commit 12addd06445a1685e91ff091867ae27d6eac733f
Author: Alexandra Hájková <ahajkova@redhat.com>
Date:   Tue Apr 9 11:09:56 2019 +0200

    gdbserver_tests: adjust filtering for the new gdb output
    
    mcsigpass and mcsignopass tests fails due to the slightly different
    gdb output. Filter the tests output to make it the same for different
    gdb version. Change mcsigpass and mcsignopass .exp to fit filtered
    .out.
    
    More generic regexp by Stefan Maksimovic <stefan.maksimovic@rt-rk.com>.
    
    https://bugs.kde.org/show_bug.cgi?id=406355