#!/usr/bin/env perl use strict; use warnings; use File::Find; my $top_dir = "/mnt/dalmore-home/one/src/Perl6/nqp/vmtest"; my $MOAR = "/mnt/dalmore-home/one/src/Perl6/MoarVM/moar"; my $NQP_ORIGINAL = "/mnt/dalmore-home/one/src/MoarVM_Original/nqp"; my $sum_tests =0; my $sum_ok = 0; sub coverage_test { my $filename = $_; return if ($filename !~ /\.moarvm/); my ($start,$end,$counter); for my $line (`$MOAR --libpath=${NQP_ORIGINAL}/gen/moar/stage2 $filename`){ if ($line =~ /(\d+)\.\.(\d+)/){ $start = $1; $end = $2; } if ($line =~ /ok \d+/){ $counter++; } } if ($counter && $end){ $sum_ok += $counter; $sum_tests += $end; } } find(\&coverage_test,$top_dir); print "ok ==> $sum_ok\n"; print "total ==> $sum_tests\n"; my $parset = $sum_ok/$sum_tests; $parset *=100; print "parsent $parset%\n";