From 3809f6458948459a466a559da99de6593bea1e83 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 26 Feb 2015 18:24:56 +0000 Subject: [PATCH] Add profopt-target-cleanup 2015-02-26 Tom de Vries * 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 | 6 ++++++ gcc/testsuite/lib/profopt.exp | 37 ++++++++++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1211fab349b..c9789d99b4f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2015-02-26 Tom de Vries + + * 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 * lib/gcov.exp: Cleanup in case of xfail. diff --git a/gcc/testsuite/lib/profopt.exp b/gcc/testsuite/lib/profopt.exp index 6c01a870a0b..027ae9d987b 100644 --- a/gcc/testsuite/lib/profopt.exp +++ b/gcc/testsuite/lib/profopt.exp @@ -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" } { -- 2.30.2