#!/bin/sh # # testall.atom - test suite profiling on Tru 64 # # 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 . if test $# = 0; then the_t=`echo base/*.t comp/*.t cmd/*.t run/*.t io/*.t; echo op/*.t uni/*.t pod/*.t x2p/*.t; find ../ext ../lib -name '*.t' -print` else the_t=$@ fi PERL_DESTRUCT_LEVEL=2 export PERL_DESTRUCT_LEVEL PERL_CORE=1 export PERL_CORE rm -f all.Counts for t in $the_t do case "$t" in ext/*|lib/*) t=../$t ;; t/*) t=`echo $t|sed 's:^t/::'` ;; esac echo $t|sed 's:\.t$::' sw='' case "`head -1 $t|egrep -e '^#.* -.*T'`" in *-*T*) sw="$sw -T" ;; esac case "`head -1 $t|egrep -e '^#.* -.*t'`" in *-*t*) sw="$sw -t" ;; esac ./perl.pixie -I../lib $sw $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