Add profopt-target-cleanup
authorTom de Vries <tom@codesourcery.com>
Thu, 26 Feb 2015 18:24:56 +0000 (18:24 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Thu, 26 Feb 2015 18:24:56 +0000 (18:24 +0000)
2015-02-26  Tom de Vries  <tom@codesourcery.com>

* lib/profopt.exp (profopt-target-cleanup): New proc.
(profopt-execute): Use profopt-target-cleanup to handle cleanup of
files from sources from dg-additional-sources.

From-SVN: r221024

gcc/testsuite/ChangeLog
gcc/testsuite/lib/profopt.exp

index 1211fab349bee094b42cd7c78d74b8e0498581bc..c9789d99b4fbb8fcae4a088bbd77ef408ec1d0ad 100644 (file)
@@ -1,3 +1,9 @@
+2015-02-26  Tom de Vries  <tom@codesourcery.com>
+
+       * lib/profopt.exp (profopt-target-cleanup): New proc.
+       (profopt-execute): Use profopt-target-cleanup to handle cleanup of
+       files from sources from dg-additional-sources.
+
 2015-02-26  Tom de Vries  <tom@codesourcery.com>
 
        * lib/gcov.exp: Cleanup in case of xfail.
index 6c01a870a0beaa1ae0d915a8f4fc2b38eac06513..027ae9d987b1e8c239dd3adc865708b3295a458c 100644 (file)
@@ -80,6 +80,30 @@ proc profopt-cleanup { testcase extlist } {
     }
 }
 
+#
+# profopt-target-cleanup -- remove profiling result files.
+#
+# DIR is the name of the directory
+# TESTCASE is the name of the test
+# EXT is the extensions of files to remove
+#
+proc profopt-target-cleanup { dir testcase ext } {
+    global additional_sources_used
+    set basename [file tail $testcase]
+    set base [file rootname $basename]
+    set file "$dir/$base.$ext"
+    eval "remote_file target delete $file"
+
+    if [info exists additional_sources_used] {
+       foreach srcfile $additional_sources_used {
+           set basename [file tail $srcfile]
+           set base [file rootname $basename]
+           set file "$dir/$base.$ext"
+           eval "remote_file target delete $file"
+       }
+    }
+}
+
 #
 # profopt-perf-value -- get performance value for a test
 #
@@ -262,10 +286,7 @@ proc profopt-execute { src } {
        remote_file build delete $execname3
        verbose "Testing $testcase, $option" 1
 
-       # Remove old profiling and performance data files.
-       foreach ext $prof_ext {
-           remote_file target delete $tmpdir/$base.$ext
-       }
+       # Remove old performance data files.
        if [info exists perf_ext] {
            profopt-cleanup $testcase $perf_ext
        }
@@ -285,6 +306,12 @@ proc profopt-execute { src } {
 
         set extra_options [dg-additional-files-options "" "$src"]
 
+       # Remove old profiling data files.  Make sure additional_sources_used is
+       # valid, by running it after dg-additional-files-options.
+       foreach ext $prof_ext {
+           profopt-target-cleanup $tmpdir $base $ext
+       }
+
        # Tree profiling requires TLS runtime support, which may need
        # additional flags.
        if { [string first "-fprofile-generate" $profile_option] >= 0 } {
@@ -368,7 +395,7 @@ proc profopt-execute { src } {
 
        # Remove the profiling data files.
        foreach ext $prof_ext {
-           remote_file target delete $tmpdir/$base.$ext
+           profopt-target-cleanup $tmpdir $base $ext
        }
 
        if { $status != "pass" } {