aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>2002-05-07 00:45:46 +0000
committerMichael Snyder <msnyder@vmware.com>2002-05-07 00:45:46 +0000
commitf1c47eb23810315ee8b51dc0ea0bdf7b6eb3caa9 (patch)
tree5934fe490e6add8235433a869b80da1459453666
parentb491616acb5462a3694160ffef6413c160fed10a (diff)
downloadgdb-f1c47eb23810315ee8b51dc0ea0bdf7b6eb3caa9.zip
gdb-f1c47eb23810315ee8b51dc0ea0bdf7b6eb3caa9.tar.gz
gdb-f1c47eb23810315ee8b51dc0ea0bdf7b6eb3caa9.tar.bz2
2002-05-06 Michael Snyder <msnyder@redhat.com>
Enable the "needs_status_wrapper" testsuite feature. * lib/gdb.exp (gdb_wrapper_init): New procedure. (gdb_compile): Conditionally call gdb_wrapper_init. * gdb.base/a2-run.exp: Recognize output from status wrapper. * gdb.c++/method.exp: Recognize output from status wrapper.
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.base/a2-run.exp3
-rw-r--r--gdb/testsuite/gdb.c++/method.exp15
-rw-r--r--gdb/testsuite/lib/gdb.exp35
4 files changed, 58 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 6c35655..ef64d4f 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2002-05-06 Michael Snyder <msnyder@redhat.com>
+
+ Enable the "needs_status_wrapper" testsuite feature.
+ * lib/gdb.exp (gdb_wrapper_init): New procedure.
+ (gdb_compile): Conditionally call gdb_wrapper_init.
+ * gdb.base/a2-run.exp: Recognize output from status wrapper.
+ * gdb.c++/method.exp: Recognize output from status wrapper.
+
2002-05-06 Ben Elliston <bje@redhat.com>
From Graydon Hoare <graydon@redhat.com>
diff --git a/gdb/testsuite/gdb.base/a2-run.exp b/gdb/testsuite/gdb.base/a2-run.exp
index f822f24..fbc7044 100644
--- a/gdb/testsuite/gdb.base/a2-run.exp
+++ b/gdb/testsuite/gdb.base/a2-run.exp
@@ -80,6 +80,9 @@ if [istarget "*-*-vxworks*"] then {
-re ".*usage: factorial <number>.*Program exited with code 01.*$gdb_prompt $" {
pass "run \"$testfile\" with no args"
}
+ -re ".*usage: factorial <number>.* EXIT code 1.*Program exited normally.*$gdb_prompt $" {
+ pass "run \"$testfile\" with no args (exit wrapper)"
+ }
-re ".*$gdb_prompt $" {
fail "run \"$testfile\" with no args"
verbose "expect_out is $expect_out(buffer)" 2
diff --git a/gdb/testsuite/gdb.c++/method.exp b/gdb/testsuite/gdb.c++/method.exp
index 8deafa8..acd51b9 100644
--- a/gdb/testsuite/gdb.c++/method.exp
+++ b/gdb/testsuite/gdb.c++/method.exp
@@ -180,6 +180,15 @@ gdb_expect {
timeout { fail "(timeout) ptype A" }
}
-gdb_test "cont" \
- "Continuing.\r\n\r\nProgram exited normally." \
- "finish program"
+send_gdb "cont\n"
+gdb_expect {
+ -re "Continuing\r\n\r\nProgram exited normally.*$gdb_prompt $" {
+ pass "finish program"
+ }
+ -re "Continuing.* EXIT code 0.*Program exited normally.*$gdb_prompt $" {
+ pass "finish program (exit wrapper)"
+ }
+ -re ".*$gdb_prompt $" { fail "finish program" }
+ default:{ fail "finish program (timeout)" }
+}
+
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index e476599..303c3c5 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -1092,8 +1092,34 @@ proc gdb_preprocess {source dest args} {
return $result;
}
+set gdb_wrapper_initialized 0
+
+proc gdb_wrapper_init { args } {
+ global gdb_wrapper_initialized;
+ global gdb_wrapper_file;
+ global gdb_wrapper_flags;
+
+ if { $gdb_wrapper_initialized == 1 } { return; }
+
+ if {[target_info exists needs_status_wrapper] && \
+ [target_info needs_status_wrapper] != "0" && \
+ ![info exists gdb_wrapper_file]} {
+ set result [build_wrapper "testglue.o"];
+ if { $result != "" } {
+ set gdb_wrapper_file [lindex $result 0];
+ set gdb_wrapper_flags [lindex $result 1];
+ } else {
+ warning "Status wrapper failed to build."
+ }
+ }
+ set gdb_wrapper_initialized 1
+}
+
proc gdb_compile {source dest type options} {
global GDB_TESTCASE_OPTIONS;
+ global gdb_wrapper_file;
+ global gdb_wrapper_flags;
+ global gdb_wrapper_initialized;
if [target_info exists gdb_stub] {
set options2 { "additional_flags=-Dusestubs" }
@@ -1111,6 +1137,15 @@ proc gdb_compile {source dest type options} {
verbose "options are $options"
verbose "source is $source $dest $type $options"
+ if { $gdb_wrapper_initialized == 0 } { gdb_wrapper_init }
+
+ if {[target_info exists needs_status_wrapper] && \
+ [target_info needs_status_wrapper] != "0" && \
+ [info exists gdb_wrapper_file]} {
+ lappend options "libs=${gdb_wrapper_file}"
+ lappend options "ldflags=${gdb_wrapper_flags}"
+ }
+
set result [target_compile $source $dest $type $options];
regsub "\[\r\n\]*$" "$result" "" result;
regsub "^\[\r\n\]*" "$result" "" result;