aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/lib
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-06-22 16:39:11 +0000
committerTom Tromey <tromey@redhat.com>2012-06-22 16:39:11 +0000
commit0a6d03060482e8eae207d4be1d6e8f6ff5e4d340 (patch)
tree9a9e0249ac849923d219b18ddc59cb6757a9e0e9 /gdb/testsuite/lib
parentb70e7a2fdf5fac8cacce8335a2fd9a561480eafc (diff)
downloadgdb-0a6d03060482e8eae207d4be1d6e8f6ff5e4d340.zip
gdb-0a6d03060482e8eae207d4be1d6e8f6ff5e4d340.tar.gz
gdb-0a6d03060482e8eae207d4be1d6e8f6ff5e4d340.tar.bz2
* lib/gdb.exp (default_gdb_init): Set gdb_test_file_name.
(standard_output_file, standard_testfile): New procs. (build_executable, clean_restart): Use standard_output_file.
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r--gdb/testsuite/lib/gdb.exp73
1 files changed, 70 insertions, 3 deletions
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 6489c15..b40eef8 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -3024,12 +3024,15 @@ proc gdb_continue { function } {
proc default_gdb_init { args } {
global gdb_wrapper_initialized
global gdb_wrapper_target
+ global gdb_test_file_name
global cleanfiles
set cleanfiles {}
gdb_clear_suppressed;
+ set gdb_test_file_name [file rootname [file tail [lindex $args 0]]]
+
# Make sure that the wrapper is rebuilt
# with the appropriate multilib option.
if { $gdb_wrapper_target != [current_target_name] } {
@@ -3063,6 +3066,70 @@ proc default_gdb_init { args } {
}
}
+# Turn BASENAME into a full file name in the standard output
+# directory.
+
+proc standard_output_file {basename} {
+ global objdir subdir
+
+ return $objdir/$subdir/$basename
+}
+
+# Set 'testfile', 'srcfile', and 'binfile'.
+#
+# ARGS is a list of source file specifications.
+# Without any arguments, the .exp file's base name is used to
+# compute the source file name. The ".c" extension is added in this case.
+# If ARGS is not empty, each entry is a source file specification.
+# If the specification starts with a ".", it is treated as a suffix
+# to append to the .exp file's base name.
+# If the specification is the empty string, it is treated as if it
+# were ".c".
+# Otherwise it is a file name.
+# The first file in the list is used to set the 'srcfile' global.
+# Each subsequent name is used to set 'srcfile2', 'srcfile3', etc.
+#
+# Most tests should call this without arguments.
+#
+# If a completely different binary file name is needed, then it
+# should be handled in the .exp file with a suitable comment.
+
+proc standard_testfile {args} {
+ global gdb_test_file_name
+ global objdir subdir
+
+ # Outputs.
+ global testfile binfile
+
+ set testfile $gdb_test_file_name
+ set binfile [standard_output_file ${testfile}]
+
+ if {[llength $args] == 0} {
+ set args .c
+ }
+
+ set suffix ""
+ foreach arg $args {
+ set varname srcfile$suffix
+ global $varname
+
+ # Handle an extension.
+ if {$arg == ""} {
+ set arg $testfile.c
+ } elseif {[string range $arg 0 0] == "."} {
+ set arg $testfile$arg
+ }
+
+ set $varname $arg
+
+ if {$suffix == ""} {
+ set suffix 2
+ } else {
+ incr suffix
+ }
+ }
+}
+
# The default timeout used when testing GDB commands. We want to use
# the same timeout as the default dejagnu timeout, unless the user has
# already provided a specific value (probably through a site.exp file).
@@ -3666,7 +3733,7 @@ proc build_executable { testname executable {sources ""} {options {debug}} } {
set sources ${executable}.c
}
- set binfile ${objdir}/${subdir}/${executable}
+ set binfile [standard_output_file $executable]
set objects {}
for {set i 0} "\$i<[llength $sources]" {incr i} {
@@ -3694,12 +3761,12 @@ proc build_executable { testname executable {sources ""} {options {debug}} } {
}
# Starts fresh GDB binary and loads EXECUTABLE into GDB. EXECUTABLE is
-# the name of binary in ${objdir}/${subdir}.
+# the basename of the binary.
proc clean_restart { executable } {
global srcdir
global objdir
global subdir
- set binfile ${objdir}/${subdir}/${executable}
+ set binfile [standard_output_file ${executable}]
gdb_exit
gdb_start