You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by st...@apache.org on 2005/03/05 01:58:42 UTC
svn commit: r156213 - perl/modperl/trunk/t/response/TestPerl/ithreads_args.pm
perl/modperl/trunk/t/response/TestPerl/ithreads_eval.pm
Author: stas
Date: Fri Mar 4 16:58:40 2005
New Revision: 156213
URL: http://svn.apache.org/viewcvs?view=rev&rev=156213
Log:
tests reproducing perl bugs #34341 and #34342 in ithreads
Added:
perl/modperl/trunk/t/response/TestPerl/ithreads_args.pm (with props)
perl/modperl/trunk/t/response/TestPerl/ithreads_eval.pm (with props)
Added: perl/modperl/trunk/t/response/TestPerl/ithreads_args.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/t/response/TestPerl/ithreads_args.pm?view=auto&rev=156213
==============================================================================
--- perl/modperl/trunk/t/response/TestPerl/ithreads_args.pm (added)
+++ perl/modperl/trunk/t/response/TestPerl/ithreads_args.pm Fri Mar 4 16:58:40 2005
@@ -0,0 +1,32 @@
+package TestPerl::ithreads_args;
+
+# reproducing a bug in perl ithreads: [perl #34342]
+# https://rt.perl.org/rt3/Ticket/Display.html?id=34342
+#
+# here an unshifted $r (i.e. as it leaves @_ populated causes a scalar
+# leak in the thread).
+
+use Devel::Peek;
+use Apache::Test;
+
+sub handler { # XXX: unshifted $_[0] leaks scalar
+ #Dump $_[0];
+ #my $r = shift; # shift removes the leak
+ my $r = $_[0];
+ #Dump $r; # here PADBUSY,PADMY prevent the ithread from cloning it
+
+ plan $r, tests => 1, need
+ need_threads,
+ {"perl >= 5.8.1 is required (this is $])" => ($] >= 5.008001)};
+
+ require threads;
+
+ warn "\n*** The following leak is expected (perl bug #34342) ***\n";
+ threads->new(sub {})->join;
+
+ ok 1;
+
+ return 0;
+}
+
+1;
Propchange: perl/modperl/trunk/t/response/TestPerl/ithreads_args.pm
------------------------------------------------------------------------------
svn:eol-style = native
Added: perl/modperl/trunk/t/response/TestPerl/ithreads_eval.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/t/response/TestPerl/ithreads_eval.pm?view=auto&rev=156213
==============================================================================
--- perl/modperl/trunk/t/response/TestPerl/ithreads_eval.pm (added)
+++ perl/modperl/trunk/t/response/TestPerl/ithreads_eval.pm Fri Mar 4 16:58:40 2005
@@ -0,0 +1,50 @@
+package TestPerl::ithreads_eval;
+
+# reproducing a bug in perl ithreads: [perl #34341]
+# https://rt.perl.org/rt3/Ticket/Display.html?id=34341
+#
+# $thr->join triggers the following leak:
+# - due to to local $0, (its second MAGIC's MG_OBJ,
+# you can see it in the output of Dump $0). This leak was first
+# spotted in the RegistryCooker.pm which localizes $0
+
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestUtil;
+
+use Devel::Peek;
+
+use Apache::Const -compile => 'OK';
+
+sub handler {
+ my $r = shift;
+
+ plan $r, tests => 1, need
+ need_threads,
+ {"perl >= 5.8.1 is required (this is $])" => ($] >= 5.008001)};
+
+ require threads;
+
+ eval <<'EOI';
+sub mytest {
+ local $0 = 'mememe'; # <== XXX: leaks scalar
+ my $thr;
+ $thr = threads->new(\&mythread);
+ $thr->join; # <== XXX: triggers scalar leak
+}
+sub mythread {
+ #Dump $0;
+}
+EOI
+
+ warn "\n*** The following leak is expected (perl bug 34341) ***\n";
+ mytest();
+
+ ok 1;
+
+ return Apache::OK;
+}
+
+1;
Propchange: perl/modperl/trunk/t/response/TestPerl/ithreads_eval.pm
------------------------------------------------------------------------------
svn:eol-style = native