Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Side by Side Diff: gdb/testsuite/gdb.base/list.exp

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/testsuite/gdb.base/lineinc.exp ('k') | gdb/testsuite/gdb.base/list0.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 1992, 1994-1999, 2002-2003, 2007-2012 Free Software 1 # Copyright 1992, 1994-1999, 2002-2003, 2007-2012 Free Software
2 # Foundation, Inc. 2 # Foundation, Inc.
3 3
4 # This program is free software; you can redistribute it and/or modify 4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by 5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 3 of the License, or 6 # the Free Software Foundation; either version 3 of the License, or
7 # (at your option) any later version. 7 # (at your option) any later version.
8 # 8 #
9 # This program is distributed in the hope that it will be useful, 9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details. 12 # GNU General Public License for more details.
13 # 13 #
14 # You should have received a copy of the GNU General Public License 14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>. 15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16
17 # This file was written by Fred Fish. (fnf@cygnus.com) 17 # This file was written by Fred Fish. (fnf@cygnus.com)
18 18
19 if $tracelevel then {
20 strace $tracelevel
21 }
22
23 19
24 set testfile "list" 20 set testfile "list"
25 set binfile ${objdir}/${subdir}/${testfile} 21 set binfile ${objdir}/${subdir}/${testfile}
26 22
27 # Need to download the header to the host. 23 # Need to download the header to the host.
28 remote_download host ${srcdir}/${subdir}/list0.h list0.h 24 remote_download host ${srcdir}/${subdir}/list0.h list0.h
29 25
30 26
31 if { [gdb_compile "${srcdir}/${subdir}/list0.c" "${binfile}0.o" object {debug}] != "" } { 27 if { [gdb_compile "${srcdir}/${subdir}/list0.c" "${binfile}0.o" object {debug}] != "" } {
32 untested list.exp 28 untested list.exp
33 return -1 29 return -1
34 } 30 }
35 31
36 if { [gdb_compile "${srcdir}/${subdir}/list1.c" "${binfile}1.o" object {debug}] != "" } { 32 if { [gdb_compile "${srcdir}/${subdir}/list1.c" "${binfile}1.o" object {debug}] != "" } {
37 untested list.exp 33 untested list.exp
38 return -1 34 return -1
39 } 35 }
40 36
41 if { [gdb_compile "${binfile}0.o ${binfile}1.o" ${binfile} executable {debug}] != "" } { 37 if { [gdb_compile "${binfile}0.o ${binfile}1.o" ${binfile} executable {debug}] != "" } {
42 untested list.exp 38 untested list.exp
43 return -1 39 return -1
44 } 40 }
45 41
46 42
47 43
48 # Create and source the file that provides information about the compiler 44 # Create and source the file that provides information about the compiler
49 # used to compile the test case. 45 # used to compile the test case.
50 if [get_compiler_info ${binfile}] { 46 if [get_compiler_info] {
51 return -1; 47 return -1;
52 } 48 }
53 49
54 # 50 #
55 # Local utility proc just to set and verify listsize 51 # Local utility proc just to set and verify listsize
56 # Return 1 if success, 0 if fail. 52 # Return 1 if success, 0 if fail.
57 # 53 #
58 54
59 set set_listsize_count 0; 55 set set_listsize_count 0;
60 56
(...skipping 13 matching lines...) Expand all
74 return 0; 70 return 0;
75 } 71 }
76 return 1 72 return 1
77 } 73 }
78 74
79 # 75 #
80 # Test display of listsize lines around a given line number. 76 # Test display of listsize lines around a given line number.
81 # 77 #
82 78
83 proc test_listsize {} { 79 proc test_listsize {} {
84 global gdb_prompt use_gdb_stub 80 global gdb_prompt
85 global hp_cc_compiler 81 global hp_cc_compiler
86 global hp_aCC_compiler 82 global hp_aCC_compiler
87 83
88 # Show default size 84 # Show default size
89 85
90 gdb_test "show listsize" "Number of source lines gdb will list by default is 10.*" "show default list size" 86 gdb_test "show listsize" "Number of source lines gdb will list by default is 10.*" "show default list size"
91 87
92 # Show the default lines 88 # Show the default lines
93 # Note that remote targets that have debugging info for _start available wil l 89
94 # list the lines there instead of main, so we skip this test for remote targ ets. 90 gdb_test "list" "(1\[ \t\]+#include \"list0.h\".*7\[ \t\]+x = 0;\r\n.*10\[ \ t\]+foo .x\[+)\]+;)" "list default lines around main"
95 # The second case is for optimized code, it is still correct.
96
97 if $use_gdb_stub {
98 » runto_main;
99 » unsupported "list default lines around main";
100 } else {
101 » gdb_test "list" "(1\[ \t\]+#include \"list0.h\".*10\[ \t\]+x = 0;|2.*11\ [ \t\]+foo .x\[+)\]+;)" "list default lines around main"
102 }
103 91
104 # Ensure we can limit printouts to one line 92 # Ensure we can limit printouts to one line
105 93
106 if [set_listsize 1] { 94 if [set_listsize 1] {
107 gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"" "list line 1 with list size 1" 95 gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"" "list line 1 with list size 1"
108 gdb_test "list 2" "2\[ \t\]+" "list line 2 with listsize 1" 96 gdb_test "list 2" "2\[ \t\]+" "list line 2 with listsize 1"
109 } 97 }
110 98
111 # Try just two lines 99 # Try just two lines
112 100
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 # Test "list filename:number" for C source file 160 # Test "list filename:number" for C source file
173 # 161 #
174 162
175 proc test_list_filename_and_number {} { 163 proc test_list_filename_and_number {} {
176 global gdb_prompt 164 global gdb_prompt
177 165
178 set testcnt 0 166 set testcnt 0
179 167
180 send_gdb "list list0.c:1\n" 168 send_gdb "list list0.c:1\n"
181 gdb_expect { 169 gdb_expect {
182 » -re "1\[ \t\]+#include \"list0.h\".*10\[ \t]+x = 0;\r\n$gdb_prompt $" { 170 » -re "1\[ \t\]+#include \"list0.h\".*10\[ \t\]+foo .x\[+)\]+;\r\n$gdb_pro mpt $" {
183 incr testcnt 171 incr testcnt
184 } 172 }
185 -re ".*$gdb_prompt $" { fail "list list0.c:1" ; gdb_suppress_tests } 173 -re ".*$gdb_prompt $" { fail "list list0.c:1" ; gdb_suppress_tests }
186 timeout { fail "list list0.c:1 (timeout)" ; gdb_suppress_tests } 174 timeout { fail "list list0.c:1 (timeout)" ; gdb_suppress_tests }
187 } 175 }
188 send_gdb "list list0.c:10\n" 176 send_gdb "list list0.c:10\n"
189 gdb_expect { 177 gdb_expect {
190 -re "5\[ \t\]+int x;.*14\[ \t\]+foo .x\[+)\]+;\r\n$gdb_prompt $" { 178 -re "5\[ \t\]+int x;.*14\[ \t\]+foo .x\[+)\]+;\r\n$gdb_prompt $" {
191 incr testcnt 179 incr testcnt
192 } 180 }
(...skipping 23 matching lines...) Expand all
216 # 204 #
217 # Test "list function" for C source file 205 # Test "list function" for C source file
218 # 206 #
219 207
220 proc test_list_function {} { 208 proc test_list_function {} {
221 global gdb_prompt 209 global gdb_prompt
222 210
223 # gcc appears to generate incorrect debugging information for code 211 # gcc appears to generate incorrect debugging information for code
224 # in include files, which breaks this test. 212 # in include files, which breaks this test.
225 # SunPRO cc is the second case below, it's also correct. 213 # SunPRO cc is the second case below, it's also correct.
226 gdb_test "list main" "(5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;|1\[ \t \]+#include .*10\[ \t\]+x = 0;)" "list function in source file 1" 214 gdb_test "list main" "(5\[ \t\]+int x;.*8\[ \t\]+foo \[(\]+.*\[)\]+;|1\[ \t\ ]+#include .*7\[ \t\]+x = 0;)" "list function in source file 1"
227 215
228 # Ultrix gdb takes the second case below; it's also correct. 216 # Ultrix gdb takes the second case below; it's also correct.
229 # SunPRO cc is the third case. 217 # SunPRO cc is the third case.
230 gdb_test "list bar" "(4\[ \t\]+void.*\[ \t\]*long_line.*;.*bar.*9\[ \t\]*.*| 1\[ \t\]+void.*8\[ \t\]+\}|1\[ \t\]+void.*7\[ \t\]*long_line ..;|7\[ \t\]+void.* 14\[ \t\]+\})" "list function in source file 2" 218 gdb_test "list bar" "(4\[ \t\]+void.*\[ \t\]*long_line.*;.*bar.*9\[ \t\]*.*| 1\[ \t\]+void.*8\[ \t\]+\}|1\[ \t\]+void.*7\[ \t\]*long_line ..;|7\[ \t\]+void.* 14\[ \t\]+\})" "list function in source file 2"
231 219
232 # Test "list function" for C include file 220 # Test "list function" for C include file
233 # Ultrix gdb is the second case, still correct. 221 # Ultrix gdb is the second case, still correct.
234 # SunPRO cc is the third case. 222 # SunPRO cc is the third case.
235 gdb_test "list foo" "(3\[ \t\]+.*12\[ \t\]+bar \[(\]+.*\[)\]+;|2\[ \t\]+incl uding file.*11\[ \t\]+bar \[(\]+.*\[)\]+;|1\[ \t\]+/. An include file.*10\[ \t\] +bar \[(\]+.*\[)\]+;)" "list function in include file" 223 gdb_test "list foo" "(3\[ \t\]+.*12\[ \t\]+bar \[(\]+.*\[)\]+;|2\[ \t\]+incl uding file.*11\[ \t\]+bar \[(\]+.*\[)\]+;|1\[ \t\]+/. An include file.*10\[ \t\] +bar \[(\]+.*\[)\]+;)" "list function in include file"
236 } 224 }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 316
329 send_gdb "list -\n" 317 send_gdb "list -\n"
330 gdb_expect { 318 gdb_expect {
331 -re "18\[ \t\]+foo \[(\]+.*\[)\]+;.*27\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd b_prompt $" { incr testcnt } 319 -re "18\[ \t\]+foo \[(\]+.*\[)\]+;.*27\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gd b_prompt $" { incr testcnt }
332 -re ".*$gdb_prompt $" { fail "list 18-27" ; gdb_suppress_tests } 320 -re ".*$gdb_prompt $" { fail "list 18-27" ; gdb_suppress_tests }
333 timeout { fail "list 18-27 (timeout)" ; gdb_suppress_tests } 321 timeout { fail "list 18-27 (timeout)" ; gdb_suppress_tests }
334 } 322 }
335 323
336 send_gdb "list -\n" 324 send_gdb "list -\n"
337 gdb_expect { 325 gdb_expect {
338 » -re "8\[ \t\]+breakpoint\[(\]\[)\];.*17\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$g db_prompt $" { incr testcnt } 326 » -re "8\[ \t\]+foo \[(\]+.*\[)\]+;.*17\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb _prompt $" { incr testcnt }
339 -re ".*$gdb_prompt $" { fail "list 8-17" ; gdb_suppress_tests } 327 -re ".*$gdb_prompt $" { fail "list 8-17" ; gdb_suppress_tests }
340 timeout { fail "list 8-17 (timeout)" ; gdb_suppress_tests } 328 timeout { fail "list 8-17 (timeout)" ; gdb_suppress_tests }
341 } 329 }
342 330
343 send_gdb "list -\n" 331 send_gdb "list -\n"
344 gdb_expect { 332 gdb_expect {
345 » -re "1\[ \t\]+#include .*7\[ \t\]+set_debug_traps\[(\]\[)\]+;\r\n$gdb_pr ompt $" { incr testcnt } 333 » -re "1\[ \t\]+#include .*7\[ \t\]+x = 0;\r\n$gdb_prompt $" { incr testcn t }
346 -re ".*$gdb_prompt $" { fail "list 1-7" ; gdb_suppress_tests } 334 -re ".*$gdb_prompt $" { fail "list 1-7" ; gdb_suppress_tests }
347 timeout { fail "list 1-7 (timeout)" ; gdb_suppress_tests } 335 timeout { fail "list 1-7 (timeout)" ; gdb_suppress_tests }
348 } 336 }
349 337
350 pass "$testcnt successive \"list -\" commands to page backwards" 338 pass "$testcnt successive \"list -\" commands to page backwards"
351 gdb_stop_suppressing_tests; 339 gdb_stop_suppressing_tests;
352 } 340 }
353 341
354 # 342 #
355 # Test "list first,last" 343 # Test "list first,last"
(...skipping 24 matching lines...) Expand all
380 proc test_list_filename_and_function {} { 368 proc test_list_filename_and_function {} {
381 global gdb_prompt 369 global gdb_prompt
382 370
383 set testcnt 0 371 set testcnt 0
384 372
385 # gcc appears to generate incorrect debugging information for code 373 # gcc appears to generate incorrect debugging information for code
386 # in include files, which breaks this test. 374 # in include files, which breaks this test.
387 # SunPRO cc is the second case below, it's also correct. 375 # SunPRO cc is the second case below, it's also correct.
388 send_gdb "list list0.c:main\n" 376 send_gdb "list list0.c:main\n"
389 gdb_expect { 377 gdb_expect {
390 » -re "1\[ \t\]+#include .*10\[ \t\]+x = 0;\r\n$gdb_prompt $" { 378 » -re "1\[ \t\]+#include .*10\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" {
391 incr testcnt 379 incr testcnt
392 } 380 }
393 -re "5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" { 381 -re "5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" {
394 pass "list function in source file 1" 382 pass "list function in source file 1"
395 } 383 }
396 -re ".*$gdb_prompt $" { fail "list list0.c:main" } 384 -re ".*$gdb_prompt $" { fail "list list0.c:main" }
397 timeout { fail "list list0.c:main (timeout)" } 385 timeout { fail "list list0.c:main (timeout)" }
398 } 386 }
399 387
400 # Not sure what the point of having this function be unused is. 388 # Not sure what the point of having this function be unused is.
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 # Test that GDB won't crash if the line being searched is extremely long . 498 # Test that GDB won't crash if the line being searched is extremely long .
511 499
512 set oldtimeout $timeout 500 set oldtimeout $timeout
513 set timeout [expr "$timeout + 300"] 501 set timeout [expr "$timeout + 300"]
514 verbose "Timeout is now $timeout seconds" 2 502 verbose "Timeout is now $timeout seconds" 2
515 gdb_test "search 1234" ".*1234.*" "search extremely long line (> 5000 ch ars)" 503 gdb_test "search 1234" ".*1234.*" "search extremely long line (> 5000 ch ars)"
516 set timeout $oldtimeout 504 set timeout $oldtimeout
517 verbose "Timeout is now $timeout seconds" 2 505 verbose "Timeout is now $timeout seconds" 2
518 } 506 }
519 507
508 proc test_only_end {} {
509 gdb_test_no_output "set listsize 2"
510 gdb_test "list 1" "list 1\r\n1\[ \t\]\[^\r\n\]*\r\n2\[ \t\]\[^\r\n\]*"
511 gdb_test "list ,5" "list ,5\r\n4\[ \t\]\[^\r\n\]*\r\n5\[ \t\]\[^\r\n\]*"
512 }
513
520 # Start with a fresh gdb. 514 # Start with a fresh gdb.
521 515
522 gdb_exit 516 gdb_exit
523 gdb_start 517 gdb_start
524 gdb_reinitialize_dir $srcdir/$subdir 518 gdb_reinitialize_dir $srcdir/$subdir
525 gdb_load ${binfile} 519 gdb_file_cmd ${binfile}
526
527 if [target_info exists gdb_stub] {
528 gdb_step_for_stub;
529 }
530 520
531 gdb_test_no_output "set width 0" 521 gdb_test_no_output "set width 0"
532 522
533 test_listsize 523 test_listsize
534 get_debug_format 524 get_debug_format
535 if [ set_listsize 10 ] then { 525 if [ set_listsize 10 ] then {
536 test_list_include_file 526 test_list_include_file
537 test_list_filename_and_number 527 test_list_filename_and_number
538 test_list_function 528 test_list_function
539 test_list_forward 529 test_list_forward
540 test_list_backwards 530 test_list_backwards
541 test_repeat_list_command 531 test_repeat_list_command
542 test_list_range 532 test_list_range
543 test_list_filename_and_function 533 test_list_filename_and_function
544 test_forward_search 534 test_forward_search
535 test_only_end
545 } 536 }
546 537
547 remote_exec build "rm -f list0.h" 538 remote_exec build "rm -f list0.h"
OLDNEW
« no previous file with comments | « gdb/testsuite/gdb.base/lineinc.exp ('k') | gdb/testsuite/gdb.base/list0.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698