Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Tom Tromey <tromey@redhat.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tromey@redhat.com>
Subject: [PATCH 05/13] fix up gdb.xml
Date: Fri, 23 Aug 2013 20:37:00 -0000	[thread overview]
Message-ID: <1377290210-483-6-git-send-email-tromey@redhat.com> (raw)
In-Reply-To: <1377290210-483-1-git-send-email-tromey@redhat.com>

This fixes the gdb.xml tests to be parallel-safe.

	* 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.  Add "should_cd"
	argument.
---
 gdb/testsuite/gdb.xml/tdesc-arch.exp | 28 ++++++++++++++++------------
 gdb/testsuite/gdb.xml/tdesc-regs.exp | 34 ++++++++++++++++++++++++----------
 2 files changed, 40 insertions(+), 22 deletions(-)

diff --git a/gdb/testsuite/gdb.xml/tdesc-arch.exp b/gdb/testsuite/gdb.xml/tdesc-arch.exp
index 5fde2ff..be0b9f1 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 \
 	"<target>
 	    <architecture>$arch</architecture>
 	 </target>"
     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 ($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 \
     "<target>
        <architecture>invalid</architecture>
      </target>"
 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 533812f..b9d631a 100644
--- a/gdb/testsuite/gdb.xml/tdesc-regs.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-regs.exp
@@ -94,20 +94,24 @@ 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 <xi:include>.
 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.
-proc load_description { file errmsg } {
+proc load_description { file errmsg {should_cd 1} } {
     global srcdir
     global subdir
     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 {<xi:include href="core-regs.xml"/>} $line]} {
 	    if {! [string equal ${architecture} ""]} {
@@ -122,11 +126,18 @@ 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"]
+    }
+
+    if {$should_cd && ![is_remote host]} {
+	gdb_test "cd [file dirname $regs_file]" "Working directory .*" \
+	    "cd to directory holding 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 +145,10 @@ proc load_description { file errmsg } {
 	    pass $msg
 	}
     }
-    remote_file host delete "regs.xml"
+
+    if {[is_remote host]} {
+	remote_file host delete "regs.xml"
+    }
 }
 
 load_description "extra-regs.xml" ""
@@ -150,10 +164,10 @@ gdb_test "ptype \$structreg.v4" "type = int8_t __attribute__ \\(\\(vector_size\\
 gdb_test "ptype \$bitfields" \
     "type = struct struct2 {\r\n *uint64_t f1 : 35;\r\n *uint64_t f2 : 1;\r\n}"
 
-load_description "core-only.xml" ""
+load_description "core-only.xml" "" 0
 # The extra register from the previous description should be gone.
 gdb_test "ptype \$extrareg" "type = void"
 
 foreach src ${core-regs} {
-    remote_file host delete "$src"
+    remote_file host delete $remote_filename($src)
 }
-- 
1.8.1.4


  parent reply	other threads:[~2013-08-23 20:36 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-23 20:36 [PATCH 00/13] test suite parallel safety Tom Tromey
2013-08-23 20:36 ` [PATCH 04/13] fix up gdb.gdb Tom Tromey
2013-08-23 20:36 ` [PATCH 06/13] fix up gdb.mi Tom Tromey
2013-08-25  1:50   ` Yao Qi
2013-10-17 18:45     ` Tom Tromey
2013-08-23 20:37 ` [PATCH 09/13] update checkpoint test Tom Tromey
2013-08-23 20:37 ` [PATCH 02/13] fix some simple thinkos in the test suite Tom Tromey
2013-08-23 20:37 ` Tom Tromey [this message]
2013-08-27 12:12   ` [PATCH 05/13] fix up gdb.xml Pedro Alves
2013-10-17 18:42     ` Tom Tromey
2013-10-18 15:20       ` Pedro Alves
2013-08-23 20:37 ` [PATCH 13/13] make gdb.asm parallel-safe Tom Tromey
2013-08-27 13:48   ` Pedro Alves
2013-08-27 14:06     ` Tom Tromey
2013-08-23 20:37 ` [PATCH 01/13] fix up log-file toggling Tom Tromey
2013-08-23 20:37 ` [PATCH 10/13] update fileio test Tom Tromey
2013-08-23 20:37 ` [PATCH 08/13] simple changes in gdb.base Tom Tromey
2013-08-27 13:31   ` Pedro Alves
2013-10-17 19:58     ` Tom Tromey
2013-08-23 20:37 ` [PATCH 03/13] fix weird.exp for parallel testing Tom Tromey
2013-08-23 20:37 ` [PATCH 12/13] fix up gdb.server Tom Tromey
2013-08-23 20:37 ` [PATCH 11/13] introduce relative_filename and use it Tom Tromey
2013-08-27 13:44   ` Pedro Alves
2013-10-17 18:59     ` Tom Tromey
2013-08-23 20:37 ` [PATCH 07/13] fix up gdb.trace Tom Tromey
2013-08-27 12:26   ` Pedro Alves
2013-10-17 18:56     ` Tom Tromey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1377290210-483-6-git-send-email-tromey@redhat.com \
    --to=tromey@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox