report.pm (1990B)
1 package tt::report; 2 use strict; 3 4 use List::MoreUtils qw( each_array ); 5 6 sub new { 7 my ($class, $name, $num_tests) = @_; 8 9 my $self = {}; 10 bless($self, $class); 11 12 $self->{name} = $name; 13 $self->{desc} = []; 14 $self->{vanilla} = []; 15 $self->{citrun} = []; 16 17 $self->{start_time} = time; 18 $self->{num_tests} = $num_tests; 19 20 return $self; 21 } 22 23 sub add { 24 my ($self, $field, $desc) = @_; 25 26 push @{ $self->{$field} }, ($desc); 27 } 28 29 sub write_header { 30 31 open (E2E_HEADER, ">", "tt/report.txt") or die "$!"; 32 33 format E2E_HEADER = 34 E2E TEST REPORT 35 =============== 36 37 SYSTEM INFO 38 @<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<< 39 "started at:", `date` 40 @<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<< 41 "host:", `uname -n` 42 @<<<<<<<<<<<<<<<< @<<<<<<<<<<<<< 43 "os:", `uname -s` 44 @<<<<<<<<<<<<<<<< @<<<<<<<<<<<<< 45 "version:", `uname -r` 46 @<<<<<<<<<<<<<<<< @<<<<<<<<<<<<< 47 "arch:", `uname -m` 48 @<<<<<<<<<<<<<<<< @<<<<<<<<<<<<< 49 "user:", `logname` 50 @<<<<<<<<<<<<<<<< @<<<<<<<<<<<<< 51 "citrun version:", 0 52 53 . 54 write E2E_HEADER; 55 close E2E_HEADER; 56 } 57 58 sub DESTROY { 59 my ($self) = @_; 60 61 my @diff; 62 my @desc = @{ $self->{desc} }; 63 my @vanilla = @{ $self->{vanilla} }; 64 my @citrun = @{ $self->{citrun} }; 65 66 my $it = each_array( @vanilla, @citrun ); 67 while ( my ($x, $y) = $it->() ) { 68 push @diff, $y * 100.0 / $x - 100.0; 69 } 70 71 if (! -e "tt/report.txt") { 72 write_header(); 73 } 74 75 open (E2E_REPORT, ">>", "tt/report.txt") or die "$!"; 76 77 format E2E_REPORT = 78 @<<<<<<<<<<<<<<<<<<<<<<<<<< 79 $self->{name} 80 @<<<<<<<<<<<<<< @#### s 81 "duration:", time - $self->{start_time} 82 @<<<<<<<<<<<<<< @##### 83 "tests planned:", $self->{num_tests} 84 85 @>>>>>>>>> @>>>>>>>>> @>>>>>>> 86 "vanilla", "citrun", "diff (%)" 87 --------------------------------------------------------------------- 88 @<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>> @>>>>>>>>> @>>>> ~~ 89 shift(@desc), shift(@vanilla), shift(@citrun), shift(@diff) 90 91 . 92 93 write E2E_REPORT; 94 close E2E_REPORT; 95 } 96 97 1;