[PATCH v3 14/17] fix argv0-symlink.exp for parallel mode

Tom Tromey
2013-10-25T20:21:20Z

argv0-symlink.exp doesn't work properly if standard_output_file puts
files into a per-test subdirectory. That's because it assumes that
files appear in $subdir, which is no longer true.

This patch fixes the problem by computing the correct directory at
runtime.

Tested both with and without GDB_PARALLEL on x86-64 Fedora 18.

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

* gdb.base/argv0-symlink.exp: Compute executable's directory
dynamically.
---
gdb/testsuite/ChangeLog | 5 +++++
gdb/testsuite/gdb.base/argv0-symlink.exp | 11 +++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/gdb.base/argv0-symlink.exp b/gdb/testsuite/gdb.base/argv0-symlink.exp
index cf5785c..e4efe19 100644
--- a/gdb/testsuite/gdb.base/argv0-symlink.exp
+++ b/gdb/testsuite/gdb.base/argv0-symlink.exp
@@ -37,7 +37,14 @@ if ![runto_main] {
}

gdb_test {print argv[0]} "/$filelink\"" $test
-gdb_test "info inferiors" "/$subdir/$filelink *" "$test for info inferiors"
+
+# For a link named /PATH/TO/DIR/LINK, we want to check the output
+# against "/DIR/LINK", but computed in a way that doesn't make
+# assumptions about the test directory layout.
+set full_filelink [standard_output_file $filelink]
+set lastdir [file tail [file dirname $full_filelink]]
+
+gdb_test "info inferiors" "/$lastdir/$filelink *" "$test for info inferiors"

set test "kept directory symbolic link name"
@@ -65,4 +72,4 @@ if ![is_remote target] {
setup_kfail "*-*-*" gdb/15934
}
gdb_test {print argv[0]} "/$dirlink/$filelink\"" $test
-gdb_test "info inferiors" "/$subdir/$filelink *" "$test for info inferiors"
+gdb_test "info inferiors" "/$lastdir/$filelink *" "$test for info inferiors"
--
1.8.1.4