OSDN Git Service

2002-05-06 Michael Snyder <msnyder@redhat.com>
authormsnyder <msnyder>
Tue, 7 May 2002 00:45:40 +0000 (00:45 +0000)
committermsnyder <msnyder>
Tue, 7 May 2002 00:45:40 +0000 (00:45 +0000)
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.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/a2-run.exp
gdb/testsuite/gdb.c++/method.exp
gdb/testsuite/lib/gdb.exp

index 6c35655..ef64d4f 100644 (file)
@@ -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>
 
index f822f24..fbc7044 100644 (file)
@@ -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
index 8deafa8..acd51b9 100644 (file)
@@ -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)" }
+}
+
index e476599..303c3c5 100644 (file)
@@ -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;