#!/bin/sh # # testall.atom # # This script creates all.Counts file that can be fed to prof(1) # to produce various basic block counting profiles. # # This script needs to be run at the top level of the Perl build # directory after the "make all" and "make test" targets have been run. # # You will also need to have perl.pixie built, # which means that you will also have Configured with -Doptimize=-g. # # After the script has been run (this will take several minutes) # you will have a file called all.Counts, which contains the cumulative # basic block counting results over the whole Perl test suite. # You can produce various reports using prof(1); # # prof -pixie -all -L. perl all.Counts # prof -pixie -heavy -all -L. perl all.Counts # prof -pixie -invocations -all -L. perl all.Counts # prof -pixie -lines -all -L. perl all.Counts # prof -pixie -testcoverage -all -L. perl all.Counts # prof -pixie -zero -all -L. perl all.Counts # # io/openpid and op/fork core on me, I don't know why and haven't # taken a look yet. # # jhi@iki.fi # if test ! -f /usr/bin/atom then echo "$0: no /usr/bin/atom" exit 1 fi if test ! -f perl; then echo "$0: no perl"; exit 1; fi if test ! -f perl.pixie; then echo "$0: no perl.pixie; exit 1; fi if test ! -f t/perl; then echo "$0: no t/perl; exit 1; fi LD_LIBRARY_PATH=`pwd` export LD_LIBRARY_PATH cd t || exit 1 ln -sf ../perl.pixie . the_t=`echo base/*.t comp/*.t cmd/*.t run/*.t io/*.t; echo op/*.t pragma/*.t lib/*.t pod/*.t camel-III/*.t` PERL_DESTRUCT_LEVEL=2 export PERL_DESTRUCT_LEVEL rm -f all.Counts for t in $the_t do echo `echo $t|sed s:\.t$::`" \c" case "$t" in *taint*|pragma/locale.t|lib/basename.t) T=-T ;; *) T='' ;; esac ./perl.pixie $T $t > /dev/null if cd .. then if test -f all.Counts then prof -pixie -merge new.Counts -L. -incobj libperl.so perl t/perl.Counts all.Counts mv new.Counts all.Counts else mv t/perl.Counts all.Counts fi cd t fi done exit 0