From 10483e8e4e96e64cd488c4481aa960925ff1a335 Mon Sep 17 00:00:00 2001 From: Marek Polacek Date: Thu, 12 May 2011 07:13:23 +0000 Subject: [PATCH] Fix races in gdb.mi/mi-basics.exp --- gdb/testsuite/ChangeLog | 9 +++++ gdb/testsuite/gdb.mi/mi-basics.exp | 53 +++++++++--------------------- 2 files changed, 25 insertions(+), 37 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d855ea20f51..de5e67a59f2 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2011-05-12 Marek Polacek + + * 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 * 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 d65cef80b30..21d7aa80f8e 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 -- 2.30.2