From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20633 invoked by alias); 19 Dec 2013 16:45:23 -0000 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 Received: (qmail 20446 invoked by uid 89); 19 Dec 2013 16:45:22 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mga11.intel.com Received: from mga11.intel.com (HELO mga11.intel.com) (192.55.52.93) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 19 Dec 2013 16:45:19 +0000 Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP; 19 Dec 2013 08:45:02 -0800 X-ExtLoop1: 1 Received: from irvmail001.ir.intel.com ([163.33.26.43]) by fmsmga002.fm.intel.com with ESMTP; 19 Dec 2013 08:45:00 -0800 Received: from ulvlx001.iul.intel.com (ulvlx001.iul.intel.com [172.28.207.17]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id rBJGixEb025980; Thu, 19 Dec 2013 16:45:00 GMT Received: from ulvlx001.iul.intel.com (localhost [127.0.0.1]) by ulvlx001.iul.intel.com with ESMTP id rBJGixHS029722; Thu, 19 Dec 2013 17:44:59 +0100 Received: (from mmetzger@localhost) by ulvlx001.iul.intel.com with œ id rBJGixj6029718; Thu, 19 Dec 2013 17:44:59 +0100 From: Markus Metzger To: jan.kratochvil@redhat.com, palves@redhat.com Cc: gdb-patches@sourceware.org Subject: [PATCH v9 01/29] btrace, test: fix multi-line btrace tests Date: Thu, 19 Dec 2013 16:45:00 -0000 Message-Id: <1387471499-29444-2-git-send-email-markus.t.metzger@intel.com> In-Reply-To: <1387471499-29444-1-git-send-email-markus.t.metzger@intel.com> References: <1387471499-29444-1-git-send-email-markus.t.metzger@intel.com> X-IsSubscribed: yes X-SW-Source: 2013-12/txt/msg00772.txt.bz2 For testing multi-line test output, gdb.btrace tests used the following pattern: gdb_test "..." " ...\r ..." Change this to: gdb_test "..." [join [list \ "..." \ "..."] "\r\n"] Also extract repeated tests into a test function and shorten or remove test messages. 2013-12-19 Markus Metzger testsuite/ * gdb.btrace/function_call_history.exp: Update. * gdb.btrace/instruction_history.exp: Update. --- gdb/testsuite/gdb.btrace/function_call_history.exp | 247 ++++++++++----------- gdb/testsuite/gdb.btrace/instruction_history.exp | 57 ++--- 2 files changed, 145 insertions(+), 159 deletions(-) diff --git a/gdb/testsuite/gdb.btrace/function_call_history.exp b/gdb/testsuite/gdb.btrace/function_call_history.exp index 97447e1..8bc44e7 100644 --- a/gdb/testsuite/gdb.btrace/function_call_history.exp +++ b/gdb/testsuite/gdb.btrace/function_call_history.exp @@ -37,167 +37,150 @@ set bp_location [gdb_get_line_number "bp.1" $testfile.c] gdb_breakpoint $bp_location gdb_continue_to_breakpoint "cont to $bp_location" ".*$testfile.c:$bp_location.*" +proc rec_fun_all {} { +gdb_test "record function-call-history 0" [join [list \ + "0\tmain" \ + "1\tinc" \ + "2\tmain" \ + "3\tinc" \ + "4\tmain" \ + "5\tinc" \ + "6\tmain" \ + "7\tinc" \ + "8\tmain" \ + "9\tinc" \ + "10\tmain" \ + "11\tinc" \ + "12\tmain" \ + "13\tinc" \ + "14\tmain" \ + "15\tinc" \ + "16\tmain" \ + "17\tinc" \ + "18\tmain" \ + "19\tinc" \ + "20\tmain"] "\r\n"] +} + # show function call history with unlimited size, we expect to see all 21 entries gdb_test_no_output "set record function-call-history-size 0" -gdb_test "record function-call-history" " -0\tmain\r -1\tinc\r -2\tmain\r -3\tinc\r -4\tmain\r -5\tinc\r -6\tmain\r -7\tinc\r -8\tmain\r -9\tinc\r -10\tmain\r -11\tinc\r -12\tmain\r -13\tinc\r -14\tmain\r -15\tinc\r -16\tmain\r -17\tinc\r -18\tmain\r -19\tinc\r -20\tmain\r" "record function-call-history - with size unlimited" +with_test_prefix "size unlimited" rec_fun_all # show function call history with size of 21, we expect to see all 21 entries gdb_test_no_output "set record function-call-history-size 21" -# show function call history -gdb_test "record function-call-history 0" " -0\tmain\r -1\tinc\r -2\tmain\r -3\tinc\r -4\tmain\r -5\tinc\r -6\tmain\r -7\tinc\r -8\tmain\r -9\tinc\r -10\tmain\r -11\tinc\r -12\tmain\r -13\tinc\r -14\tmain\r -15\tinc\r -16\tmain\r -17\tinc\r -18\tmain\r -19\tinc\r -20\tmain\r" "record function-call-history - show all 21 entries" +with_test_prefix "size 21" rec_fun_all # show first 15 entries gdb_test_no_output "set record function-call-history-size 15" -gdb_test "record function-call-history 0" " -0\tmain\r -1\tinc\r -2\tmain\r -3\tinc\r -4\tmain\r -5\tinc\r -6\tmain\r -7\tinc\r -8\tmain\r -9\tinc\r -10\tmain\r -11\tinc\r -12\tmain\r -13\tinc\r -14\tmain\r" "record function-call-history - show first 15 entries" +gdb_test "record function-call-history 0" [join [list \ + "0\tmain" \ + "1\tinc" \ + "2\tmain" \ + "3\tinc" \ + "4\tmain" \ + "5\tinc" \ + "6\tmain" \ + "7\tinc" \ + "8\tmain" \ + "9\tinc" \ + "10\tmain" \ + "11\tinc" \ + "12\tmain" \ + "13\tinc" \ + "14\tmain"] "\r\n"] "forward - 1" # show last 6 entries -gdb_test "record function-call-history +" " -15\tinc\r -16\tmain\r -17\tinc\r -18\tmain\r -19\tinc\r -20\tmain\r" "record function-call-history - show last 6 entries" +gdb_test "record function-call-history +" [join [list \ + "15\tinc" \ + "16\tmain" \ + "17\tinc" \ + "18\tmain" \ + "19\tinc" \ + "20\tmain"] "\r\n"] "forward - 2" # moving further should not work -gdb_test "record function-call-history +" "At the end of the branch trace record\\." "record function-call-history - at the end (1)" +gdb_test "record function-call-history +" "At the end of the branch trace record\\." "forward - 3" # make sure we cannot move any further a second time -gdb_test "record function-call-history +" "At the end of the branch trace record\\." "record function-call-history - at the end (2)" +gdb_test "record function-call-history +" "At the end of the branch trace record\\." "forward - 4" # moving back showing the latest 15 function calls -gdb_test "record function-call-history -" " -6\tmain\r -7\tinc\r -8\tmain\r -9\tinc\r -10\tmain\r -11\tinc\r -12\tmain\r -13\tinc\r -14\tmain\r -15\tinc\r -16\tmain\r -17\tinc\r -18\tmain\r -19\tinc\r -20\tmain\r" "record function-call-history - show last 15 entries" +gdb_test "record function-call-history -" [join [list \ + "6\tmain" \ + "7\tinc" \ + "8\tmain" \ + "9\tinc" \ + "10\tmain" \ + "11\tinc" \ + "12\tmain" \ + "13\tinc" \ + "14\tmain" \ + "15\tinc" \ + "16\tmain" \ + "17\tinc" \ + "18\tmain" \ + "19\tinc" \ + "20\tmain"] "\r\n"] "backward - 1" # moving further back shows the 6 first function calls -gdb_test "record function-call-history -" " -0\tmain\r -1\tinc\r -2\tmain\r -3\tinc\r -4\tmain\r -5\tinc\r" "record function-call-history - show first 6 entries" +gdb_test "record function-call-history -" [join [list \ + "0\tmain" \ + "1\tinc" \ + "2\tmain" \ + "3\tinc" \ + "4\tmain" \ + "5\tinc"] "\r\n"] "backward - 2" # moving further back shouldn't work -gdb_test "record function-call-history -" "At the start of the branch trace record\\." "record function-call-history - at the start (1)" +gdb_test "record function-call-history -" "At the start of the branch trace record\\." "backward - 3" # make sure we cannot move any further back -gdb_test "record function-call-history -" "At the start of the branch trace record\\." "record function-call-history - at the start (2)" +gdb_test "record function-call-history -" "At the start of the branch trace record\\." "backward - 4" # moving forward again, but this time with file and line number, expected to see the first 15 entries -gdb_test "record function-call-history /l +" " -.*$srcfile:40-41\tmain\r -.*$srcfile:22-24\tinc\r -.*$srcfile:40-41\tmain\r -.*$srcfile:22-24\tinc\r -.*$srcfile:40-41\tmain\r -.*$srcfile:22-24\tinc\r -.*$srcfile:40-41\tmain\r -.*$srcfile:22-24\tinc\r -.*$srcfile:40-41\tmain\r -.*$srcfile:22-24\tinc\r -.*$srcfile:40-41\tmain\r -.*$srcfile:22-24\tinc\r -.*$srcfile:40-41\tmain\r -.*$srcfile:22-24\tinc\r -.*$srcfile:40-41\tmain\r" "record function-call-history /l - show first 15 entries" +gdb_test "record function-call-history /l +" [join [list \ + ".*$srcfile:40-41\tmain" \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-41\tmain" \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-41\tmain" \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-41\tmain" \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-41\tmain" \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-41\tmain" \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-41\tmain" \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-41\tmain"] "\r\n"] "forward /l - 1" # moving forward and expect to see the latest 6 entries -gdb_test "record function-call-history /l +" " -.*$srcfile:22-24\tinc\r -.*$srcfile:40-41\tmain\r -.*$srcfile:22-24\tinc\r -.*$srcfile:40-41\tmain\r -.*$srcfile:22-24\tinc\r -.*$srcfile:40-43\tmain\r" "record function-call-history /l - show last 6 entries" +gdb_test "record function-call-history /l +" [join [list \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-41\tmain" \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-41\tmain" \ + ".*$srcfile:22-24\tinc" \ + ".*$srcfile:40-43\tmain"] "\r\n"] "forward /l - 2" # moving further forward shouldn't work -gdb_test "record function-call-history /l +" "At the end of the branch trace record\\." "record function-call-history /l - at the end (1)" -gdb_test "record function-call-history /l" "At the end of the branch trace record\\." "record function-call-history /l - at the end (2)" - -set expected_range "3\tinc\r -4\tmain\r -5\tinc\r -6\tmain\r -7\tinc\r -8\tmain\r -9\tinc\r" +gdb_test "record function-call-history /l +" "At the end of the branch trace record\\." "forward /l - 3" +gdb_test "record function-call-history /l" "At the end of the branch trace record\\." "forward /l - 4" + +set expected_range [join [list \ + "3\tinc" \ + "4\tmain" \ + "5\tinc" \ + "6\tmain" \ + "7\tinc" \ + "8\tmain" \ + "9\tinc"] "\r\n"] # show functions in instruction range -gdb_test "record function-call-history 3,10" $expected_range "absolute instruction range" -gdb_test "record function-call-history 3,+7" $expected_range "relative positive instruction range" -gdb_test "record function-call-history 10,-7" $expected_range "relative negative instruction range" +gdb_test "record function-call-history 3,10" $expected_range +gdb_test "record function-call-history 3,+7" $expected_range +gdb_test "record function-call-history 10,-7" $expected_range # set bp after fib recursion and continue set bp_location [gdb_get_line_number "bp.2" $testfile.c] @@ -207,7 +190,7 @@ gdb_continue_to_breakpoint "cont to $bp_location" ".*$testfile.c:$bp_location.*" # at this point we expect to have main, fib, ..., fib, main, where fib occurs 8 times, # so we limit the output to only show the latest 10 function calls gdb_test_no_output "set record function-call-history-size 10" -set message "show recursive function call history" +set message "recursive" gdb_test_multiple "record function-call-history" $message { -re "13\tmain\r\n14\tfib\r\n15\tfib\r\n16\tfib\r\n17\tfib\r\n18\tfib\r\n19\tfib\r\n20\tfib\r\n21\tfib\r\n22 main\r\n$gdb_prompt $" { pass $message diff --git a/gdb/testsuite/gdb.btrace/instruction_history.exp b/gdb/testsuite/gdb.btrace/instruction_history.exp index c1a61b7..528ae19 100644 --- a/gdb/testsuite/gdb.btrace/instruction_history.exp +++ b/gdb/testsuite/gdb.btrace/instruction_history.exp @@ -65,33 +65,36 @@ if { $traced != 7 } { } # test that we see the expected instructions -gdb_test "record instruction-history 1,6" " -1\t 0x\[0-9a-f\]+ :\tje 0x\[0-9a-f\]+ \r -2\t 0x\[0-9a-f\]+ :\tdec %eax\r -3\t 0x\[0-9a-f\]+ :\tjmp 0x\[0-9a-f\]+ \r -4\t 0x\[0-9a-f\]+ :\tcmp \\\$0x0,%eax\r -5\t 0x\[0-9a-f\]+ :\tje 0x\[0-9a-f\]+ \r" - -gdb_test "record instruction-history /f 1,+5" " -1\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ \r -2\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tdec %eax\r -3\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ \r -4\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tcmp \\\$0x0,%eax\r -5\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ \r" - -gdb_test "record instruction-history /p 6,-5" " -1\t0x\[0-9a-f\]+ :\tje 0x\[0-9a-f\]+ \r -2\t0x\[0-9a-f\]+ :\tdec %eax\r -3\t0x\[0-9a-f\]+ :\tjmp 0x\[0-9a-f\]+ \r -4\t0x\[0-9a-f\]+ :\tcmp \\\$0x0,%eax\r -5\t0x\[0-9a-f\]+ :\tje 0x\[0-9a-f\]+ \r" - -gdb_test "record instruction-history /pf 1,6" " -1\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ \r -2\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tdec %eax\r -3\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ \r -4\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tcmp \\\$0x0,%eax\r -5\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ \r" +gdb_test "record instruction-history 1,6" [join [list \ + "1\t 0x\[0-9a-f\]+ :\tje 0x\[0-9a-f\]+ " \ + "2\t 0x\[0-9a-f\]+ :\tdec %eax" \ + "3\t 0x\[0-9a-f\]+ :\tjmp 0x\[0-9a-f\]+ " \ + "4\t 0x\[0-9a-f\]+ :\tcmp \\\$0x0,%eax" \ + "5\t 0x\[0-9a-f\]+ :\tje 0x\[0-9a-f\]+ "] "\r\n"] + +gdb_test "record instruction-history /f 1,+5" [join [list \ + "1\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ " \ + "2\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tdec %eax" \ + "3\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ " \ + "4\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \ + "5\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ \r" \ +] "\r\n"] + +gdb_test "record instruction-history /p 6,-5" [join [list \ + "1\t0x\[0-9a-f\]+ :\tje 0x\[0-9a-f\]+ " \ + "2\t0x\[0-9a-f\]+ :\tdec %eax" \ + "3\t0x\[0-9a-f\]+ :\tjmp 0x\[0-9a-f\]+ " \ + "4\t0x\[0-9a-f\]+ :\tcmp \\\$0x0,%eax" \ + "5\t0x\[0-9a-f\]+ :\tje 0x\[0-9a-f\]+ \r" \ +] "\r\n"] + +gdb_test "record instruction-history /pf 1,6" [join [list \ + "1\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ " \ + "2\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tdec %eax" \ + "3\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ " \ + "4\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \ + "5\t0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ \r" \ +] "\r\n"] # the following tests are checking the iterators # to avoid lots of regexps, we just check the number of lines that -- 1.8.3.1