gdb.exp: Support absolute path name args in 'prepare_for_testing' etc.
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Fri, 7 Mar 2014 10:23:42 +0000 (10:23 +0000)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Wed, 12 Mar 2014 15:22:18 +0000 (16:22 +0100)
Test cases that produce source files in the build directory have not
been able to use prepare_for_testing and friends.  This was because
build_executable_from_specs unconditionally prepended the source
directory path name to its arguments.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp

index 44fb290132d23e40f78695f1c8a35366bee56c11..47b586bf0c63f46f9c4cfe4f1b573759a3bb834c 100644 (file)
@@ -1,3 +1,8 @@
+2014-03-12  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * lib/gdb.exp (build_executable_from_specs): Don't prepend source
+       directory to absolute path name arguments.
+
 2014-03-10  Joel Brobecker  <brobecker@adacore.com>
 
        * gdb.ada/tagged_access: New testcase.
index 2d04a8cb97b52b8e743c39059855eb54cd5fcc51..4a6f930a58fce0642dea80307a9d7b0cccd88b91 100644 (file)
@@ -4260,14 +4260,21 @@ proc build_executable_from_specs {testname executable options args} {
     if [string match gdb_compile_shlib* $func] {
        set sources_path {}
        foreach {s local_options} $args {
-           lappend sources_path "${srcdir}/${subdir}/${s}"
+           if { [regexp "^/" "$s"] } then {
+               lappend sources_path "$s"
+           } else {
+               lappend sources_path "$srcdir/$subdir/$s"
+           }
        }
        set ret [$func $sources_path "${binfile}" $options]
     } else {
        set objects {}
        set i 0
        foreach {s local_options} $args {
-           if  { [gdb_compile "${srcdir}/${subdir}/${s}" "${binfile}${i}.o" object $local_options] != "" } {
+           if { ! [regexp "^/" "$s"] } then {
+               set s "$srcdir/$subdir/$s"
+           }
+           if  { [gdb_compile "${s}" "${binfile}${i}.o" object $local_options] != "" } {
                untested $testname
                return -1
            }