testsuite: Fix save-trace.exp writing outside standard output directory
authorSimon Marchi <simon.marchi@ericsson.com>
Tue, 16 Feb 2016 14:00:50 +0000 (09:00 -0500)
committerSimon Marchi <simon.marchi@ericsson.com>
Tue, 16 Feb 2016 14:01:38 +0000 (09:01 -0500)
In save-trace.exp, we want to test loading of a tracepoint definition
file with a relative path (I am not sure why in fact).  We currently use
"savetrace-relative.tr", which ends up directly in testsuite/.  If we
use [standard_output_file] on that path, it becomes absolute.  I decided
to just replace [pwd] with . (a dot) in the path given by
standard_output_file to make it relative.  However, this trick only
works because [pwd] is a prefix of the standard output directory.  So I
added a check to verify that precondition.

gdb/testsuite/ChangeLog:

* gdb.trace/save-trace.exp: Change relative path to be in the
standard output directory.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.trace/save-trace.exp

index a62d358..5c663ef 100644 (file)
@@ -1,3 +1,8 @@
+2016-02-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+       * gdb.trace/save-trace.exp: Change relative path to be in the
+       standard output directory.
+
 2016-02-15  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * gdb.arch/i386-prologue.c: Add missing prototypes.
index 7c897bb..a70ad54 100644 (file)
@@ -151,7 +151,18 @@ proc do_save_load_test { save_path } {
 gdb_verify_tracepoints "verify trace setup"
 
 with_test_prefix "relative" {
-    do_save_load_test "savetrace-relative.tr"
+    set filepath [standard_output_file "savetrace-relative.tr"]
+
+    # This only works because the pwd is a prefix of the standard output
+    # directory.  If this assumption becomes false, then this test needs to be
+    # changed (the relative path from [pwd] to the standard output directory
+    # will become a bit more complicated to compute).
+    if {[string first [pwd] $filepath] != 0} {
+       error "[pwd] is not a prefix of $filepath."
+    }
+
+    set filepath [string map "[pwd] ." $filepath]
+    do_save_load_test "$filepath"
 }
 
 with_test_prefix "absolute" {