| ##=== TEST.safecode.report - Report description for SAFECode -*- perl -*---===## |
| # |
| # This file defines a report to be generated for the pool allocator tests. |
| # |
| ##===----------------------------------------------------------------------===## |
| |
| # Sort by program name |
| $SortCol = 0; |
| $TrimRepeatedPrefix = 1; |
| |
| # FormatTime - Convert a time from 1m23.45 into 83.45 |
| sub FormatTime { |
| my $Time = shift; |
| if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) { |
| return sprintf("%7.3f", $1*60.0+$2); |
| } |
| |
| return sprintf("%6.2f", $Time); |
| } |
| |
| |
| sub RuntimePercent { |
| my ($Cols, $Col) = @_; |
| if ($Cols->[$Col-1] ne "*" and $Cols->[4] ne "*" and |
| $Cols->[4] != "0") { |
| return sprintf "%7.2f", 100*$Cols->[$Col-1]/$Cols->[4]; |
| } else { |
| return "n/a"; |
| } |
| } |
| |
| @LatexColumns = (1, 5, 8, 12, 9, 13, 14, 15, 2, 16); |
| |
| my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench'; |
| my $PTRDIST = 'MultiSource/Benchmarks/Ptrdist'; |
| |
| # These are the columns for the report. The first entry is the header for the |
| # column, the second is the regex to use to match the value. Empty list create |
| # seperators, and closures may be put in for custom processing. |
| ( |
| # Name |
| ["Name:" , '\'([^\']+)\' Program'], |
| ["LOC" , 'LOC:\s*([0-9]+)'], |
| [], |
| # Times |
| ["GCC", 'GCC-RUN-TIME: user\s*([.0-9m:]+)', \&FormatTime], |
| ["Valgrind", 'RUN-TIME-VALGRIND: user\s*([.0-9m:]+)', \&FormatTime], |
| [], |
| ["SC Time", 'RUN-TIME-SAFECODE: user\s*([.0-9m:]+)', \&FormatTime], |
| # ["NumPools", '([0-9]+).*Number of pools allocated'], |
| # ["Typesafe", '([0-9]+).*Number of typesafe pools'], |
| # ["BumpPtr", '([0-9]+).*Number of bump pointer pools'], |
| # ["PFE", '([0-9]+).*Number of poolfree.s elided'], |
| # ["NumArgs", '([0-9]+).*Number of function arguments added'], |
| # ["MaxArgs", '([0-9]+).*Maximum function arguments added'], |
| #["Nonprofit", '([0-9]+).*Number of DSNodes not profitable'], |
| [] |
| ); |
| |