Revision: 899 Author: tim.bunce Date: Sat Nov 14 12:51:55 2009 Log: Added tests for calls from sort() and s//sub()/e
http://code.google.com/p/perl-devel-nytprof/source/detail?r=899 Modified: /trunk/Changes /trunk/t/test62-subcaller1.p /trunk/t/test62-subcaller1.rdt ======================================= --- /trunk/Changes Wed Oct 28 14:45:45 2009 +++ /trunk/Changes Sat Nov 14 12:51:55 2009 @@ -7,10 +7,13 @@ =head2 Changes in Devel::NYTProf 2.11 XXX subroutine profiler docs need update -XXX OP_SUBSTCONT, OP_REQUIRE +XXX OP_SUBSTCONT XXX should add test for embedded src code, incl string eval XXX handling of BEGIN's e.g., Perl::Critic::Document (1.105) line 325 -XXX fix treemap +XXX test treemap? +XXX add "calls N subs" to treemap mouseover box +XXX Should slowops that call other code appear in call tree? +XXX test profiling code that has syntax errors Note: The file format has changed. Old files can't be read. @@ -20,6 +23,7 @@ $SIG{__WARN__} was set to a code reference. Fixed subroutine recursion depth measurement. Fixed missing embedded eval source code for some older perls. + Fixed assorted compiler warnings for various configurations. Changed ReadStream SUB_LINE_RANGE tag to SUB_INFO. ======================================= --- /trunk/t/test62-subcaller1.p Thu Oct 22 09:24:17 2009 +++ /trunk/t/test62-subcaller1.p Sat Nov 14 12:51:55 2009 @@ -18,7 +18,23 @@ # test dying from an xsub where the surrounding eval is an # argument to a sub call. This used to coredump. -sub use_eval_arg { } -use_eval_arg eval { Devel::NYTProf::Test::example_xsub(0, "die") }; +sub sub1 { $_[0] } +sub1 eval { Devel::NYTProf::Test::example_xsub(0, "die") }; + +# test sub calls (xs and perl) from within a sort block +sub sub2 { $_[0] } +my @a = sort { + Devel::NYTProf::Test::example_xsub(); + sub2($a) <=> sub2($b); +} (1,3,2); + +# test sub call as a sort block +sub sub3 { $_[0] } # XXX not recorded due to limitation of perl +my @b = sort \&sub3, 3, 1, 2; + +# test sub call from a subst +sub sub4 { $_[0] } +my $a = "abcbd"; +$a =~ s/b/sub4(uc($1))/ge; exit 0; ======================================= --- /trunk/t/test62-subcaller1.rdt Wed Oct 28 14:45:45 2009 +++ /trunk/t/test62-subcaller1.rdt Sat Nov 14 12:51:55 2009 @@ -23,7 +23,15 @@ fid_block_time 1 17 [ 0 2 ] fid_block_time 1 21 [ 0 1 ] fid_block_time 1 22 [ 0 2 ] -fid_block_time 1 24 [ 0 1 ] +fid_block_time 1 25 [ 0 6 ] +fid_block_time 1 26 [ 0 3 ] +fid_block_time 1 27 [ 0 1 ] +fid_block_time 1 28 [ 0 3 ] +fid_block_time 1 33 [ 0 1 ] +fid_block_time 1 36 [ 0 2 ] +fid_block_time 1 37 [ 0 1 ] +fid_block_time 1 38 [ 0 1 ] +fid_block_time 1 40 [ 0 1 ] fid_block_time 2 7 [ 0 1 ] fid_block_time 2 8 [ 0 1 ] fid_block_time 2 9 [ 0 1 ] @@ -34,14 +42,25 @@ fid_fileinfo 1 sub MyTie::STORE 8-8 fid_fileinfo 1 sub MyTie::TIESCALAR 6-6 fid_fileinfo 1 sub main::BEGIN 0-0 +fid_fileinfo 1 sub main::CORE:sort 0-0 +fid_fileinfo 1 sub main::CORE:subst 0-0 fid_fileinfo 1 sub main::RUNTIME 1-1 -fid_fileinfo 1 sub main::use_eval_arg 21-21 +fid_fileinfo 1 sub main::sub1 21-21 +fid_fileinfo 1 sub main::sub2 25-25 +fid_fileinfo 1 sub main::sub3 32-32 +fid_fileinfo 1 sub main::sub4 36-36 fid_fileinfo 1 call 11 MyTie::TIESCALAR [ 1 0 0 0 0 0 0 main::RUNTIME ] fid_fileinfo 1 call 12 MyTie::STORE [ 1 0 0 0 0 0 0 main::RUNTIME ] fid_fileinfo 1 call 13 MyTie::FETCH [ 1 0 0 0 0 0 0 main::RUNTIME ] fid_fileinfo 1 call 17 Devel::NYTProf::Test::example_xsub [ 1 0 0 0 0 0 0 main::RUNTIME ] fid_fileinfo 1 call 22 Devel::NYTProf::Test::example_xsub [ 1 0 0 0 0 0 0 main::RUNTIME ] -fid_fileinfo 1 call 22 main::use_eval_arg [ 1 0 0 0 0 0 0 main::RUNTIME ] +fid_fileinfo 1 call 22 main::sub1 [ 1 0 0 0 0 0 0 main::RUNTIME ] +fid_fileinfo 1 call 26 Devel::NYTProf::Test::example_xsub [ 3 0 0 0 0 0 0 main::CORE:sort ] +fid_fileinfo 1 call 27 main::CORE:sort [ 1 0 0 0 0 0 0 main::RUNTIME ] +fid_fileinfo 1 call 28 main::sub2 [ 6 0 0 0 0 0 0 main::CORE:sort ] +fid_fileinfo 1 call 33 main::CORE:sort [ 1 0 0 0 0 0 0 main::RUNTIME ] +fid_fileinfo 1 call 38 main::CORE:subst [ 1 0 0 0 0 0 0 main::RUNTIME ] +fid_fileinfo 1 call 38 main::sub4 [ 2 0 0 0 0 0 0 main::RUNTIME ] fid_fileinfo 2 [ Devel/NYTProf/Test.pm 2 2 0 0 ] fid_fileinfo 2 sub Devel::NYTProf::Test::example_sub 13-13 fid_fileinfo 3 [ Exporter.pm 3 2 0 0 ] @@ -56,7 +75,15 @@ fid_line_time 1 17 [ 0 2 ] fid_line_time 1 21 [ 0 1 ] fid_line_time 1 22 [ 0 2 ] -fid_line_time 1 24 [ 0 1 ] +fid_line_time 1 25 [ 0 6 ] +fid_line_time 1 26 [ 0 3 ] +fid_line_time 1 27 [ 0 1 ] +fid_line_time 1 28 [ 0 3 ] +fid_line_time 1 33 [ 0 1 ] +fid_line_time 1 36 [ 0 2 ] +fid_line_time 1 37 [ 0 1 ] +fid_line_time 1 38 [ 0 1 ] +fid_line_time 1 40 [ 0 1 ] fid_line_time 2 7 [ 0 1 ] fid_line_time 2 8 [ 0 1 ] fid_line_time 2 9 [ 0 1 ] @@ -73,7 +100,15 @@ fid_sub_time 1 17 [ 0 2 ] fid_sub_time 1 21 [ 0 1 ] fid_sub_time 1 22 [ 0 2 ] -fid_sub_time 1 24 [ 0 1 ] +fid_sub_time 1 25 [ 0 6 ] +fid_sub_time 1 26 [ 0 3 ] +fid_sub_time 1 27 [ 0 1 ] +fid_sub_time 1 28 [ 0 3 ] +fid_sub_time 1 33 [ 0 1 ] +fid_sub_time 1 36 [ 0 2 ] +fid_sub_time 1 37 [ 0 1 ] +fid_sub_time 1 38 [ 0 1 ] +fid_sub_time 1 40 [ 0 1 ] fid_sub_time 2 7 [ 0 1 ] fid_sub_time 2 8 [ 0 1 ] fid_sub_time 2 9 [ 0 1 ] @@ -83,9 +118,10 @@ profile_modes fid_line_time line profile_modes fid_sub_time sub sub_subinfo Devel::NYTProf::Test::example_sub [ 2 13 13 0 0 0 0 0 ] -sub_subinfo Devel::NYTProf::Test::example_xsub [ undef undef undef 2 0 0 0 0 ] +sub_subinfo Devel::NYTProf::Test::example_xsub [ undef undef undef 5 0 0 0 0 ] sub_subinfo Devel::NYTProf::Test::example_xsub called_by 1 17 [ 1 0 0 0 0 0 0 main::RUNTIME ] sub_subinfo Devel::NYTProf::Test::example_xsub called_by 1 22 [ 1 0 0 0 0 0 0 main::RUNTIME ] +sub_subinfo Devel::NYTProf::Test::example_xsub called_by 1 26 [ 3 0 0 0 0 0 0 main::CORE:sort ] sub_subinfo MyTie::FETCH [ 1 7 7 1 0 0 0 0 ] sub_subinfo MyTie::FETCH called_by 1 13 [ 1 0 0 0 0 0 0 main::RUNTIME ] sub_subinfo MyTie::STORE [ 1 8 8 1 0 0 0 0 ] @@ -93,6 +129,16 @@ sub_subinfo MyTie::TIESCALAR [ 1 6 6 1 0 0 0 0 ] sub_subinfo MyTie::TIESCALAR called_by 1 11 [ 1 0 0 0 0 0 0 main::RUNTIME ] sub_subinfo main::BEGIN [ 1 0 0 0 0 0 0 0 ] +sub_subinfo main::CORE:sort [ 1 0 0 2 0 0 0 0 ] +sub_subinfo main::CORE:sort called_by 1 27 [ 1 0 0 0 0 0 0 main::RUNTIME ] +sub_subinfo main::CORE:sort called_by 1 33 [ 1 0 0 0 0 0 0 main::RUNTIME ] +sub_subinfo main::CORE:subst [ 1 0 0 1 0 0 0 0 ] +sub_subinfo main::CORE:subst called_by 1 38 [ 1 0 0 0 0 0 0 main::RUNTIME ] sub_subinfo main::RUNTIME [ 1 1 1 0 0 0 0 0 ] -sub_subinfo main::use_eval_arg [ 1 21 21 1 0 0 0 0 ] -sub_subinfo main::use_eval_arg called_by 1 22 [ 1 0 0 0 0 0 0 main::RUNTIME ] +sub_subinfo main::sub1 [ 1 21 21 1 0 0 0 0 ] +sub_subinfo main::sub1 called_by 1 22 [ 1 0 0 0 0 0 0 main::RUNTIME ] +sub_subinfo main::sub2 [ 1 25 25 6 0 0 0 0 ] +sub_subinfo main::sub2 called_by 1 28 [ 6 0 0 0 0 0 0 main::CORE:sort ] +sub_subinfo main::sub3 [ 1 32 32 0 0 0 0 0 ] +sub_subinfo main::sub4 [ 1 36 36 2 0 0 0 0 ] +sub_subinfo main::sub4 called_by 1 38 [ 2 0 0 0 0 0 0 main::RUNTIME ] -- You've received this message because you are subscribed to the Devel::NYTProf Development User group. Group hosted at: http://groups.google.com/group/develnytprof-dev Project hosted at: http://perl-devel-nytprof.googlecode.com CPAN distribution: http://search.cpan.org/dist/Devel-NYTProf To post, email: [email protected] To unsubscribe, email: [email protected]
