From 3809f6458948459a466a559da99de6593bea1e83 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 26 Feb 2015 18:24:56 +0000 Subject: 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(-) (limited to 'gcc') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1211fab..c9789d9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,11 @@ 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. 2015-02-26 Sebastian Pop diff --git a/gcc/testsuite/lib/profopt.exp b/gcc/testsuite/lib/profopt.exp index 6c01a87..027ae9d 100644 --- a/gcc/testsuite/lib/profopt.exp +++ b/gcc/testsuite/lib/profopt.exp @@ -81,6 +81,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 # # TESTCASE is the name of the 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" } { -- cgit v1.1