standard_ada_testfile prog
-# Since we use no-force to compile prog, make sure we don't pick up files
-# from a previous compilation.
-remote_file host delete [standard_output_file prog.o]
-remote_file host delete [standard_output_file prog.ali]
-
# Compile pck without debuginfo but prog with it.
if {[gdb_compile_ada $srcdir/$subdir/$testdir/pck.adb \
[standard_output_file pck.o] object {}] != ""} {
return [gdb_test "continue" ".*Breakpoint $decimal, $function .*" "continue to $function"]
}
+# Clean the directory containing the standard output files.
+
+proc clean_standard_output_dir {} {
+ if { [info exists ::GDB_PERFTEST_MODE] && $::GDB_PERFTEST_MODE == "run" } {
+ # Don't clean, use $GDB_PERFTEST_MODE == compile results.
+ return
+ }
+
+ # Directory containing the standard output files.
+ set standard_output_dir [file normalize [standard_output_file ""]]
+
+ # Ensure that standard_output_dir is clean, or only contains
+ # gdb.log / gdb.sum.
+ set log_file_info [split [log_file -info]]
+ set log_file [file normalize [lindex $log_file_info end]]
+ if { $log_file == [file normalize [standard_output_file gdb.log]] } {
+ # Dir already contains active gdb.log. Don't remove the dir, but
+ # check that it's clean otherwise.
+ set res [glob -directory $standard_output_dir -tails *]
+ set ok 1
+ foreach f $res {
+ if { $f == "gdb.log" } {
+ continue
+ }
+ if { $f == "gdb.sum" } {
+ continue
+ }
+ set ok 0
+ }
+ if { !$ok } {
+ error "standard output dir not clean"
+ }
+ } else {
+ # Start with a clean dir.
+ remote_exec build "rm -rf $standard_output_dir"
+ }
+
+}
+
# Default implementation of gdb_init.
proc default_gdb_init { test_file_name } {
global gdb_wrapper_initialized
set gdb_test_file_name [file rootname [file tail $test_file_name]]
+ clean_standard_output_dir
+
# Make sure that the wrapper is rebuilt
# with the appropriate multilib option.
if { $gdb_wrapper_target != [current_target_name] } {