From: Tom Tromey <tromey@redhat.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tromey@redhat.com>
Subject: [PATCH 11/13] introduce relative_filename and use it
Date: Fri, 23 Aug 2013 20:37:00 -0000 [thread overview]
Message-ID: <1377290210-483-12-git-send-email-tromey@redhat.com> (raw)
In-Reply-To: <1377290210-483-1-git-send-email-tromey@redhat.com>
This introduces a new relative_filename proc to gdb.exp and changes
some tests to use it. This helps make these tests parallel-safe.
* gdb.base/fullname.exp: Use standard_output_file,
relative_filename.
* gdb.base/hashline1.exp: Use standard_testfile,
standard_output_file, relative_filename, clean_restart.
* gdb.base/hashline2.exp: Use standard_testfile,
standard_output_file, relative_filename.
* gdb.base/hashline3.exp: Use standard_testfile,
standard_output_file, relative_filename.
* lib/gdb.exp (relative_filename): New proc.
---
gdb/testsuite/gdb.base/fullname.exp | 5 +++--
gdb/testsuite/gdb.base/hashline1.exp | 21 +++++++++------------
gdb/testsuite/gdb.base/hashline2.exp | 13 ++++++-------
gdb/testsuite/gdb.base/hashline3.exp | 14 +++++++-------
gdb/testsuite/lib/gdb.exp | 10 ++++++++++
5 files changed, 35 insertions(+), 28 deletions(-)
diff --git a/gdb/testsuite/gdb.base/fullname.exp b/gdb/testsuite/gdb.base/fullname.exp
index 32f6ea4..2754f59 100644
--- a/gdb/testsuite/gdb.base/fullname.exp
+++ b/gdb/testsuite/gdb.base/fullname.exp
@@ -70,7 +70,8 @@ if { [gdb_breakpoint [standard_output_file tmp-${srcfile}]:${line} {no-message}]
}
# Build the test executable using a relative path.
-if { [gdb_compile "${subdir}/tmp-${srcfile}" "${binfile}" executable {debug}] != "" } {
+if { [gdb_compile [relative_filename [pwd] [standard_output_file tmp-${srcfile}]] \
+ "${binfile}" executable {debug}] != "" } {
return -1
}
@@ -99,7 +100,7 @@ if { [gdb_breakpoint [standard_output_file tmp-${srcfile}]:${line} {no-message}]
# we'll run GDB from.
set save_pwd [pwd]
-cd ${subdir}
+cd [standard_output_file {}]
if { [gdb_compile [standard_output_file tmp-${srcfile}] "${testfile}" \
executable {debug}] != "" } {
cd $save_pwd
diff --git a/gdb/testsuite/gdb.base/hashline1.exp b/gdb/testsuite/gdb.base/hashline1.exp
index 950d67e..2330daf 100644
--- a/gdb/testsuite/gdb.base/hashline1.exp
+++ b/gdb/testsuite/gdb.base/hashline1.exp
@@ -21,28 +21,25 @@
# srcfile is in objdir because we need to machine generate it in order
# to get the correct path in the #line directive.
-set testfile "hashline1"
-set srcfile "${testfile}.c"
-set binfile "${objdir}/${subdir}/${testfile}"
+standard_testfile .c
-set fd [open ${objdir}/${subdir}/${srcfile} w]
-puts $fd "#line 2 \"[pwd]/${subdir}/${srcfile}\""
+set new_srcfile [standard_output_file $srcfile]
+set fd [open $new_srcfile w]
+puts $fd "#line 2 \"$new_srcfile\""
puts $fd "int main () { return 0; } /* set breakpoint here */"
close $fd
# The choice of path name for the source file is important in order to trigger
-# the bug. Using ${objdir}/${subdir}/${srcfile} here won't trigger the bug.
-if { [gdb_compile "./${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+# the bug. Using $new_srcfile here won't trigger the bug.
+set compile_name [relative_filename $objdir $new_srcfile]
+if { [gdb_compile $compile_name "${binfile}" executable {debug}] != "" } {
untested hashline1.exp
return -1
}
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
+clean_restart ${binfile}
-set bp_location [gdb_get_line_number "set breakpoint here" ${objdir}/${subdir}/${srcfile}]
+set bp_location [gdb_get_line_number "set breakpoint here" $new_srcfile]
# Try to set a breakpoint on the specified file location.
diff --git a/gdb/testsuite/gdb.base/hashline2.exp b/gdb/testsuite/gdb.base/hashline2.exp
index d7ee4a7..cd748ca 100644
--- a/gdb/testsuite/gdb.base/hashline2.exp
+++ b/gdb/testsuite/gdb.base/hashline2.exp
@@ -21,16 +21,15 @@
# srcfile is in objdir because we need to machine generate it in order
# to get the correct path in the #line directive.
-set testfile "hashline2"
-set srcfile "${testfile}.c"
-set binfile "${objdir}/${subdir}/${testfile}"
+standard_testfile .c
-set fd [open ${objdir}/${subdir}/${srcfile} w]
-puts $fd "#line 2 \"///[pwd]/${subdir}/${srcfile}\""
+set new_srcfile [standard_output_file $srcfile]
+set fd [open $new_srcfile w]
+puts $fd "#line 2 \"///${new_srcfile}\""
puts $fd "int main () { return 0; } /* set breakpoint here */"
close $fd
-if { [gdb_compile "${objdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+if { [gdb_compile $new_srcfile "${binfile}" executable {debug}] != "" } {
untested hashline2.exp
return -1
}
@@ -40,7 +39,7 @@ gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
-set bp_location [gdb_get_line_number "set breakpoint here" ${objdir}/${subdir}/${srcfile}]
+set bp_location [gdb_get_line_number "set breakpoint here" ${new_srcfile}]
# Try to set a breakpoint on the specified file location.
diff --git a/gdb/testsuite/gdb.base/hashline3.exp b/gdb/testsuite/gdb.base/hashline3.exp
index 2496b3c..eba5f77 100644
--- a/gdb/testsuite/gdb.base/hashline3.exp
+++ b/gdb/testsuite/gdb.base/hashline3.exp
@@ -21,16 +21,16 @@
# srcfile is in objdir because we need to machine generate it in order
# to get the correct path in the #line directive.
-set testfile "hashline3"
-set srcfile "${testfile}.c"
-set binfile "${objdir}/${subdir}/${testfile}"
+standard_testfile
-set fd [open ${objdir}/${subdir}/${srcfile} w]
-puts $fd "#line 2 \"./${subdir}/${srcfile}\""
+set new_srcfile [standard_output_file $srcfile]
+set fd [open $new_srcfile w]
+set relative [relative_filename $objdir $new_srcfile]
+puts $fd "#line 2 \"./$relative\""
puts $fd "int main () { return 0; } /* set breakpoint here */"
close $fd
-if { [gdb_compile "${objdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+if { [gdb_compile $new_srcfile "${binfile}" executable {debug}] != "" } {
untested hashline3.exp
return -1
}
@@ -40,7 +40,7 @@ gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
-set bp_location [gdb_get_line_number "set breakpoint here" ${objdir}/${subdir}/${srcfile}]
+set bp_location [gdb_get_line_number "set breakpoint here" $new_srcfile]
# Try to set a breakpoint on the specified file location.
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 25a91dd..8e83d8e 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -4306,6 +4306,16 @@ proc set_remotetimeout { timeout } {
}
}
+# ROOT and FULL are file names. Returns the relative path from ROOT
+# to FULL. Note that FULL must be in a subdirectory of ROOT.
+# For example, given ROOT = /usr/bin and FULL = /usr/bin/ls, this
+# will return "ls".
+
+proc relative_filename {root full} {
+ set len [llength [file split $root]]
+ return [eval file join [lrange [file split $full] $len end]]
+}
+
# Log gdb command line and script if requested.
if {[info exists TRANSCRIPT]} {
rename send_gdb real_send_gdb
--
1.8.1.4
next prev parent reply other threads:[~2013-08-23 20:37 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 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 07/13] fix up gdb.trace Tom Tromey
2013-08-27 12:26 ` Pedro Alves
2013-10-17 18:56 ` Tom Tromey
2013-08-23 20:37 ` Tom Tromey [this message]
2013-08-27 13:44 ` [PATCH 11/13] introduce relative_filename and use it Pedro Alves
2013-10-17 18:59 ` Tom Tromey
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 02/13] fix some simple thinkos in the test suite Tom Tromey
2013-08-23 20:37 ` [PATCH 05/13] fix up gdb.xml Tom Tromey
2013-08-27 12:12 ` Pedro Alves
2013-10-17 18:42 ` Tom Tromey
2013-10-18 15:20 ` Pedro Alves
2013-08-23 20:37 ` [PATCH 01/13] fix up log-file toggling 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-12-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