dslinux/user/perl/t/lib/dprof V.pm test1_t test1_v test2_t test2_v test3_t test3_v test4_t test4_v test5_t test5_v test6_t test6_v test7_t test7_v test8_t test8_v
cayenne
dslinux_cayenne at user.in-berlin.de
Mon Dec 4 18:01:55 CET 2006
Update of /cvsroot/dslinux/dslinux/user/perl/t/lib/dprof
In directory antilope:/tmp/cvs-serv17422/t/lib/dprof
Added Files:
V.pm test1_t test1_v test2_t test2_v test3_t test3_v test4_t
test4_v test5_t test5_v test6_t test6_v test7_t test7_v
test8_t test8_v
Log Message:
Adding fresh perl source to HEAD to branch from
--- NEW FILE: test8_v ---
# perl
use V;
dprofpp( '-t' );
$expected =
qq{main::foo (2x)
main::bar
};
report 20, sub { $expected eq $results };
--- NEW FILE: test1_v ---
# perl
use V;
dprofpp( '-T' );
$expected =
qq{main::bar
main::baz
main::bar
main::foo
main::bar
main::foo
main::bar
};
report 1, sub { $expected eq $results };
dprofpp('-TF');
report 2, sub { $expected eq $results };
dprofpp( '-t' );
report 3, sub { $expected eq $results };
dprofpp('-tF');
report 4, sub { $expected eq $results };
--- NEW FILE: test8_t ---
sub foo {
print "in sub foo\n";
}
sub bar {
print "in sub bar\n";
$^P -= 0x40;
}
foo();
$^P -= 0x40;
foo();
$^P += 0x40;
bar();
$^P += 0x40;
--- NEW FILE: test1_t ---
sub foo {
print "in sub foo\n";
bar();
}
sub bar {
print "in sub bar\n";
}
sub baz {
print "in sub baz\n";
bar();
foo();
}
bar();
baz();
foo();
--- NEW FILE: test5_v ---
# perl
use V;
dprofpp( '-T' );
$expected =
qq{main::foo1
main::bar
main::yeppers
main::foo2
main::bar
main::yeppers
};
report 17, sub { $expected eq $results };
--- NEW FILE: test5_t ---
# Test that dprof doesn't break
# &bar; used as &bar(@_);
sub foo1 {
print "in foo1(@_)\n";
bar(@_);
}
sub foo2 {
print "in foo2(@_)\n";
&bar;
}
sub bar {
print "in bar(@_)\n";
if( @_ > 0 ){
&yeppers;
}
}
sub yeppers {
print "rest easy\n";
}
&foo1( A );
&foo2( B );
--- NEW FILE: test4_v ---
# perl
use V;
dprofpp( '-T' );
$expected =
qq{main::bar
main::bar
main::baz
main::bar
main::bar
main::bar
main::foo
main::bar
main::foo
main::bar
};
report 13, sub { $expected eq $results };
dprofpp('-TF');
report 14, sub { $expected eq $results };
dprofpp( '-t' );
$expected =
qq{main::bar (2x)
main::baz
main::bar (3x)
main::foo
main::bar
main::foo
main::bar
};
report 15, sub { $expected eq $results };
dprofpp('-tF');
report 16, sub { $expected eq $results };
--- NEW FILE: test3_t ---
sub foo {
print "in sub foo\n";
exit(0);
bar();
}
sub bar {
print "in sub bar\n";
}
sub baz {
print "in sub baz\n";
bar();
foo();
}
bar();
baz();
foo();
--- NEW FILE: test4_t ---
sub foo {
print "in sub foo\n";
bar();
}
sub bar {
print "in sub bar\n";
}
sub baz {
print "in sub baz\n";
bar();
bar();
bar();
foo();
}
bar();
eval { fork };
bar();
baz();
foo();
--- NEW FILE: test3_v ---
# perl
use V;
dprofpp( '-T' );
$e1 = $expected =
qq{main::bar
main::baz
main::bar
main::foo
};
report 9, sub { $expected eq $results };
dprofpp('-TF');
$e2 = $expected =
qq{main::bar
main::baz
main::bar
main::foo
};
report 10, sub { $expected eq $results };
dprofpp( '-t' );
$expected = $e1;
report 11, sub { 1 };
dprofpp('-tF');
$expected = $e2;
report 12, sub { $expected eq $results };
--- NEW FILE: test7_t ---
BEGIN {
print "in BEGIN\n";
}
sub foo {
print "in sub foo\n";
}
foo();
--- NEW FILE: test7_v ---
# perl
use V;
dprofpp( '-T' );
$expected =
qq{main::BEGIN
main::foo
};
report 19, sub { $expected eq $results };
--- NEW FILE: test2_t ---
sub foo {
print "in sub foo\n";
bar();
}
sub bar {
print "in sub bar\n";
}
sub baz {
print "in sub baz\n";
bar();
bar();
bar();
foo();
}
bar();
bar();
baz();
foo();
--- NEW FILE: V.pm ---
package V;
use Getopt::Std 'getopts';
getopts('vp:d:');
require Exporter;
@ISA = 'Exporter';
@EXPORT = qw( dprofpp $opt_v $results $expected report @results );
@EXPORT_OK = qw( notok ok $num );
$num = 0;
$results = $expected = '';
$perl = $opt_p || $^X;
$dpp = $opt_d || '../utils/dprofpp';
$dpp .= '.com' if $^O eq 'VMS';
print "\nperl: $perl\n" if $opt_v;
if( ! -f $perl ){ die "Where's Perl?" }
if( ! -f $dpp ) {
($dpp = $^X) =~ s@(^.*)[/|\\].*@$1/dprofpp@;
die "Where's dprofpp?" if( ! -f $dpp );
}
sub dprofpp {
my $switches = shift;
open( D, "$perl \"-I../lib\" $dpp \"$switches\" 2> err |" ) || warn "$0: Can't run. $!\n";
@results = <D>;
close D;
open( D, "<err" ) || warn "$0: Can't open: $!\n";
@err = <D>;
close D;
push( @results, @err ) if @err;
$results = qq{@results};
# ignore Loader (Dyna/Auto etc), leave newline
$results =~ s/^\w+Loader::import//;
$results =~ s/\n /\n/gm;
$results;
}
sub report {
$num = shift;
my $sub = shift;
my $x;
$x = &$sub;
$x ? &ok : ¬ok;
}
sub ok {
print "ok $num\n";
}
sub notok {
print "not ok $num\n";
print "\nResult\n{$results}\n";
print "Expected\n{$expected}\n";
}
1;
--- NEW FILE: test2_v ---
# perl
use V;
dprofpp( '-T' );
$expected =
qq{main::bar
main::bar
main::baz
main::bar
main::bar
main::bar
main::foo
main::bar
main::foo
main::bar
};
report 5, sub { $expected eq $results };
dprofpp('-TF');
report 6, sub { $expected eq $results };
dprofpp( '-t' );
$expected =
qq{main::bar (2x)
main::baz
main::bar (3x)
main::foo
main::bar
main::foo
main::bar
};
report 7, sub { $expected eq $results };
dprofpp('-tF');
report 8, sub { $expected eq $results };
--- NEW FILE: test6_t ---
sub foo {
my $x;
my $y;
print "in sub foo\n";
for( $x = 1; $x < 100; ++$x ){
bar();
for( $y = 1; $y < 100; ++$y ){
}
}
}
sub bar {
my $x;
print "in sub bar\n";
for( $x = 1; $x < 100; ++$x ){
}
die "bar exiting";
}
sub baz {
print "in sub baz\n";
eval { bar(); };
eval { foo(); };
}
eval { bar(); };
baz();
eval { foo(); };
--- NEW FILE: test6_v ---
# perl
use V;
dprofpp( '-T' );
$expected =
qq{main::bar
main::baz
main::bar
main::foo
main::bar
main::foo
main::bar
};
report 18, sub { $expected eq $results };
More information about the dslinux-commit
mailing list