Fix mi_expect_stop for non-zero exit codes
authorSimon Marchi <simon.marchi@ericsson.com>
Tue, 13 May 2014 21:07:33 +0000 (17:07 -0400)
committerSimon Marchi <simon.marchi@ericsson.com>
Thu, 15 May 2014 19:41:36 +0000 (15:41 -0400)
The message displayed by gdb is different when the inferior exits with
zero and non-zero values, this fix takes that into account.

gdb/testsuite/ChangeLog:
2014-05-13  Simon Marchi  <simon.marchi@ericsson.com>

* lib/mi-support.exp (mi_expect_stop): Expect message for
inferiors that exit with non-zero exit code.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/mi-support.exp

index 836deb7..aaab227 100644 (file)
@@ -1,3 +1,8 @@
+2014-05-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+       * lib/mi-support.exp (mi_expect_stop): Expect message for
+       inferiors that exit with non-zero exit code.
+
 2014-05-14  Yao Qi  <yao@codesourcery.com>
 
        * gdb.mi/mi-file.exp (test_file_list_exec_source_file): Don't
index ad58775..4478ba0 100644 (file)
@@ -1068,6 +1068,20 @@ proc mi_expect_stop { reason func args file line extra test } {
        }
        return
     }
+    if { $reason == "exited" } {
+       gdb_expect {
+           -re "\\*stopped,reason=\"exited\",exit-code=\"\[0-7\]+\"\r\n$prompt_re" {
+               pass "$test"
+           }
+           -re ".*$mi_gdb_prompt$" {
+               fail "$test (inferior not stopped)"
+           }
+           timeout {
+               fail "$test (unknown output after running)"
+           }
+       }
+       return
+    }
 
     if { $reason == "solib-event" } {
        set pattern "\\*stopped,reason=\"solib-event\",thread-id=\"$decimal\",stopped-threads=$any\r\n($thread_selected_re|$breakpoint_re)*$prompt_re"