citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

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;