testsuite: Fix save-trace.exp writing outside standard output directory

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.
This commit is contained in:
Simon Marchi 2016-02-16 09:00:50 -05:00
parent 1cd17042aa
commit 266b65b33e
2 changed files with 17 additions and 1 deletions

View 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.

View 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" {