From cfb7b9a3e92292bfa9a9d76601214bdc43f660ef Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 23 Aug 2013 10:16:53 -0600 Subject: [PATCH] fix up gdb.xml This fixes the gdb.xml tests to be parallel-safe. 2013-11-04 Tom Tromey * gdb.xml/tdesc-arch.exp: Use standard_output_file. Make downloads conditional on remote host. (set_arch): Likewise. * gdb.xml/tdesc-regs.exp: Use gdb_remote_download. (load_description): Use standard_output_file. --- gdb/testsuite/ChangeLog | 8 ++++++++ gdb/testsuite/gdb.xml/tdesc-arch.exp | 28 +++++++++++++++----------- gdb/testsuite/gdb.xml/tdesc-regs.exp | 30 ++++++++++++++++++++-------- 3 files changed, 46 insertions(+), 20 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 646bb432d94..f0c8f91bccf 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2013-11-04 Tom Tromey + + * gdb.xml/tdesc-arch.exp: Use standard_output_file. Make + downloads conditional on remote host. + (set_arch): Likewise. + * gdb.xml/tdesc-regs.exp: Use gdb_remote_download. + (load_description): Use standard_output_file. + 2013-11-04 Tom Tromey * gdb.gdb/selftest.exp: Use standard_output_file. diff --git a/gdb/testsuite/gdb.xml/tdesc-arch.exp b/gdb/testsuite/gdb.xml/tdesc-arch.exp index 5fde2ff8580..241ad28f9c9 100644 --- a/gdb/testsuite/gdb.xml/tdesc-arch.exp +++ b/gdb/testsuite/gdb.xml/tdesc-arch.exp @@ -60,17 +60,20 @@ proc set_arch { arch which } { global gdb_prompt global subdir - set fd [open "$subdir/tdesc-arch.xml" w] + set filename [standard_output_file tdesc-arch.xml] + set fd [open $filename w] puts $fd \ " $arch " close $fd - remote_download host "${subdir}/tdesc-arch.xml" "tdesc-arch.xml" + if {[is_remote host]} { + set filename [remote_download host $filename tdesc-arch.xml] + } # Anchor the test output, so that error messages are detected. - set cmd "set tdesc filename tdesc-arch.xml" - set msg "$cmd ($which architecture)" + set cmd "set tdesc filename $filename" + set msg "set tdesc filename tdesc-arch.xml ($which architecture)" set cmd_regex [string_to_regexp $cmd] gdb_test_multiple $cmd $msg { -re "^$cmd_regex\r\n$gdb_prompt $" { @@ -86,31 +89,32 @@ proc set_arch { arch which } { "The target architecture is set automatically \\(currently $arch\\)" \ "$cmd ($which architecture)" - file delete "${subdir}/tdesc-arch.xml" - remote_file host delete "tdesc-arch.xml" + remote_file host delete $filename } set_arch $arch1 first set_arch $arch2 second # Check an invalid architecture setting. -set fd [open "${subdir}/tdesc-arch.xml" w] +set filename [standard_output_file tdesc-arch.xml] +set fd [open $filename w] puts $fd \ " invalid " close $fd -remote_download host "$subdir/tdesc-arch.xml" "tdesc-arch.xml" +if {[is_remote host]} { + set filename [remote_download host $filename "tdesc-arch.xml"] +} -set cmd "set tdesc filename tdesc-arch.xml" +set cmd "set tdesc filename $filename" gdb_test $cmd \ "warning:.*Target description specified unknown architecture.*" \ - "$cmd (invalid architecture)" + "set tdesc filename tdesc-arch.xml (invalid architecture)" set cmd "show architecture" gdb_test $cmd \ "The target architecture is set automatically \\(currently $default_arch\\)" \ "$cmd (invalid architecture)" -file delete "${subdir}/tdesc-arch.xml" -remote_file host delete "tdesc-arch.xml" +remote_file host delete $filename diff --git a/gdb/testsuite/gdb.xml/tdesc-regs.exp b/gdb/testsuite/gdb.xml/tdesc-regs.exp index 533812fb8b7..5e5e61721e5 100644 --- a/gdb/testsuite/gdb.xml/tdesc-regs.exp +++ b/gdb/testsuite/gdb.xml/tdesc-regs.exp @@ -94,7 +94,8 @@ gdb_test "set tdesc file $srcdir/$subdir/single-reg.xml" \ # Copy the core registers into the objdir if necessary, so that they # will be found by . foreach src ${core-regs} { - set file [remote_download host "$srcdir/../features/$regdir$src" "$src"] + set remote_filename($src) \ + [gdb_remote_download host "$srcdir/../features/$regdir$src"] } # Similarly, we need to copy files under test into the objdir. @@ -104,10 +105,13 @@ proc load_description { file errmsg } { global gdb_prompt global core-regs global architecture + global remote_filename - file delete "$subdir/regs.xml" + set regs_file [standard_output_file regs.xml] + + file delete $regs_file set ifd [open "$srcdir/$subdir/$file" r] - set ofd [open "$subdir/regs.xml" w] + set ofd [open $regs_file w] while {[gets $ifd line] >= 0} { if {[regexp {} $line]} { if {! [string equal ${architecture} ""]} { @@ -122,11 +126,13 @@ proc load_description { file errmsg } { } close $ifd close $ofd - remote_download host "$subdir/regs.xml" "regs.xml" - file delete "$subdir/regs.xml" + + if {[is_remote host]} { + set regs_file [remote_download host "$subdir/regs.xml" "regs.xml"] + } # Anchor the test output, so that error messages are detected. - set cmd "set tdesc filename regs.xml" + set cmd "set tdesc filename [file tail $regs_file]" set msg "set tdesc filename regs.xml - from $file" set cmd_regex [string_to_regexp $cmd] gdb_test_multiple $cmd $msg { @@ -134,7 +140,15 @@ proc load_description { file errmsg } { pass $msg } } - remote_file host delete "regs.xml" + + if {[is_remote host]} { + remote_file host delete "regs.xml" + } +} + +if {![is_remote host]} { + gdb_test "cd [standard_output_file {}]" "Working directory .*" \ + "cd to directory holding xml" } load_description "extra-regs.xml" "" @@ -155,5 +169,5 @@ load_description "core-only.xml" "" gdb_test "ptype \$extrareg" "type = void" foreach src ${core-regs} { - remote_file host delete "$src" + remote_file host delete $remote_filename($src) }