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]

Reply via email to