aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Polacek <mpolacek@sourceware.org>2011-05-12 07:13:23 +0000
committerMarek Polacek <mpolacek@sourceware.org>2011-05-12 07:13:23 +0000
commit10483e8e4e96e64cd488c4481aa960925ff1a335 (patch)
treee68d998d46705fa9bc3bf4d37161f91ea1895022
parentdb1d9305a59ef3b016c9c78311f8c915854f552c (diff)
downloadgdb-10483e8e4e96e64cd488c4481aa960925ff1a335.zip
gdb-10483e8e4e96e64cd488c4481aa960925ff1a335.tar.gz
gdb-10483e8e4e96e64cd488c4481aa960925ff1a335.tar.bz2
Fix races in gdb.mi/mi-basics.exp
-rw-r--r--gdb/testsuite/ChangeLog9
-rw-r--r--gdb/testsuite/gdb.mi/mi-basics.exp53
2 files changed, 25 insertions, 37 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d855ea2..de5e67a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2011-05-12 Marek Polacek <mpolacek@redhat.com>
+
+ * gdb.mi/mi-basics.exp: Fix races. Honour the
+ `test_exec_and_symbol_mi_operatons' return value.
+ (test_mi_interpreter_selection): Use mi_gdb_test instead of
+ gdb_test_multiple.
+ (test_exec_and_symbol_mi_operatons): Likewise.
+ (test_path_specification): Likewise.
+
2011-05-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* lib/gdb.exp (gdb_rename_execfile): Remove catch wrappers.
diff --git a/gdb/testsuite/gdb.mi/mi-basics.exp b/gdb/testsuite/gdb.mi/mi-basics.exp
index d65cef8..21d7aa8 100644
--- a/gdb/testsuite/gdb.mi/mi-basics.exp
+++ b/gdb/testsuite/gdb.mi/mi-basics.exp
@@ -60,18 +60,10 @@ proc test_mi_interpreter_selection {} {
# All this test expects is to get the prompt back
# with no syntax error message
- gdb_test_multiple "-gdb-version" "acceptance of MI operations" {
- -re "GNU gdb .*\r\n$mi_gdb_prompt$" {
- pass "acceptance of MI operations"
- return 1
- }
- -re ".*\r\n$mi_gdb_prompt$" {
- fail "acceptance of MI operations"
- }
- -re "Undefined command.*$gdb_prompt $" {
- fail "acceptance of MI operations"
- }
- }
+ if ![mi_gdb_test "-gdb-version" "~\"GNU gdb.*" "acceptance of MI operations"] {
+ return 1
+ }
+
note "Skipping all other MI tests."
return 0
}
@@ -84,19 +76,11 @@ proc test_exec_and_symbol_mi_operatons {} {
# Tests:
# -file-exec-and-symbols
- # Can't use mi_gdb_test as if this doesn't work,
- # we must give up on the whole test file
- gdb_test_multiple "-file-exec-and-symbols ${binfile}" \
- "-file-exec-and-symbols ${binfile}" {
- -re "\[\r\n\]*\\\^done\r\n$mi_gdb_prompt$" {
- pass "file-exec-and-symbols operation"
- }
- timeout {
- fail "file-exec-and-symbols operation (timeout)"
- note "Skipping all other MI tests."
- return 0
- }
- }
+ if [mi_gdb_test "-file-exec-and-symbols ${binfile}" "\\\^done" \
+ "file-exec-and-symbols operation"] {
+ note "Skipping all other MI tests."
+ return 0
+ }
# The following is not used by mi-support.exp, but we test here so
# we get done with loading a program basics.
@@ -121,7 +105,8 @@ proc test_exec_and_symbol_mi_operatons {} {
"\\\^done" \
"file-symbol-file operation"
- # FIXME: if we cannot load we have to skip all other tests.
+ # We need to return != 0.
+ return 1
}
proc test_breakpoints_deletion {} {
@@ -199,6 +184,7 @@ proc test_path_specification {} {
global subdir
global escapedobjdir
global envirodir
+ global expect_out
# Add to the path, display, then reset
# Tests:
@@ -207,15 +193,8 @@ proc test_path_specification {} {
# -environment-path -r dir
# -environment-path -r
- gdb_test_multiple "-environment-path" "-environment-path" {
- -re "\\\^done,path=\"\(.*\)\"\r\n$mi_gdb_prompt" {
- set orig_path $expect_out(1,string);
- }
- timeout {
- perror "-environment-path (timeout)" ;
- return
- }
- }
+ mi_gdb_test "-environment-path" "\\\^done,path=\"(.*)\"" "environment-path"
+ set orig_path $expect_out(3,string)
set orig_path [string_to_regexp ${orig_path}]
set pathdir [string_to_regexp ${objdir}/${subdir}]
@@ -276,8 +255,8 @@ proc test_setshow_inferior_tty {} {
"verify tty is correct"
}
-if [test_mi_interpreter_selection] {
- test_exec_and_symbol_mi_operatons
+if { [test_mi_interpreter_selection]
+ && [test_exec_and_symbol_mi_operatons] } {
test_breakpoints_deletion
test_dir_specification
test_cwd_specification