* testsuite patches
@ 1999-03-16 17:02 Mark Salter
1999-04-01 0:00 ` Stan Shebs
1999-04-01 0:00 ` Mark Salter
0 siblings, 2 replies; 4+ messages in thread
From: Mark Salter @ 1999-03-16 17:02 UTC (permalink / raw)
To: gdb-patches
Here are some patches I needed to apply to get the gdb
testsuite to work correctly on remote targets using
cygmon. The basic problem was that some of the tests
expected 'run' to work on a remote target and expected
programs to exit with a nice message. There's also an
unitialized char array in miscexprs.c
--Mark
Index: devo/gdb/testsuite/gdb.base/ena-dis-br.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/ena-dis-br.exp,v
retrieving revision 1.1
diff -p -r1.1 ena-dis-br.exp
*** ena-dis-br.exp 1999/01/08 23:37:32 1.1
--- ena-dis-br.exp 1999/03/16 20:57:05
***************
*** 1,4 ****
! # Copyright (C) 1997, 1998 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
--- 1,4 ----
! # Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
*************** if { [gdb_compile "${srcdir}/${subdir}/
*** 38,43 ****
--- 38,67 ----
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
+ proc rerun_to_main {} {
+ global gdb_prompt
+
+ if [target_info exists use_gdb_stub] {
+ gdb_run_cmd
+ gdb_expect {
+ -re ".*Breakpoint .*main .*$gdb_prompt $"\
+ {pass "rerun to main" ; return 0}
+ -re "$gdb_prompt $"\
+ {fail "rerun to main" ; return 0}
+ timeout {fail "(timeout) rerun to main" ; return 0}
+ }
+ } else {
+ send_gdb "run\n"
+ gdb_expect {
+ -re "Starting program.*$gdb_prompt $"\
+ {pass "rerun to main" ; return 0}
+ -re "$gdb_prompt $"\
+ {fail "rerun to main" ; return 0}
+ timeout {fail "(timeout) rerun to main" ; return 0}
+ }
+ }
+ }
+
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
*************** gdb_expect {
*** 137,168 ****
# Verify that we don't stop at a disabled breakpoint.
#
! send_gdb "continue\n"
! gdb_expect {
! -re ".*Program exited normally.*$gdb_prompt $"\
! {pass "no stop"}
! -re "$gdb_prompt $"\
! {fail "no stop"}
! timeout {fail "(timeout) no stop"}
! }
!
! send_gdb "run\n"
! gdb_expect {
! -re "Starting program.*$gdb_prompt $"\
! {pass "rerun to main"}
! -re "$gdb_prompt $"\
! {fail "rerun to main"}
! timeout {fail "(timeout) rerun to main"}
! }
!
! send_gdb "continue\n"
! gdb_expect {
! -re ".*Program exited normally.*$gdb_prompt $"\
! {pass "no stop at auto-disabled break marker2"}
! -re "$gdb_prompt $"\
! {fail "no stop at auto-disabled break marker2"}
! timeout {fail "(timeout) no stop at auto-disabled break marker2"}
! }
# Verify that we can set a breakpoint to be self-deleting after
# the first time it triggers.
--- 161,169 ----
# Verify that we don't stop at a disabled breakpoint.
#
! continue_to_exit "no stop"
! rerun_to_main
! continue_to_exit "no stop at auto-disabled break marker2"
# Verify that we can set a breakpoint to be self-deleting after
# the first time it triggers.
*************** gdb_expect {
*** 320,343 ****
{fail "info ignored break marker1"}
timeout {fail "(timeout) info ignored break marker1"}
}
-
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Program exited normally.*$gdb_prompt $"\
- {pass "no stop at ignored break marker1"}
- -re "$gdb_prompt $"\
- {fail "no stop at ignored break marker1"}
- timeout {fail "(timeout) no stop at ignored break marker1"}
- }
! send_gdb "run\n"
! gdb_expect {
! -re "Starting program.*$gdb_prompt $"\
! {pass "rerun to main"}
! -re "$gdb_prompt $"\
! {fail "rerun to main"}
! timeout {fail "(timeout) rerun to main"}
! }
send_gdb "continue\n"
gdb_expect {
--- 321,329 ----
{fail "info ignored break marker1"}
timeout {fail "(timeout) info ignored break marker1"}
}
! continue_to_exit "no stop at ignored break marker1"
! rerun_to_main
send_gdb "continue\n"
gdb_expect {
*************** gdb_expect {
*** 385,408 ****
{fail "info break marker1"}
timeout {fail "(timeout) info break marker2"}
}
-
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Program exited normally.*$gdb_prompt $"\
- {pass "no stop at ignored & auto-deleted break marker1"}
- -re "$gdb_prompt $"\
- {fail "no stop at ignored & auto-deleted break marker1"}
- timeout {fail "(timeout) no stop at ignored & auto-deleted break marker1"}
- }
! send_gdb "run\n"
! gdb_expect {
! -re "Starting program.*$gdb_prompt $"\
! {pass "rerun to main"}
! -re "$gdb_prompt $"\
! {fail "rerun to main"}
! timeout {fail "(timeout) rerun to main"}
! }
send_gdb "continue\n"
gdb_expect {
--- 371,379 ----
{fail "info break marker1"}
timeout {fail "(timeout) info break marker2"}
}
! continue_to_exit "no stop at ignored & auto-deleted break marker1"
! rerun_to_main
send_gdb "continue\n"
gdb_expect {
*************** gdb_expect {
*** 444,467 ****
{pass "disable break marker1"}
timeout {fail "(timeout) disable break marker1"}
}
-
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Program exited normally.*$gdb_prompt $"\
- {pass "no stop at ignored & disabled break marker1"}
- -re "$gdb_prompt $"\
- {fail "no stop at ignored & disabled break marker1"}
- timeout {fail "(timeout) no stop at ignored & disabled break marker1"}
- }
! send_gdb "run\n"
! gdb_expect {
! -re "Starting program.*$gdb_prompt $"\
! {pass "rerun to main"}
! -re "$gdb_prompt $"\
! {fail "rerun to main"}
! timeout {fail "(timeout) rerun to main"}
! }
send_gdb "info break $expect_out(1,string)\n"
gdb_expect {
--- 415,423 ----
{pass "disable break marker1"}
timeout {fail "(timeout) disable break marker1"}
}
! continue_to_exit "no stop at ignored & disabled break marker1"
! rerun_to_main
send_gdb "info break $expect_out(1,string)\n"
gdb_expect {
Index: devo/gdb/testsuite/gdb.base/ending-run.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/ending-run.exp,v
retrieving revision 1.1
diff -p -r1.1 ending-run.exp
*** ending-run.exp 1999/01/08 23:40:55 1.1
--- ending-run.exp 1999/03/16 20:57:05
***************
*** 1,4 ****
! # Copyright (C) 1997, 1998 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
--- 1,4 ----
! # Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
*************** gdb_test "b 26" ".*Breakpoint.*3.*" ""
*** 61,67 ****
# Expect to hit the bp at line "1", but symbolize this
# as line "8". Then try to clear it--this should work.
#
! gdb_test "r" ".*Breakpoint.*1.*callee.*8.*" ""
gdb_test "cle" ".*Deleted breakpoints 2 1.*" "clear worked"
send_gdb "i b\n"
gdb_expect {
--- 61,71 ----
# Expect to hit the bp at line "1", but symbolize this
# as line "8". Then try to clear it--this should work.
#
! if [target_info exists use_gdb_stub] {
! gdb_test "continue" ".*Breakpoint.*1.*callee.*8.*" ""
! } else {
! gdb_test "r" ".*Breakpoint.*1.*callee.*8.*" ""
! }
gdb_test "cle" ".*Deleted breakpoints 2 1.*" "clear worked"
send_gdb "i b\n"
gdb_expect {
*************** gdb_expect {
*** 150,159 ****
timeout { fail "hang or timeout on step at end 1" }
}
! gdb_test "n" ".*Single.*Program exited.*" "step to end of run"
! set timeout $old_timeout
! gdb_test "n" ".*The program is not being run.*" "don't step after run"
set exec_output [remote_exec host "ls core"]
--- 154,165 ----
timeout { fail "hang or timeout on step at end 1" }
}
! if ![target_info exists use_gdb_stub] {
! gdb_test "n" ".*Single.*Program exited.*" "step to end of run"
! set timeout $old_timeout
! gdb_test "n" ".*The program is not being run.*" "don't step after run"
! }
set exec_output [remote_exec host "ls core"]
Index: devo/gdb/testsuite/gdb.base/miscexprs.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/miscexprs.c,v
retrieving revision 1.2
diff -p -r1.2 miscexprs.c
*** miscexprs.c 1999/01/04 15:34:31 1.2
--- miscexprs.c 1999/03/16 20:57:05
*************** struct {
*** 62,68 ****
short s[400];
} sbig;
ibig.i[100] = 5;
! cbig.c[100] = 'A';
fbig.f[100] = 11.99999;
dbig.d[202] = 9.99999999;
sbig.s[90] = 255;
--- 62,68 ----
short s[400];
} sbig;
ibig.i[100] = 5;
! cbig.c[100] = 'A'; cbig.c[0] = 0;
fbig.f[100] = 11.99999;
dbig.d[202] = 9.99999999;
sbig.s[90] = 255;
Index: devo/gdb/testsuite/gdb.base/step-test.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/step-test.exp,v
retrieving revision 1.3
diff -p -r1.3 step-test.exp
*** step-test.exp 1999/03/09 03:55:52 1.3
--- step-test.exp 1999/03/16 20:57:05
***************
*** 1,4 ****
! # Copyright (C) 1997, 1998 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
--- 1,4 ----
! # Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
*************** gdb_test "step" \
*** 148,153 ****
".*step-test.exp: arrive here 1.*" \
"large struct by value"
! gdb_test "continue" ".*Program exited normally.*" "run to finish"
return 0
--- 148,153 ----
".*step-test.exp: arrive here 1.*" \
"large struct by value"
! continue_to_exit "run to finish"
return 0
Index: devo/gdb/testsuite/lib/gdb.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.135
diff -p -r1.135 gdb.exp
*** gdb.exp 1999/03/09 03:55:58 1.135
--- gdb.exp 1999/03/16 20:57:06
*************** proc runto_main { } {
*** 313,318 ****
--- 313,372 ----
return 1
}
+ #
+ # continue_to_exit MESSAGE -- test that continuing gdb will cause program to exit.
+ #
+ # MESSAGE is the message to be incorproated into pass/fail messages.
+ #
+ # The case where the target uses stubs has to be handled specially. If a
+ # stub is used, we set a breakpoint at exit because we cannot rely on
+ # exit() behavior of a remote target.
+ #
+ # Returns:
+ # 1 if the test failed,
+ # 0 if the test passes,
+ # -1 if there was an internal error.
+ #
+ proc continue_to_exit { message } {
+ global gdb_prompt
+ global decimal
+
+ if [target_info exists use_gdb_stub] {
+ send_gdb "break exit\n"
+ gdb_expect {
+ -re "Breakpoint (\[0-9\]*) at .*: file .*, line $decimal.\r\n$gdb_prompt $" {}
+ -re "Breakpoint (\[0-9\]*): file .*, line $decimal.\r\n$gdb_prompt $" {}
+ -re "Breakpoint (\[0-9\]*) at .*$gdb_prompt $" {}
+ -re "$gdb_prompt $" { fail "setting breakpoint at exit" ; return -1 }
+ timeout { fail "setting breakpoint at exit (timeout)" ; return -1 }
+ }
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing..*Breakpoint .*exit \[(\].*=\[0-9\]+\[)\].*$gdb_prompt $"\
+ {pass "$message"}
+ -re "$gdb_prompt $"\
+ {fail "$message" ; return 1 }
+ timeout {fail "(timeout) $message" ; return 1 }
+ }
+ send_gdb "delete $expect_out(1,string)\n"
+ gdb_expect {
+ -re "$gdb_prompt $" {}
+ timeout { fail "deleting breakpoint at exit (timeout)" ; return -1 }
+ }
+ } else {
+ send_gdb "continue\n"
+ gdb_expect {
+ -re ".*Program exited normally.*$gdb_prompt $"\
+ {pass "$message"}
+ -re "$gdb_prompt $"\
+ {fail "$message"}
+ timeout {fail "(timeout) $message"}
+ }
+ }
+ return 0
+ }
+
+
# gdb_test COMMAND PATTERN MESSAGE -- send a command to gdb; test the result.
#
# COMMAND is the command to execute, send to GDB with send_gdb. If
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: testsuite patches
1999-03-16 17:02 testsuite patches Mark Salter
@ 1999-04-01 0:00 ` Stan Shebs
1999-03-16 18:08 ` Stan Shebs
1999-04-01 0:00 ` Mark Salter
1 sibling, 1 reply; 4+ messages in thread
From: Stan Shebs @ 1999-04-01 0:00 UTC (permalink / raw)
To: msalter; +Cc: gdb-patches
Date: Tue, 16 Mar 1999 20:02:28 -0500
From: Mark Salter <msalter@cygnus.com>
Here are some patches I needed to apply to get the gdb
testsuite to work correctly on remote targets using
cygmon. The basic problem was that some of the tests
expected 'run' to work on a remote target and expected
programs to exit with a nice message. There's also an
unitialized char array in miscexprs.c
Thanks Mark! I checked in a fix for miscexprs.c earlier today,
but the rest of the changes will be really helpful.
(For you net people who might be wondering what this is all about,
Mark Salter is our board support expert, and he's been working on a
board support package + ROM monitor named CygMon. Although this
package hasn't been released to the net, there is sentiment within
Cygnus for making such a release, since it would really help people
get up and running with GNU tools on embedded systems, and spread the
Cygnus-or-whatever-it-will-become :-) name around more. If you think
the net release would be a great idea, send me mail and I'll forward
to the appropriate decisionmakers.)
Stan
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: testsuite patches
1999-04-01 0:00 ` Stan Shebs
@ 1999-03-16 18:08 ` Stan Shebs
0 siblings, 0 replies; 4+ messages in thread
From: Stan Shebs @ 1999-03-16 18:08 UTC (permalink / raw)
To: msalter; +Cc: gdb-patches
Date: Tue, 16 Mar 1999 20:02:28 -0500
From: Mark Salter <msalter@cygnus.com>
Here are some patches I needed to apply to get the gdb
testsuite to work correctly on remote targets using
cygmon. The basic problem was that some of the tests
expected 'run' to work on a remote target and expected
programs to exit with a nice message. There's also an
unitialized char array in miscexprs.c
Thanks Mark! I checked in a fix for miscexprs.c earlier today,
but the rest of the changes will be really helpful.
(For you net people who might be wondering what this is all about,
Mark Salter is our board support expert, and he's been working on a
board support package + ROM monitor named CygMon. Although this
package hasn't been released to the net, there is sentiment within
Cygnus for making such a release, since it would really help people
get up and running with GNU tools on embedded systems, and spread the
Cygnus-or-whatever-it-will-become :-) name around more. If you think
the net release would be a great idea, send me mail and I'll forward
to the appropriate decisionmakers.)
Stan
^ permalink raw reply [flat|nested] 4+ messages in thread
* testsuite patches
1999-03-16 17:02 testsuite patches Mark Salter
1999-04-01 0:00 ` Stan Shebs
@ 1999-04-01 0:00 ` Mark Salter
1 sibling, 0 replies; 4+ messages in thread
From: Mark Salter @ 1999-04-01 0:00 UTC (permalink / raw)
To: gdb-patches
Here are some patches I needed to apply to get the gdb
testsuite to work correctly on remote targets using
cygmon. The basic problem was that some of the tests
expected 'run' to work on a remote target and expected
programs to exit with a nice message. There's also an
unitialized char array in miscexprs.c
--Mark
Index: devo/gdb/testsuite/gdb.base/ena-dis-br.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/ena-dis-br.exp,v
retrieving revision 1.1
diff -p -r1.1 ena-dis-br.exp
*** ena-dis-br.exp 1999/01/08 23:37:32 1.1
--- ena-dis-br.exp 1999/03/16 20:57:05
***************
*** 1,4 ****
! # Copyright (C) 1997, 1998 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
--- 1,4 ----
! # Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
*************** if { [gdb_compile "${srcdir}/${subdir}/
*** 38,43 ****
--- 38,67 ----
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
+ proc rerun_to_main {} {
+ global gdb_prompt
+
+ if [target_info exists use_gdb_stub] {
+ gdb_run_cmd
+ gdb_expect {
+ -re ".*Breakpoint .*main .*$gdb_prompt $"\
+ {pass "rerun to main" ; return 0}
+ -re "$gdb_prompt $"\
+ {fail "rerun to main" ; return 0}
+ timeout {fail "(timeout) rerun to main" ; return 0}
+ }
+ } else {
+ send_gdb "run\n"
+ gdb_expect {
+ -re "Starting program.*$gdb_prompt $"\
+ {pass "rerun to main" ; return 0}
+ -re "$gdb_prompt $"\
+ {fail "rerun to main" ; return 0}
+ timeout {fail "(timeout) rerun to main" ; return 0}
+ }
+ }
+ }
+
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
*************** gdb_expect {
*** 137,168 ****
# Verify that we don't stop at a disabled breakpoint.
#
! send_gdb "continue\n"
! gdb_expect {
! -re ".*Program exited normally.*$gdb_prompt $"\
! {pass "no stop"}
! -re "$gdb_prompt $"\
! {fail "no stop"}
! timeout {fail "(timeout) no stop"}
! }
!
! send_gdb "run\n"
! gdb_expect {
! -re "Starting program.*$gdb_prompt $"\
! {pass "rerun to main"}
! -re "$gdb_prompt $"\
! {fail "rerun to main"}
! timeout {fail "(timeout) rerun to main"}
! }
!
! send_gdb "continue\n"
! gdb_expect {
! -re ".*Program exited normally.*$gdb_prompt $"\
! {pass "no stop at auto-disabled break marker2"}
! -re "$gdb_prompt $"\
! {fail "no stop at auto-disabled break marker2"}
! timeout {fail "(timeout) no stop at auto-disabled break marker2"}
! }
# Verify that we can set a breakpoint to be self-deleting after
# the first time it triggers.
--- 161,169 ----
# Verify that we don't stop at a disabled breakpoint.
#
! continue_to_exit "no stop"
! rerun_to_main
! continue_to_exit "no stop at auto-disabled break marker2"
# Verify that we can set a breakpoint to be self-deleting after
# the first time it triggers.
*************** gdb_expect {
*** 320,343 ****
{fail "info ignored break marker1"}
timeout {fail "(timeout) info ignored break marker1"}
}
-
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Program exited normally.*$gdb_prompt $"\
- {pass "no stop at ignored break marker1"}
- -re "$gdb_prompt $"\
- {fail "no stop at ignored break marker1"}
- timeout {fail "(timeout) no stop at ignored break marker1"}
- }
! send_gdb "run\n"
! gdb_expect {
! -re "Starting program.*$gdb_prompt $"\
! {pass "rerun to main"}
! -re "$gdb_prompt $"\
! {fail "rerun to main"}
! timeout {fail "(timeout) rerun to main"}
! }
send_gdb "continue\n"
gdb_expect {
--- 321,329 ----
{fail "info ignored break marker1"}
timeout {fail "(timeout) info ignored break marker1"}
}
! continue_to_exit "no stop at ignored break marker1"
! rerun_to_main
send_gdb "continue\n"
gdb_expect {
*************** gdb_expect {
*** 385,408 ****
{fail "info break marker1"}
timeout {fail "(timeout) info break marker2"}
}
-
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Program exited normally.*$gdb_prompt $"\
- {pass "no stop at ignored & auto-deleted break marker1"}
- -re "$gdb_prompt $"\
- {fail "no stop at ignored & auto-deleted break marker1"}
- timeout {fail "(timeout) no stop at ignored & auto-deleted break marker1"}
- }
! send_gdb "run\n"
! gdb_expect {
! -re "Starting program.*$gdb_prompt $"\
! {pass "rerun to main"}
! -re "$gdb_prompt $"\
! {fail "rerun to main"}
! timeout {fail "(timeout) rerun to main"}
! }
send_gdb "continue\n"
gdb_expect {
--- 371,379 ----
{fail "info break marker1"}
timeout {fail "(timeout) info break marker2"}
}
! continue_to_exit "no stop at ignored & auto-deleted break marker1"
! rerun_to_main
send_gdb "continue\n"
gdb_expect {
*************** gdb_expect {
*** 444,467 ****
{pass "disable break marker1"}
timeout {fail "(timeout) disable break marker1"}
}
-
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Program exited normally.*$gdb_prompt $"\
- {pass "no stop at ignored & disabled break marker1"}
- -re "$gdb_prompt $"\
- {fail "no stop at ignored & disabled break marker1"}
- timeout {fail "(timeout) no stop at ignored & disabled break marker1"}
- }
! send_gdb "run\n"
! gdb_expect {
! -re "Starting program.*$gdb_prompt $"\
! {pass "rerun to main"}
! -re "$gdb_prompt $"\
! {fail "rerun to main"}
! timeout {fail "(timeout) rerun to main"}
! }
send_gdb "info break $expect_out(1,string)\n"
gdb_expect {
--- 415,423 ----
{pass "disable break marker1"}
timeout {fail "(timeout) disable break marker1"}
}
! continue_to_exit "no stop at ignored & disabled break marker1"
! rerun_to_main
send_gdb "info break $expect_out(1,string)\n"
gdb_expect {
Index: devo/gdb/testsuite/gdb.base/ending-run.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/ending-run.exp,v
retrieving revision 1.1
diff -p -r1.1 ending-run.exp
*** ending-run.exp 1999/01/08 23:40:55 1.1
--- ending-run.exp 1999/03/16 20:57:05
***************
*** 1,4 ****
! # Copyright (C) 1997, 1998 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
--- 1,4 ----
! # Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
*************** gdb_test "b 26" ".*Breakpoint.*3.*" ""
*** 61,67 ****
# Expect to hit the bp at line "1", but symbolize this
# as line "8". Then try to clear it--this should work.
#
! gdb_test "r" ".*Breakpoint.*1.*callee.*8.*" ""
gdb_test "cle" ".*Deleted breakpoints 2 1.*" "clear worked"
send_gdb "i b\n"
gdb_expect {
--- 61,71 ----
# Expect to hit the bp at line "1", but symbolize this
# as line "8". Then try to clear it--this should work.
#
! if [target_info exists use_gdb_stub] {
! gdb_test "continue" ".*Breakpoint.*1.*callee.*8.*" ""
! } else {
! gdb_test "r" ".*Breakpoint.*1.*callee.*8.*" ""
! }
gdb_test "cle" ".*Deleted breakpoints 2 1.*" "clear worked"
send_gdb "i b\n"
gdb_expect {
*************** gdb_expect {
*** 150,159 ****
timeout { fail "hang or timeout on step at end 1" }
}
! gdb_test "n" ".*Single.*Program exited.*" "step to end of run"
! set timeout $old_timeout
! gdb_test "n" ".*The program is not being run.*" "don't step after run"
set exec_output [remote_exec host "ls core"]
--- 154,165 ----
timeout { fail "hang or timeout on step at end 1" }
}
! if ![target_info exists use_gdb_stub] {
! gdb_test "n" ".*Single.*Program exited.*" "step to end of run"
! set timeout $old_timeout
! gdb_test "n" ".*The program is not being run.*" "don't step after run"
! }
set exec_output [remote_exec host "ls core"]
Index: devo/gdb/testsuite/gdb.base/miscexprs.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/miscexprs.c,v
retrieving revision 1.2
diff -p -r1.2 miscexprs.c
*** miscexprs.c 1999/01/04 15:34:31 1.2
--- miscexprs.c 1999/03/16 20:57:05
*************** struct {
*** 62,68 ****
short s[400];
} sbig;
ibig.i[100] = 5;
! cbig.c[100] = 'A';
fbig.f[100] = 11.99999;
dbig.d[202] = 9.99999999;
sbig.s[90] = 255;
--- 62,68 ----
short s[400];
} sbig;
ibig.i[100] = 5;
! cbig.c[100] = 'A'; cbig.c[0] = 0;
fbig.f[100] = 11.99999;
dbig.d[202] = 9.99999999;
sbig.s[90] = 255;
Index: devo/gdb/testsuite/gdb.base/step-test.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/step-test.exp,v
retrieving revision 1.3
diff -p -r1.3 step-test.exp
*** step-test.exp 1999/03/09 03:55:52 1.3
--- step-test.exp 1999/03/16 20:57:05
***************
*** 1,4 ****
! # Copyright (C) 1997, 1998 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
--- 1,4 ----
! # Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
*************** gdb_test "step" \
*** 148,153 ****
".*step-test.exp: arrive here 1.*" \
"large struct by value"
! gdb_test "continue" ".*Program exited normally.*" "run to finish"
return 0
--- 148,153 ----
".*step-test.exp: arrive here 1.*" \
"large struct by value"
! continue_to_exit "run to finish"
return 0
Index: devo/gdb/testsuite/lib/gdb.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.135
diff -p -r1.135 gdb.exp
*** gdb.exp 1999/03/09 03:55:58 1.135
--- gdb.exp 1999/03/16 20:57:06
*************** proc runto_main { } {
*** 313,318 ****
--- 313,372 ----
return 1
}
+ #
+ # continue_to_exit MESSAGE -- test that continuing gdb will cause program to exit.
+ #
+ # MESSAGE is the message to be incorproated into pass/fail messages.
+ #
+ # The case where the target uses stubs has to be handled specially. If a
+ # stub is used, we set a breakpoint at exit because we cannot rely on
+ # exit() behavior of a remote target.
+ #
+ # Returns:
+ # 1 if the test failed,
+ # 0 if the test passes,
+ # -1 if there was an internal error.
+ #
+ proc continue_to_exit { message } {
+ global gdb_prompt
+ global decimal
+
+ if [target_info exists use_gdb_stub] {
+ send_gdb "break exit\n"
+ gdb_expect {
+ -re "Breakpoint (\[0-9\]*) at .*: file .*, line $decimal.\r\n$gdb_prompt $" {}
+ -re "Breakpoint (\[0-9\]*): file .*, line $decimal.\r\n$gdb_prompt $" {}
+ -re "Breakpoint (\[0-9\]*) at .*$gdb_prompt $" {}
+ -re "$gdb_prompt $" { fail "setting breakpoint at exit" ; return -1 }
+ timeout { fail "setting breakpoint at exit (timeout)" ; return -1 }
+ }
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing..*Breakpoint .*exit \[(\].*=\[0-9\]+\[)\].*$gdb_prompt $"\
+ {pass "$message"}
+ -re "$gdb_prompt $"\
+ {fail "$message" ; return 1 }
+ timeout {fail "(timeout) $message" ; return 1 }
+ }
+ send_gdb "delete $expect_out(1,string)\n"
+ gdb_expect {
+ -re "$gdb_prompt $" {}
+ timeout { fail "deleting breakpoint at exit (timeout)" ; return -1 }
+ }
+ } else {
+ send_gdb "continue\n"
+ gdb_expect {
+ -re ".*Program exited normally.*$gdb_prompt $"\
+ {pass "$message"}
+ -re "$gdb_prompt $"\
+ {fail "$message"}
+ timeout {fail "(timeout) $message"}
+ }
+ }
+ return 0
+ }
+
+
# gdb_test COMMAND PATTERN MESSAGE -- send a command to gdb; test the result.
#
# COMMAND is the command to execute, send to GDB with send_gdb. If
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~1999-04-01 0:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-03-16 17:02 testsuite patches Mark Salter
1999-04-01 0:00 ` Stan Shebs
1999-03-16 18:08 ` Stan Shebs
1999-04-01 0:00 ` Mark Salter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox