[PATCH v3 16/17] fix some fission tests

Tom Tromey
2013-10-25T21:11:56Z

A couple of Fission tests rely on the current directory layout. This
assumption is not valid in parallel mode.

This patch fixes the problem by removing the relative directory from
the .S files and instead having the tests set debug-file-directory
before opening the main file.

~ChangeLog~
2013-10-24 Tom Tromey <tromey@redhat.com>

* gdb.dwarf2/fission-base.S: Remove "gdb.dwarf/".
* gdb.dwarf2/fission-base.exp: Set debug-file-directory
before loading binfile.
* gdb.dwarf2/fission-loclists.S: Remove "gdb.dwarf/".
* gdb.dwarf2/fission-loclists.exp: Set debug-file-directory
before loading binfile.
---
gdb/testsuite/ChangeLog | 9 +++++++++
gdb/testsuite/gdb.dwarf2/fission-base.S | 4 ++--
gdb/testsuite/gdb.dwarf2/fission-base.exp | 9 ++++++++-
gdb/testsuite/gdb.dwarf2/fission-loclists.S | 2 +-
gdb/testsuite/gdb.dwarf2/fission-loclists.exp | 9 ++++++++-
5 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/gdb/testsuite/gdb.dwarf2/fission-base.S b/gdb/testsuite/gdb.dwarf2/fission-base.S
index ccd6b23..e670423 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-base.S
+++ b/gdb/testsuite/gdb.dwarf2/fission-base.S
@@ -85,7 +85,7 @@ main:
.uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
.ascii "GNU C 4.6.x-fission\0" # DW_AT_producer
.byte 0x1 # DW_AT_language
- .ascii "gdb.dwarf2/fission-base.c\0" # DW_AT_name
+ .ascii "fission-base.c\0" # DW_AT_name
.ascii "/tmp/src/gdb/testsuite\0" # DW_AT_comp_dir
.byte 1 # DW_AT_GNU_dwo_id
.byte 2
@@ -143,7 +143,7 @@ main:
.8byte .Letext0-.Ltext0 # DW_AT_high_pc
.4byte .Ldebug_line0 # DW_AT_stmt_list
.ascii "/tmp/src/gdb/testsuite\0" # DW_AT_comp_dir
- .ascii "gdb.dwarf2/fission-base.dwo\0" # DW_AT_GNU_dwo_name
+ .ascii "fission-base.dwo\0" # DW_AT_GNU_dwo_name
.4byte .Ldebug_pubnames0 # DW_AT_GNU_pubnames
.4byte .Ldebug_pubtypes0 # DW_AT_GNU_pubtypes
.4byte .Ldebug_addr0_begin # DW_AT_GNU_addr_base
diff --git a/gdb/testsuite/gdb.dwarf2/fission-base.exp b/gdb/testsuite/gdb.dwarf2/fission-base.exp
index bb4eb77..81ca585 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-base.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-base.exp
@@ -37,7 +37,14 @@ if [build_executable_from_fission_assembler \
return -1
}

-clean_restart ${binfile}
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+# Make sure we can find the .dwo file, regardless of whether we're
+# running in parallel mode.
+gdb_test_no_output "set debug-file-directory [file dirname $binfile]" \
+ "set debug-file-directory"
+gdb_load $binfile

if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.dwarf2/fission-loclists.S b/gdb/testsuite/gdb.dwarf2/fission-loclists.S
index 876c610..ee34a29 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-loclists.S
+++ b/gdb/testsuite/gdb.dwarf2/fission-loclists.S
@@ -240,7 +240,7 @@ main:
.byte 0x5
.4byte .Ldebug_ranges0 # DW_AT_GNU_ranges_base
.ascii "/tmp/src/gdb/testsuite\0" # DW_AT_comp_dir
- .ascii "gdb.dwarf2/fission-loclists.dwo\0" # DW_AT_GNU_dwo_name
+ .ascii "fission-loclists.dwo\0" # DW_AT_GNU_dwo_name
.4byte .Ldebug_pubnames0 # DW_AT_GNU_pubnames
.4byte .Ldebug_pubtypes0 # DW_AT_GNU_pubtypes
.4byte .Ldebug_addr0 # DW_AT_GNU_addr_base
diff --git a/gdb/testsuite/gdb.dwarf2/fission-loclists.exp b/gdb/testsuite/gdb.dwarf2/fission-loclists.exp
index 29ccd1b..dccd6c2 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-loclists.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-loclists.exp
@@ -37,7 +37,14 @@ if [build_executable_from_fission_assembler \
return -1
}

-clean_restart ${binfile}
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+# Make sure we can find the .dwo file, regardless of whether we're
+# running in parallel mode.
+gdb_test_no_output "set debug-file-directory [file dirname $binfile]" \
+ "set debug-file-directory"
+gdb_load $binfile

if ![runto_main] {
return -1
--
1.8.1.4