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

Side by Side Diff: gdb/testsuite/lib/gdb.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/lib/future.exp ('k') | gdb/testsuite/lib/gdbserver-support.exp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
None
OLDNEW
1 # Copyright 1992-2005, 2007-2012 Free Software Foundation, Inc. 1 # Copyright 1992-2005, 2007-2012 Free Software Foundation, Inc.
2 2
3 # This program is free software; you can redistribute it and/or modify 3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by 4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 3 of the License, or 5 # the Free Software Foundation; either version 3 of the License, or
6 # (at your option) any later version. 6 # (at your option) any later version.
7 # 7 #
8 # This program is distributed in the hope that it will be useful, 8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 # E.g. make check RUNTESTFLAGS=GDBFLAGS=mumble 45 # E.g. make check RUNTESTFLAGS=GDBFLAGS=mumble
46 # Testcases may use it to add additional flags, but they must: 46 # Testcases may use it to add additional flags, but they must:
47 # - append new flags, not overwrite 47 # - append new flags, not overwrite
48 # - restore the original value when done 48 # - restore the original value when done
49 global GDBFLAGS 49 global GDBFLAGS
50 if ![info exists GDBFLAGS] { 50 if ![info exists GDBFLAGS] {
51 set GDBFLAGS "" 51 set GDBFLAGS ""
52 } 52 }
53 verbose "using GDBFLAGS = $GDBFLAGS" 2 53 verbose "using GDBFLAGS = $GDBFLAGS" 2
54 54
55 # Make the build data directory available to tests.
56 set BUILD_DATA_DIRECTORY "[pwd]/../data-directory"
57
55 # INTERNAL_GDBFLAGS contains flags that the testsuite requires. 58 # INTERNAL_GDBFLAGS contains flags that the testsuite requires.
56 global INTERNAL_GDBFLAGS 59 global INTERNAL_GDBFLAGS
57 if ![info exists INTERNAL_GDBFLAGS] { 60 if ![info exists INTERNAL_GDBFLAGS] {
58 set INTERNAL_GDBFLAGS "-nw -nx -data-directory [pwd]/../data-directory" 61 set INTERNAL_GDBFLAGS "-nw -nx -data-directory $BUILD_DATA_DIRECTORY"
59 } 62 }
60 63
61 # The variable gdb_prompt is a regexp which matches the gdb prompt. 64 # The variable gdb_prompt is a regexp which matches the gdb prompt.
62 # Set it if it is not already set. 65 # Set it if it is not already set.
63 global gdb_prompt 66 global gdb_prompt
64 if ![info exists gdb_prompt] then { 67 if ![info exists gdb_prompt] then {
65 set gdb_prompt "\[(\]gdb\[)\]" 68 set gdb_prompt "\[(\]gdb\[)\]"
66 } 69 }
67 70
68 # The variable fullname_syntax_POSIX is a regexp which matches a POSIX 71 # The variable fullname_syntax_POSIX is a regexp which matches a POSIX
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 return; 262 return;
260 } 263 }
261 send_gdb "jump *$start\n"; 264 send_gdb "jump *$start\n";
262 } 265 }
263 timeout { 266 timeout {
264 perror "Jump to start() failed (timeout)"; 267 perror "Jump to start() failed (timeout)";
265 return 268 return
266 } 269 }
267 } 270 }
268 } 271 }
269 if [target_info exists gdb_stub] {
270 gdb_expect 60 {
271 -re "$gdb_prompt $" {
272 send_gdb "continue\n"
273 }
274 }
275 }
276 return 272 return
277 } 273 }
278 274
279 if [target_info exists gdb,do_reload_on_run] { 275 if [target_info exists gdb,do_reload_on_run] {
280 if { [gdb_reload] != 0 } { 276 if { [gdb_reload] != 0 } {
281 return; 277 return;
282 } 278 }
283 } 279 }
284 send_gdb "run $args\n" 280 send_gdb "run $args\n"
285 # This doesn't work quite right yet. 281 # This doesn't work quite right yet.
(...skipping 19 matching lines...) Expand all
305 301
306 proc gdb_start_cmd {args} { 302 proc gdb_start_cmd {args} {
307 global gdb_prompt use_gdb_stub 303 global gdb_prompt use_gdb_stub
308 304
309 if [target_info exists gdb_init_command] { 305 if [target_info exists gdb_init_command] {
310 send_gdb "[target_info gdb_init_command]\n"; 306 send_gdb "[target_info gdb_init_command]\n";
311 gdb_expect 30 { 307 gdb_expect 30 {
312 -re "$gdb_prompt $" { } 308 -re "$gdb_prompt $" { }
313 default { 309 default {
314 perror "gdb_init_command for target failed"; 310 perror "gdb_init_command for target failed";
315 » » return; 311 » » return -1;
316 } 312 }
317 } 313 }
318 } 314 }
319 315
320 if $use_gdb_stub { 316 if $use_gdb_stub {
321 return -1 317 return -1
322 } 318 }
323 319
324 send_gdb "start $args\n" 320 send_gdb "start $args\n"
325 # Use -notransfer here so that test cases (like chng-sym.exp) 321 # Use -notransfer here so that test cases (like chng-sym.exp)
326 # may test for additional start-up messages. 322 # may test for additional start-up messages.
327 gdb_expect 60 { 323 gdb_expect 60 {
328 -re "The program .* has been started already.*y or n. $" { 324 -re "The program .* has been started already.*y or n. $" {
329 send_gdb "y\n" 325 send_gdb "y\n"
330 exp_continue 326 exp_continue
331 } 327 }
332 -notransfer -re "Starting program: \[^\r\n\]*" { 328 -notransfer -re "Starting program: \[^\r\n\]*" {
333 return 0 329 return 0
334 } 330 }
335 } 331 }
336 return -1 332 return -1
337 } 333 }
338 334
339 # Set a breakpoint at FUNCTION. If there is an additional argument it is 335 # Set a breakpoint at FUNCTION. If there is an additional argument it is
340 # a list of options; the supported options are allow-pending, temporary, 336 # a list of options; the supported options are allow-pending, temporary,
341 # and no-message. 337 # message, no-message, and passfail.
338 # The result is 1 for success, 0 for failure.
339 #
340 # Note: The handling of message vs no-message is messed up, but it's based
341 # on historical usage. By default this function does not print passes,
342 # only fails.
343 # no-message: turns off printing of fails (and passes, but they're already off)
344 # message: turns on printing of passes (and fails, but they're already on)
342 345
343 proc gdb_breakpoint { function args } { 346 proc gdb_breakpoint { function args } {
344 global gdb_prompt 347 global gdb_prompt
345 global decimal 348 global decimal
346 349
347 set pending_response n 350 set pending_response n
348 if {[lsearch -exact [lindex $args 0] allow-pending] != -1} { 351 if {[lsearch -exact $args allow-pending] != -1} {
349 set pending_response y 352 set pending_response y
350 } 353 }
351 354
352 set break_command "break" 355 set break_command "break"
353 set break_message "Breakpoint" 356 set break_message "Breakpoint"
354 if {[lsearch -exact [lindex $args 0] temporary] != -1} { 357 if {[lsearch -exact $args temporary] != -1} {
355 set break_command "tbreak" 358 set break_command "tbreak"
356 set break_message "Temporary breakpoint" 359 set break_message "Temporary breakpoint"
357 } 360 }
358 361
359 set no_message 0 362 set print_pass 0
360 if {[lsearch -exact [lindex $args 0] no-message] != -1} { 363 set print_fail 1
361 » set no_message 1 364 set no_message_loc [lsearch -exact $args no-message]
365 set message_loc [lsearch -exact $args message]
366 # The last one to appear in args wins.
367 if { $no_message_loc > $message_loc } {
368 » set print_fail 0
369 } elseif { $message_loc > $no_message_loc } {
370 » set print_pass 1
362 } 371 }
363 372
373 set test_name "setting breakpoint at $function"
374
364 send_gdb "$break_command $function\n" 375 send_gdb "$break_command $function\n"
365 # The first two regexps are what we get with -g, the third is without -g. 376 # The first two regexps are what we get with -g, the third is without -g.
366 gdb_expect 30 { 377 gdb_expect 30 {
367 -re "$break_message \[0-9\]* at .*: file .*, line $decimal.\r\n$gdb_prom pt $" {} 378 -re "$break_message \[0-9\]* at .*: file .*, line $decimal.\r\n$gdb_prom pt $" {}
368 -re "$break_message \[0-9\]*: file .*, line $decimal.\r\n$gdb_prompt $" {} 379 -re "$break_message \[0-9\]*: file .*, line $decimal.\r\n$gdb_prompt $" {}
369 -re "$break_message \[0-9\]* at .*$gdb_prompt $" {} 380 -re "$break_message \[0-9\]* at .*$gdb_prompt $" {}
370 -re "$break_message \[0-9\]* \\(.*\\) pending.*$gdb_prompt $" { 381 -re "$break_message \[0-9\]* \\(.*\\) pending.*$gdb_prompt $" {
371 if {$pending_response == "n"} { 382 if {$pending_response == "n"} {
372 » » » if { $no_message == 0 } { 383 » » » if { $print_fail } {
373 » » » » fail "setting breakpoint at $function" 384 » » » » fail $test_name
374 } 385 }
375 return 0 386 return 0
376 } 387 }
377 } 388 }
378 -re "Make breakpoint pending.*y or \\\[n\\\]. $" { 389 -re "Make breakpoint pending.*y or \\\[n\\\]. $" {
379 send_gdb "$pending_response\n" 390 send_gdb "$pending_response\n"
380 exp_continue 391 exp_continue
381 } 392 }
382 -re "A problem internal to GDB has been detected" { 393 -re "A problem internal to GDB has been detected" {
383 » » fail "setting breakpoint at $function in runto (GDB internal err or)" 394 » » if { $print_fail } {
395 » » fail "$test_name (GDB internal error)"
396 » » }
384 gdb_internal_error_resync 397 gdb_internal_error_resync
385 return 0 398 return 0
386 } 399 }
387 -re "$gdb_prompt $" { 400 -re "$gdb_prompt $" {
388 » » if { $no_message == 0 } { 401 » » if { $print_fail } {
389 » » » fail "setting breakpoint at $function" 402 » » » fail $test_name
403 » » }
404 » » return 0
405 » }
406 » eof {
407 » » if { $print_fail } {
408 » » » fail "$test_name (eof)"
390 } 409 }
391 return 0 410 return 0
392 } 411 }
393 timeout { 412 timeout {
394 » » if { $no_message == 0 } { 413 » » if { $print_fail } {
395 » » » fail "setting breakpoint at $function (timeout)" 414 » » » fail "$test_name (timeout)"
396 } 415 }
397 return 0 416 return 0
398 } 417 }
399 } 418 }
419 if { $print_pass } {
420 pass $test_name
421 }
400 return 1; 422 return 1;
401 } 423 }
402 424
403 # Set breakpoint at function and run gdb until it breaks there. 425 # Set breakpoint at function and run gdb until it breaks there.
404 # Since this is the only breakpoint that will be set, if it stops 426 # Since this is the only breakpoint that will be set, if it stops
405 # at a breakpoint, we will assume it is the one we want. We can't 427 # at a breakpoint, we will assume it is the one we want. We can't
406 # just compare to "function" because it might be a fully qualified, 428 # just compare to "function" because it might be a fully qualified,
407 # single quoted C++ function specifier. If there's an additional argument, 429 # single quoted C++ function specifier.
408 # pass it to gdb_breakpoint. 430 #
431 # If there are additional arguments, pass them to gdb_breakpoint.
432 # We recognize no-message/message ourselves.
433 # The default is no-message.
434 # no-message is messed up here, like gdb_breakpoint: to preserve
435 # historical usage fails are always printed by default.
436 # no-message: turns off printing of fails (and passes, but they're already off)
437 # message: turns on printing of passes (and fails, but they're already on)
409 438
410 proc runto { function args } { 439 proc runto { function args } {
411 global gdb_prompt 440 global gdb_prompt
412 global decimal 441 global decimal
413 442
414 delete_breakpoints 443 delete_breakpoints
415 444
416 if ![gdb_breakpoint $function [lindex $args 0]] { 445 # Default to "no-message".
446 set args "no-message $args"
447
448 set print_pass 0
449 set print_fail 1
450 set no_message_loc [lsearch -exact $args no-message]
451 set message_loc [lsearch -exact $args message]
452 # The last one to appear in args wins.
453 if { $no_message_loc > $message_loc } {
454 » set print_fail 0
455 } elseif { $message_loc > $no_message_loc } {
456 » set print_pass 1
457 }
458
459 set test_name "running to $function in runto"
460
461 # We need to use eval here to pass our varargs args to gdb_breakpoint
462 # which is also a varargs function.
463 # But we also have to be careful because $function may have multiple
464 # elements, and we don't want Tcl to move the remaining elements after
465 # the first to $args. That is why $function is wrapped in {}.
466 if ![eval gdb_breakpoint {$function} $args] {
417 return 0; 467 return 0;
418 } 468 }
419 469
420 gdb_run_cmd 470 gdb_run_cmd
421 471
422 # the "at foo.c:36" output we get with -g. 472 # the "at foo.c:36" output we get with -g.
423 # the "in func" output we get without -g. 473 # the "in func" output we get without -g.
424 gdb_expect 30 { 474 gdb_expect 30 {
425 -re "Break.* at .*:$decimal.*$gdb_prompt $" { 475 -re "Break.* at .*:$decimal.*$gdb_prompt $" {
476 if { $print_pass } {
477 pass $test_name
478 }
426 return 1 479 return 1
427 } 480 }
428 -re "Breakpoint \[0-9\]*, \[0-9xa-f\]* in .*$gdb_prompt $" { 481 -re "Breakpoint \[0-9\]*, \[0-9xa-f\]* in .*$gdb_prompt $" {
482 if { $print_pass } {
483 pass $test_name
484 }
429 return 1 485 return 1
430 } 486 }
431 -re "The target does not support running in non-stop mode.\r\n$gdb_promp t $" { 487 -re "The target does not support running in non-stop mode.\r\n$gdb_promp t $" {
432 » unsupported "Non-stop mode not supported" 488 » if { $print_fail } {
489 » » unsupported "Non-stop mode not supported"
490 » }
433 return 0 491 return 0
434 } 492 }
435 -re ".*A problem internal to GDB has been detected" { 493 -re ".*A problem internal to GDB has been detected" {
436 » fail "running to $function in runto (GDB internal error)" 494 » if { $print_fail } {
495 » » fail "$test_name (GDB internal error)"
496 » }
437 gdb_internal_error_resync 497 gdb_internal_error_resync
438 return 0 498 return 0
439 } 499 }
440 -re "$gdb_prompt $" { 500 -re "$gdb_prompt $" {
441 » fail "running to $function in runto" 501 » if { $print_fail } {
502 » » fail $test_name
503 » }
442 return 0 504 return 0
443 } 505 }
444 eof { 506 eof {
445 » fail "running to $function in runto (end of file)" 507 » if { $print_fail } {
508 » » fail "$test_name (eof)"
509 » }
446 return 0 510 return 0
447 } 511 }
448 timeout { 512 timeout {
449 » fail "running to $function in runto (timeout)" 513 » if { $print_fail } {
514 » » fail "$test_name (timeout)"
515 » }
450 return 0 516 return 0
451 } 517 }
452 } 518 }
453 return 1 519 return 1
454 } 520 }
455 521
456 # Ask gdb to run until we hit a breakpoint at main. 522 # Ask gdb to run until we hit a breakpoint at main.
457 # The case where the target uses stubs has to be handled
458 # specially--if it uses stubs, assuming we hit
459 # breakpoint() and just step out of the function.
460 # 523 #
461 # N.B. This function deletes all existing breakpoints. 524 # N.B. This function deletes all existing breakpoints.
462 # If you don't want that, use gdb_start_cmd. 525 # If you don't want that, use gdb_start_cmd.
463 526
464 proc runto_main { } { 527 proc runto_main { } {
465 global gdb_prompt 528 return [runto main no-message]
466 global decimal
467
468 if ![target_info exists gdb_stub] {
469 » return [runto main]
470 }» » »
471
472 delete_breakpoints
473
474 gdb_step_for_stub;
475
476 return 1
477 } 529 }
478 530
479 ### Continue, and expect to hit a breakpoint. 531 ### Continue, and expect to hit a breakpoint.
480 ### Report a pass or fail, depending on whether it seems to have 532 ### Report a pass or fail, depending on whether it seems to have
481 ### worked. Use NAME as part of the test name; each call to 533 ### worked. Use NAME as part of the test name; each call to
482 ### continue_to_breakpoint should use a NAME which is unique within 534 ### continue_to_breakpoint should use a NAME which is unique within
483 ### that test file. 535 ### that test file.
484 proc gdb_continue_to_breakpoint {name {location_pattern .*}} { 536 proc gdb_continue_to_breakpoint {name {location_pattern .*}} {
485 global gdb_prompt 537 global gdb_prompt
486 set full_name "continue to breakpoint: $name" 538 set full_name "continue to breakpoint: $name"
487 539
488 send_gdb "continue\n" 540 send_gdb "continue\n"
489 gdb_expect { 541 gdb_expect {
490 » -re "Breakpoint .* (at|in) $location_pattern\r\n$gdb_prompt $" { 542 » -re "(?:Breakpoint|Temporary breakpoint) .* (at|in) $location_pattern\r\ n$gdb_prompt $" {
491 pass $full_name 543 pass $full_name
492 } 544 }
493 -re ".*$gdb_prompt $" { 545 -re ".*$gdb_prompt $" {
494 fail $full_name 546 fail $full_name
495 } 547 }
496 timeout { 548 timeout {
497 fail "$full_name (timeout)" 549 fail "$full_name (timeout)"
498 } 550 }
499 } 551 }
500 } 552 }
(...skipping 18 matching lines...) Expand all
519 # ... 571 # ...
520 # -re ".*A problem internal to GDB has been detected" { 572 # -re ".*A problem internal to GDB has been detected" {
521 # gdb_internal_error_resync 573 # gdb_internal_error_resync
522 # } 574 # }
523 # ... 575 # ...
524 # } 576 # }
525 # 577 #
526 proc gdb_internal_error_resync {} { 578 proc gdb_internal_error_resync {} {
527 global gdb_prompt 579 global gdb_prompt
528 580
581 verbose -log "Resyncing due to internal error."
582
529 set count 0 583 set count 0
530 while {$count < 10} { 584 while {$count < 10} {
531 gdb_expect { 585 gdb_expect {
532 -re "Quit this debugging session\\? \\(y or n\\) $" { 586 -re "Quit this debugging session\\? \\(y or n\\) $" {
533 send_gdb "n\n" 587 send_gdb "n\n"
534 incr count 588 incr count
535 } 589 }
536 -re "Create a core file of GDB\\? \\(y or n\\) $" { 590 -re "Create a core file of GDB\\? \\(y or n\\) $" {
537 send_gdb "n\n" 591 send_gdb "n\n"
538 incr count 592 incr count
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 652
599 if [string match "*\[\r\n\]" $command] { 653 if [string match "*\[\r\n\]" $command] {
600 error "Invalid trailing newline in \"$message\" test" 654 error "Invalid trailing newline in \"$message\" test"
601 } 655 }
602 656
603 if [string match "*\[\r\n\]*" $message] { 657 if [string match "*\[\r\n\]*" $message] {
604 error "Invalid newline in \"$message\" test" 658 error "Invalid newline in \"$message\" test"
605 } 659 }
606 660
607 if {$use_gdb_stub 661 if {$use_gdb_stub
608 && [regexp -nocase {^\s*(r|run|star|start|at|att|atta|attac|attach)\M} \ 662 » && [regexp -nocase {^\s*(r|run|star|start|at|att|atta|attac|attach)\M} \
609 $command]} { 663 $command]} {
610 error "gdbserver does not support $command without extended-remote" 664 error "gdbserver does not support $command without extended-remote"
611 } 665 }
612 666
613 # TCL/EXPECT WART ALERT 667 # TCL/EXPECT WART ALERT
614 # Expect does something very strange when it receives a single braced 668 # Expect does something very strange when it receives a single braced
615 # argument. It splits it along word separators and performs substitutions. 669 # argument. It splits it along word separators and performs substitutions.
616 # This means that { "[ab]" } is evaluated as "[ab]", but { "\[ab\]" } is 670 # This means that { "[ab]" } is evaluated as "[ab]", but { "\[ab\]" } is
617 # evaluated as "\[ab\]". But that's not how TCL normally works; inside a 671 # evaluated as "\[ab\]". But that's not how TCL normally works; inside a
618 # double-quoted list item, "\[ab\]" is just a long way of representing 672 # double-quoted list item, "\[ab\]" is just a long way of representing
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 global timeout; 792 global timeout;
739 if [info exists timeout] { 793 if [info exists timeout] {
740 set tmt $timeout; 794 set tmt $timeout;
741 } else { 795 } else {
742 set tmt 60; 796 set tmt 60;
743 } 797 }
744 } 798 }
745 } 799 }
746 800
747 set code { 801 set code {
748 -re ".*A problem internal to GDB has been detected" { 802 » -re ".*A problem internal to GDB has been detected" {
749 fail "$message (GDB internal error)" 803 » fail "$message (GDB internal error)"
750 gdb_internal_error_resync 804 » gdb_internal_error_resync
751 } 805 » }
752 » -re "\\*\\*\\* DOSEXIT code.*" { 806 » -re "\\*\\*\\* DOSEXIT code.*" {
753 » if { $message != "" } { 807 » if { $message != "" } {
754 » » fail "$message"; 808 » » fail "$message";
755 » } 809 » }
756 » gdb_suppress_entire_file "GDB died"; 810 » gdb_suppress_entire_file "GDB died";
757 » set result -1; 811 » set result -1;
758 » } 812 » }
759 } 813 }
760 append code $processed_code 814 append code $processed_code
761 append code { 815 append code {
762 » -re "Ending remote debugging.*$gdb_prompt $" { 816 » -re "Ending remote debugging.*$gdb_prompt $" {
763 if ![isnative] then { 817 if ![isnative] then {
764 warning "Can`t communicate to remote target." 818 warning "Can`t communicate to remote target."
765 } 819 }
766 gdb_exit 820 gdb_exit
767 gdb_start 821 gdb_start
768 set result -1 822 set result -1
769 } 823 }
770 » -re "Undefined\[a-z\]* command:.*$gdb_prompt $" { 824 » -re "Undefined\[a-z\]* command:.*$gdb_prompt $" {
771 perror "Undefined command \"$command\"." 825 perror "Undefined command \"$command\"."
772 fail "$message" 826 » fail "$message"
773 set result 1 827 set result 1
774 } 828 }
775 » -re "Ambiguous command.*$gdb_prompt $" { 829 » -re "Ambiguous command.*$gdb_prompt $" {
776 perror "\"$command\" is not a unique command name." 830 perror "\"$command\" is not a unique command name."
777 fail "$message" 831 » fail "$message"
778 set result 1 832 set result 1
779 } 833 }
780 » -re "$inferior_exited_re with code \[0-9\]+.*$gdb_prompt $" { 834 » -re "$inferior_exited_re with code \[0-9\]+.*$gdb_prompt $" {
781 if ![string match "" $message] then { 835 if ![string match "" $message] then {
782 set errmsg "$message (the program exited)" 836 set errmsg "$message (the program exited)"
783 } else { 837 } else {
784 set errmsg "$command (the program exited)" 838 set errmsg "$command (the program exited)"
785 } 839 }
786 fail "$errmsg" 840 fail "$errmsg"
787 set result -1 841 set result -1
788 } 842 }
789 » -re "$inferior_exited_re normally.*$gdb_prompt $" { 843 » -re "$inferior_exited_re normally.*$gdb_prompt $" {
790 if ![string match "" $message] then { 844 if ![string match "" $message] then {
791 set errmsg "$message (the program exited)" 845 set errmsg "$message (the program exited)"
792 } else { 846 } else {
793 set errmsg "$command (the program exited)" 847 set errmsg "$command (the program exited)"
794 } 848 }
795 fail "$errmsg" 849 fail "$errmsg"
796 set result -1 850 set result -1
797 } 851 }
798 » -re "The program is not being run.*$gdb_prompt $" { 852 » -re "The program is not being run.*$gdb_prompt $" {
799 if ![string match "" $message] then { 853 if ![string match "" $message] then {
800 set errmsg "$message (the program is no longer running)" 854 set errmsg "$message (the program is no longer running)"
801 } else { 855 } else {
802 set errmsg "$command (the program is no longer running)" 856 set errmsg "$command (the program is no longer running)"
803 } 857 }
804 fail "$errmsg" 858 fail "$errmsg"
805 set result -1 859 set result -1
806 } 860 }
807 » -re "\r\n$gdb_prompt $" { 861 » -re "\r\n$gdb_prompt $" {
808 if ![string match "" $message] then { 862 if ![string match "" $message] then {
809 fail "$message" 863 fail "$message"
810 } 864 }
811 set result 1 865 set result 1
812 } 866 }
813 » "<return>" { 867 » "<return>" {
814 send_gdb "\n" 868 send_gdb "\n"
815 perror "Window too small." 869 perror "Window too small."
816 fail "$message" 870 » fail "$message"
817 set result -1 871 set result -1
818 } 872 }
819 -re "\\((y or n|y or \\\[n\\\]|\\\[y\\\] or n)\\) " { 873 -re "\\((y or n|y or \\\[n\\\]|\\\[y\\\] or n)\\) " {
820 send_gdb "n\n" 874 send_gdb "n\n"
821 gdb_expect -re "$gdb_prompt $" 875 gdb_expect -re "$gdb_prompt $"
822 fail "$message (got interactive prompt)" 876 fail "$message (got interactive prompt)"
823 set result -1 877 set result -1
824 } 878 }
825 -re "\\\[0\\\] cancel\r\n\\\[1\\\] all.*\r\n> $" { 879 -re "\\\[0\\\] cancel\r\n\\\[1\\\] all.*\r\n> $" {
826 send_gdb "0\n" 880 send_gdb "0\n"
827 gdb_expect -re "$gdb_prompt $" 881 gdb_expect -re "$gdb_prompt $"
828 fail "$message (got breakpoint menu)" 882 fail "$message (got breakpoint menu)"
829 set result -1 883 set result -1
830 } 884 }
831 » eof { 885 » eof {
832 » perror "Process no longer exists" 886 » perror "Process no longer exists"
833 » if { $message != "" } { 887 » if { $message != "" } {
834 » » fail "$message" 888 » » fail "$message"
835 » } 889 » }
836 » return -1 890 » return -1
837 } 891 }
838 » full_buffer { 892 » full_buffer {
839 perror "internal buffer is full." 893 perror "internal buffer is full."
840 fail "$message" 894 » fail "$message"
841 set result -1 895 set result -1
842 } 896 }
843 timeout { 897 timeout {
844 if ![string match "" $message] then { 898 if ![string match "" $message] then {
845 fail "$message (timeout)" 899 fail "$message (timeout)"
846 } 900 }
847 set result 1 901 set result 1
848 } 902 }
849 } 903 }
850 904
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
1448 1502
1449 return [skip_cplus_tests] 1503 return [skip_cplus_tests]
1450 } 1504 }
1451 1505
1452 # Return a 1 if I don't even want to try to test FORTRAN. 1506 # Return a 1 if I don't even want to try to test FORTRAN.
1453 1507
1454 proc skip_fortran_tests {} { 1508 proc skip_fortran_tests {} {
1455 return 0 1509 return 0
1456 } 1510 }
1457 1511

error: old chunk mismatch

OLDNEW
« no previous file with comments | « gdb/testsuite/lib/future.exp ('k') | gdb/testsuite/lib/gdbserver-support.exp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698