[PATCH 06/13] fix up gdb.mi

Tom Tromey
2013-08-23T20:36:59Z

This fixes gdb.mi to be parallel-safe.

* gdb.mi/mi-cmd-param-changed.exp (test_command_param_changed):
Use "dwarf2 always-disassemble" for the "maint set" test.
* gdb.mi/mi-file-transfer.exp (test_file_transfer): Use
standard_output_file.
* gdb.mi/mi-logging.exp: Use standard_output_file.
---
gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp | 6 +++---
gdb/testsuite/gdb.mi/mi-file-transfer.exp | 22 +++++++++++++++-------
gdb/testsuite/gdb.mi/mi-logging.exp | 2 +-
3 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp b/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
index 1791c97..7ba8724 100644
--- a/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
@@ -85,9 +85,9 @@ proc test_command_param_changed { } {

# No notification is emitted for 'maint set' commands.
foreach boolean_opt { "on" "off" } {
- mi_gdb_test "maint set profile ${boolean_opt}" \
- "\\&\"maint set profile ${boolean_opt}\\\\n\"\r\n\\^done" \
- "\"maint set profile ${boolean_opt}\""
+ mi_gdb_test "maint set dwarf2 always-disassemble ${boolean_opt}" \
+ "\\&\"maint set dwarf2 always-disassemble ${boolean_opt}\\\\n\"\r\n\\^done" \
+ "\"maint dwarf2 always-disassemble ${boolean_opt}\""
}

# Full command parameters are included in the notification when a
diff --git a/gdb/testsuite/gdb.mi/mi-file-transfer.exp b/gdb/testsuite/gdb.mi/mi-file-transfer.exp
index 9229fde..edf1786 100644
--- a/gdb/testsuite/gdb.mi/mi-file-transfer.exp
+++ b/gdb/testsuite/gdb.mi/mi-file-transfer.exp
@@ -54,15 +54,23 @@ proc mi_gdbserver_run { } {
}

proc test_file_transfer { filename description } {
- mi_gdb_test "-target-file-put \"$filename\" \"down-server\"" \
+ if {![is_remote host] && ![is_remote target]} {
+ set up_server [standard_output_file up-server]
+ set down_server [standard_output_file down-server]
+ } else {
+ set up_server up-server
+ set down_server down-server
+ }
+
+ mi_gdb_test "-target-file-put \"$filename\" \"${down_server}\"" \
"\\^done" "put $description"
- mi_gdb_test "-target-file-get \"down-server\" \"up-server\"" \
+ mi_gdb_test "-target-file-get \"${down_server}\" \"${up_server}\"" \
"\\^done" "get $description"

if { ![is_remote target] } {
# If we can check the target copy of the file, do that too.
# This should catch symmetric errors in upload and download.
- set result [remote_exec host "cmp -s $filename down-server"]
+ set result [remote_exec host "cmp -s $filename ${down_server}"]
if { [lindex $result 0] == 0 } {
pass "compare intermediate $description"
} else {
@@ -70,25 +78,25 @@ proc test_file_transfer { filename description } {
}
}

- set result [remote_exec host "cmp -s $filename up-server"]
+ set result [remote_exec host "cmp -s $filename ${up_server}"]
if { [lindex $result 0] == 0 } {
pass "compare $description"
} else {
fail "compare $description"
}

- mi_gdb_test "-target-file-delete \"down-server\"" \
+ mi_gdb_test "-target-file-delete \"${down_server}\"" \
"\\^done" "deleted $description"

if { ![is_remote target] } {
- if { ! [remote_file target exists down-server] } {
+ if { ! [remote_file target exists ${down_server}] } {
pass "verified deleted $description"
} else {
fail "verified deleted $description"
}
}

- catch { file delete up-server }
+ catch { file delete ${up_server} }
}

mi_gdbserver_run
diff --git a/gdb/testsuite/gdb.mi/mi-logging.exp b/gdb/testsuite/gdb.mi/mi-logging.exp
index 87f3e1b..b38c036 100644
--- a/gdb/testsuite/gdb.mi/mi-logging.exp
+++ b/gdb/testsuite/gdb.mi/mi-logging.exp
@@ -33,7 +33,7 @@ if {[mi_run_to_main] < 0} {
return -1
}

-set milogfile "milog.txt"
+set milogfile [standard_output_file "milog.txt"]

mi_gdb_test "-gdb-set logging file $milogfile" ".*"

--
1.8.1.4