From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9939 invoked by alias); 6 Nov 2011 17:36:25 -0000 Received: (qmail 9925 invoked by uid 22791); 6 Nov 2011 17:36:22 -0000 X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL,BAYES_00,FROM_12LTRDOM X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 06 Nov 2011 17:36:07 +0000 Received: from nat-jpt.mentorg.com ([192.94.33.2] helo=PR1-MAIL.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1RN3nh-0001u8-V2 from Yao_Qi@mentor.com for gdb-patches@sourceware.org; Sun, 06 Nov 2011 06:34:22 -0800 Received: from [127.0.0.1] ([172.16.63.104]) by PR1-MAIL.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.1830); Sun, 6 Nov 2011 23:34:18 +0900 Message-ID: <4EB69AE6.4010301@codesourcery.com> Date: Sun, 06 Nov 2011 17:36:00 -0000 From: Yao Qi User-Agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20110930 Thunderbird/7.0.1 MIME-Version: 1.0 To: gdb-patches@sourceware.org Subject: [patch] Run tests in gdb.reverse Content-Type: multipart/mixed; boundary="------------090501000009060509060402" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-11/txt/msg00143.txt.bz2 This is a multi-part message in MIME format. --------------090501000009060509060402 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-length: 2123 During reviewing "arm reverse debugging" patch, we realize that tests in gdb.reverse are not run in common regression test unless we set some variables in board file. This patch is to convert variable checking in each reverse test case to a proc return value checking, so that gdb.reverse tests will be run on targets that support reverse debugging. Run gdb.reverse on x86-linux, and get follow result, FAIL: gdb.reverse/solib-precsave.exp: reverse-step third sleep FAIL: gdb.reverse/solib-precsave.exp: reverse-step second sleep FAIL: gdb.reverse/solib-precsave.exp: reverse-step first sleep, dynsym resolve FAIL: gdb.reverse/solib-precsave.exp: reverse-step third printf FAIL: gdb.reverse/solib-precsave.exp: reverse-step second printf FAIL: gdb.reverse/solib-precsave.exp: reverse-step first printf, dynsym resolve FAIL: gdb.reverse/solib-precsave.exp: reverse-step generic FAIL: gdb.reverse/solib-precsave.exp: reverse-next third sleep FAIL: gdb.reverse/solib-precsave.exp: reverse-next second sleep FAIL: gdb.reverse/solib-precsave.exp: reverse-next first sleep, dynsym resolve FAIL: gdb.reverse/solib-precsave.exp: reverse-next third printf FAIL: gdb.reverse/solib-precsave.exp: reverse-next second printf FAIL: gdb.reverse/solib-precsave.exp: reverse-next first printf, dynsym resolve FAIL: gdb.reverse/solib-precsave.exp: reverse-next generic FAIL: gdb.reverse/solib-precsave.exp: reverse-step into solib function one FAIL: gdb.reverse/solib-precsave.exp: reverse-step within solib function one FAIL: gdb.reverse/solib-precsave.exp: reverse-step back to main one FAIL: gdb.reverse/solib-precsave.exp: reverse-step into solib function two FAIL: gdb.reverse/solib-precsave.exp: reverse-step within solib function two FAIL: gdb.reverse/solib-precsave.exp: reverse-step back to main two FAIL: gdb.reverse/solib-precsave.exp: reverse-next over solib function one FAIL: gdb.reverse/solib-precsave.exp: reverse-next over solib function two === gdb Summary === # of expected passes 2774 # of unexpected failures 22 I didn't KFAIL them, because the reason of fails are unknown to me. OK to apply? -- Yao (齐尧) --------------090501000009060509060402 Content-Type: text/x-patch; name="reverse.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="reverse.patch" Content-length: 17810 gdb/testsuite/ * gdb.exp (support_process_record): New. (support_reverse): New. * gdb.reverse/break-precsave.exp: Call support_process_record to run test conditionally. * gdb.reverse/consecutive-precsave.exp: Likewise. * gdb.reverse/i386-precsave.exp: Likewise. * gdb.reverse/machinestate-precsave.exp: Likewise. * gdb.reverse/solib-precsave.exp: Likewise. * gdb.reverse/step-precsave.exp: Likewise. * gdb.reverse/until-precsave.exp: Likewise. * gdb.reverse/watch-precsave.exp: Likewise. * gdb.reverse/break-reverse.exp: Call support_reverse to run test conditionally. * gdb.reverse/consecutive-reverse.exp: Likewise. * gdb.reverse/finish-precsave.exp: Likewise. * gdb.reverse/finish-reverse-bkpt.exp: Likewise. * gdb.reverse/finish-reverse.exp: Likewise. * gdb.reverse/i386-reverse.exp: Likewise. * gdb.reverse/i386-sse-reverse.exp: Likewise. * gdb.reverse/machinestate.exp: Likewise. * gdb.reverse/next-reverse-bkpt-over-sr.exp: Likewise. * gdb.reverse/sigall-precsave.exp: Likewise. * gdb.reverse/sigall-reverse.exp: Likewise. * gdb.reverse/solib-reverse.exp: Likewise. * gdb.reverse/step-reverse.exp: Likewise. * gdb.reverse/until-reverse.exp: Likewise. * gdb.reverse/watch-reverse.exp: Likewise. diff --git a/gdb/testsuite/gdb.reverse/break-precsave.exp b/gdb/testsuite/gdb.reverse/break-precsave.exp index c7e492b..687ceef 100644 --- a/gdb/testsuite/gdb.reverse/break-precsave.exp +++ b/gdb/testsuite/gdb.reverse/break-precsave.exp @@ -17,7 +17,7 @@ # with breakpoints in a process record logfile. # This test suitable only for process record-replay -if ![target_info exists gdb,use_precord] { +if ![support_process_record] { return } @@ -35,7 +35,7 @@ set end_location [gdb_get_line_number "end of main" ] runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/break-reverse.exp b/gdb/testsuite/gdb.reverse/break-reverse.exp index fd77bc5..e73db30 100644 --- a/gdb/testsuite/gdb.reverse/break-reverse.exp +++ b/gdb/testsuite/gdb.reverse/break-reverse.exp @@ -16,7 +16,7 @@ # This file is part of the GDB testsuite. It tests reverse debugging # with breakpoints. -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -34,7 +34,7 @@ set end_location [gdb_get_line_number "end of main" ] runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/consecutive-precsave.exp b/gdb/testsuite/gdb.reverse/consecutive-precsave.exp index 86923f6..5acaf58 100644 --- a/gdb/testsuite/gdb.reverse/consecutive-precsave.exp +++ b/gdb/testsuite/gdb.reverse/consecutive-precsave.exp @@ -17,7 +17,7 @@ # consecutive instructions in a process record logfile. # This test suitable only for process record-replay -if ![target_info exists gdb,use_precord] { +if ![support_process_record] { return } @@ -30,7 +30,7 @@ if { [prepare_for_testing $testfile.exp $testfile $srcfile] } { runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/consecutive-reverse.exp b/gdb/testsuite/gdb.reverse/consecutive-reverse.exp index 967236f..8742208 100644 --- a/gdb/testsuite/gdb.reverse/consecutive-reverse.exp +++ b/gdb/testsuite/gdb.reverse/consecutive-reverse.exp @@ -16,7 +16,7 @@ # This file is part of the GDB testsuite. It tests stepping over # consecutive instructions in reverse. -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -29,7 +29,7 @@ if { [prepare_for_testing $testfile.exp $testfile $srcfile] } { runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/finish-precsave.exp b/gdb/testsuite/gdb.reverse/finish-precsave.exp index fbf35b6..dad1bc9 100644 --- a/gdb/testsuite/gdb.reverse/finish-precsave.exp +++ b/gdb/testsuite/gdb.reverse/finish-precsave.exp @@ -16,7 +16,7 @@ # This file is part of the GDB testsuite. It tests 'finish' with # reverse debugging. -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -29,7 +29,7 @@ if { [prepare_for_testing $testfile.exp "$testfile" $srcfile] } { runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp b/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp index 09f6837..546d5ef 100644 --- a/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp +++ b/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp @@ -19,7 +19,7 @@ # the functions entry would be ignored. Make sure the bug doesn't # reappear. -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -35,7 +35,7 @@ if ![runto_main] then { return 0 } -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/finish-reverse.exp b/gdb/testsuite/gdb.reverse/finish-reverse.exp index e6be158..efc83d4 100644 --- a/gdb/testsuite/gdb.reverse/finish-reverse.exp +++ b/gdb/testsuite/gdb.reverse/finish-reverse.exp @@ -16,7 +16,7 @@ # This file is part of the GDB testsuite. It tests 'finish' with # reverse debugging. -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -29,7 +29,7 @@ if { [prepare_for_testing $testfile.exp "$testfile" $srcfile] } { runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/i386-precsave.exp b/gdb/testsuite/gdb.reverse/i386-precsave.exp index 10d8ba3..2cc31dd 100644 --- a/gdb/testsuite/gdb.reverse/i386-precsave.exp +++ b/gdb/testsuite/gdb.reverse/i386-precsave.exp @@ -20,7 +20,7 @@ # # This test suitable only for process record-replay -if ![target_info exists gdb,use_precord] { +if ![support_process_record] { return } @@ -57,7 +57,7 @@ gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/i386-reverse.exp b/gdb/testsuite/gdb.reverse/i386-reverse.exp index f9fda5e..a6085b4 100644 --- a/gdb/testsuite/gdb.reverse/i386-reverse.exp +++ b/gdb/testsuite/gdb.reverse/i386-reverse.exp @@ -19,7 +19,7 @@ # This test tests some i386 general instructions for reverse execution. # -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -56,7 +56,7 @@ gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp b/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp index 3e76643..509fb14 100644 --- a/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp +++ b/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp @@ -19,7 +19,7 @@ # This test tests some i386 general instructions for reverse execution. # -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -57,7 +57,7 @@ gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp index a2f2515..6fc2e81 100644 --- a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp +++ b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp @@ -36,7 +36,7 @@ # # This test suitable only for process record-replay -if ![target_info exists gdb,use_precord] { +if ![support_process_record] { return } @@ -57,7 +57,7 @@ set endmain [gdb_get_line_number " end main " $srcfile] runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/machinestate.exp b/gdb/testsuite/gdb.reverse/machinestate.exp index bc2516e..e894301 100644 --- a/gdb/testsuite/gdb.reverse/machinestate.exp +++ b/gdb/testsuite/gdb.reverse/machinestate.exp @@ -35,7 +35,7 @@ # Test forward replay # -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -56,7 +56,7 @@ set endmain [gdb_get_line_number " end main " $srcfile] runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp index 9a95dca..3dd64eb 100644 --- a/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp +++ b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp @@ -23,7 +23,7 @@ # the same location as the step-resume breakpoint isn't ignored. # -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -39,7 +39,7 @@ if ![runto_main] then { return 0 } -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp index 94144d3..4cf6ac4 100644 --- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp +++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp @@ -18,7 +18,7 @@ if [target_info exists gdb,nosignals] { return } -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -172,7 +172,7 @@ gdb_load $binfile runto gen_ABRT -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/sigall-reverse.exp b/gdb/testsuite/gdb.reverse/sigall-reverse.exp index d152965..1b64a64 100644 --- a/gdb/testsuite/gdb.reverse/sigall-reverse.exp +++ b/gdb/testsuite/gdb.reverse/sigall-reverse.exp @@ -18,7 +18,7 @@ if [target_info exists gdb,nosignals] { return } -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -172,7 +172,7 @@ gdb_load $binfile runto gen_ABRT -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/solib-precsave.exp b/gdb/testsuite/gdb.reverse/solib-precsave.exp index be6502f..fd8ccef 100644 --- a/gdb/testsuite/gdb.reverse/solib-precsave.exp +++ b/gdb/testsuite/gdb.reverse/solib-precsave.exp @@ -17,7 +17,7 @@ # with shared libraries and a logfile. # This test suitable only for process record-replay -if ![target_info exists gdb,use_precord] { +if ![support_process_record] { return } @@ -54,7 +54,7 @@ gdb_load ${binfile} runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/solib-reverse.exp b/gdb/testsuite/gdb.reverse/solib-reverse.exp index 1a51605..2af8e71 100644 --- a/gdb/testsuite/gdb.reverse/solib-reverse.exp +++ b/gdb/testsuite/gdb.reverse/solib-reverse.exp @@ -16,7 +16,7 @@ # This file is part of the GDB testsuite. It tests reverse debugging # with shared libraries. -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -53,7 +53,7 @@ gdb_load ${binfile} runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/step-precsave.exp b/gdb/testsuite/gdb.reverse/step-precsave.exp index e861116..2041289 100644 --- a/gdb/testsuite/gdb.reverse/step-precsave.exp +++ b/gdb/testsuite/gdb.reverse/step-precsave.exp @@ -21,7 +21,7 @@ # # This test suitable only for process record-replay -if ![target_info exists gdb,use_precord] { +if ![support_process_record] { return } @@ -34,7 +34,7 @@ if { [prepare_for_testing $testfile.exp $testfile $srcfile] } { runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/step-reverse.exp b/gdb/testsuite/gdb.reverse/step-reverse.exp index dd3bc70..b139101 100644 --- a/gdb/testsuite/gdb.reverse/step-reverse.exp +++ b/gdb/testsuite/gdb.reverse/step-reverse.exp @@ -20,7 +20,7 @@ # Test step and next in reverse # -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -33,7 +33,7 @@ if { [prepare_for_testing $testfile.exp $testfile $srcfile] } { runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/until-precsave.exp b/gdb/testsuite/gdb.reverse/until-precsave.exp index f903d5f..1944b08 100644 --- a/gdb/testsuite/gdb.reverse/until-precsave.exp +++ b/gdb/testsuite/gdb.reverse/until-precsave.exp @@ -17,7 +17,7 @@ # 'advance' in precord logfile. # This test suitable only for process record-replay -if ![target_info exists gdb,use_precord] { +if ![support_process_record] { return } @@ -38,7 +38,7 @@ set bp_location21 [gdb_get_line_number "set breakpoint 21 here"] runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/until-reverse.exp b/gdb/testsuite/gdb.reverse/until-reverse.exp index 0aeffe8..6cbe723 100644 --- a/gdb/testsuite/gdb.reverse/until-reverse.exp +++ b/gdb/testsuite/gdb.reverse/until-reverse.exp @@ -16,7 +16,7 @@ # This file is part of the GDB testsuite. It tests 'until' and # 'advance' in reverse debugging. -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -37,7 +37,7 @@ set bp_location21 [gdb_get_line_number "set breakpoint 21 here"] runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/watch-precsave.exp b/gdb/testsuite/gdb.reverse/watch-precsave.exp index 1eaefd0..6e3eae7 100644 --- a/gdb/testsuite/gdb.reverse/watch-precsave.exp +++ b/gdb/testsuite/gdb.reverse/watch-precsave.exp @@ -18,7 +18,7 @@ # debugging with watchpoints. # This test suitable only for process record-replay -if ![target_info exists gdb,use_precord] { +if ![support_process_record] { return } @@ -32,7 +32,7 @@ if { [prepare_for_testing $testfile.exp $testfile $srcfile] } { runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/gdb.reverse/watch-reverse.exp b/gdb/testsuite/gdb.reverse/watch-reverse.exp index ba91e9b..b8844d4 100644 --- a/gdb/testsuite/gdb.reverse/watch-reverse.exp +++ b/gdb/testsuite/gdb.reverse/watch-reverse.exp @@ -18,7 +18,7 @@ # with watchpoints. -if ![target_info exists gdb,can_reverse] { +if ![support_reverse] { return } @@ -32,7 +32,7 @@ if { [prepare_for_testing $testfile.exp $testfile $srcfile] } { runto main -if [target_info exists gdb,use_precord] { +if [support_process_record] { # Activate process record/replay gdb_test_no_output "record" "Turn on process record" } diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index f1900ef..dabb4a9 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -1546,6 +1546,28 @@ proc can_single_step_to_signal_handler {} { return 1 } +# Return 1 if target supports process record, otherwise return 0. + +proc support_process_record {} { + + if { [istarget "x86_64-*-linux*"] || [istarget "i\[34567\]86-*-linux*"] } { + return 1 + } + + return 0 +} + +# Return 1 if target supports reverse debugging, otherwise return 0. + +proc support_reverse {} { + + if { [istarget "x86_64-*-linux*"] || [istarget "i\[34567\]86-*-linux*"] } { + return 1 + } + + return 0 +} + # Return 1 if target is ILP32. # This cannot be decided simply from looking at the target string, # as it might depend on externally passed compiler options like -m64. --------------090501000009060509060402--