Author: stas Date: Mon Nov 29 07:27:46 2004 New Revision: 106914 URL: http://svn.apache.org/viewcvs?view=rev&rev=106914 Log: on windows $pool->clean, followed by $pool->destroy no longer breaks (apparenly fixed by the recent rewrite of APR::Pool implementation)
Modified: perl/modperl/trunk/t/lib/TestAPRlib/pool.pm perl/modperl/trunk/todo/release Modified: perl/modperl/trunk/t/lib/TestAPRlib/pool.pm Url: http://svn.apache.org/viewcvs/perl/modperl/trunk/t/lib/TestAPRlib/pool.pm?view=diff&rev=106914&p1=perl/modperl/trunk/t/lib/TestAPRlib/pool.pm&r1=106913&p2=perl/modperl/trunk/t/lib/TestAPRlib/pool.pm&r2=106914 ============================================================================== --- perl/modperl/trunk/t/lib/TestAPRlib/pool.pm (original) +++ perl/modperl/trunk/t/lib/TestAPRlib/pool.pm Mon Nov 29 07:27:46 2004 @@ -11,15 +11,15 @@ use APR::Table (); sub num_of_tests { - return 65; + return 74; } sub test { my $pool = APR::Pool->new(); my $table = APR::Table::make($pool, 2); - ### custom pools ### + ### custom pools ### # test: explicit pool object destroy destroys the custom pool { @@ -43,9 +43,6 @@ } - - - # test: lexical scoping DESTROYs the custom pool { { @@ -66,6 +63,8 @@ $table->clear; } + + ### custom pools + sub-pools ### # test: basic pool and sub-pool tests + implicit destroy of pool objects @@ -348,39 +347,32 @@ "non existing function"); } -# XXX: on windows $pool->clean, followed by $pool->destroy breaks -# other tests. Specifically, -# perl t/TEST apr/pool compat/send_fd -# or -# perl t/TEST apr/pool directive/setupenv -# causes a -# response had protocol HTTP/0.9 (headers not sent?) -# error. on unix it works fine. -# -# ### $p->clear ### -# { -# my ($pp, $sp) = both_pools_create_ok($table); -# $pp->clear; -# # both pools should have run their cleanups -# both_pools_destroy_ok($table); -# -# # sub-pool $sp should be now bogus, as clear() destroys -# # subpools -# eval { $sp->parent_get }; -# ok t_cmp($@, -# qr/invalid pool object/, -# "clear destroys sub pools"); -# -# # now we should be able to use the parent pool without -# # allocating it -# $pp->cleanup_register(\&set_cleanup, [$table, 're-using pool']); -# $pp->destroy; -# -# my @notes = $table->get('cleanup'); -# ok t_cmp('re-using pool', $notes[0]); -# -# $table->clear; -# } + + + ### $p->clear ### + { + my ($pp, $sp) = both_pools_create_ok($table); + $pp->clear; + # both pools should have run their cleanups + both_pools_destroy_ok($table); + + # sub-pool $sp should be now bogus, as clear() destroys + # subpools + eval { $sp->parent_get }; + ok t_cmp($@, + qr/invalid pool object/, + "clear destroys sub pools"); + + # now we should be able to use the parent pool without + # allocating it + $pp->cleanup_register(\&set_cleanup, [$table, 're-using pool']); + $pp->destroy; + + my @notes = $table->get('cleanup'); + ok t_cmp('re-using pool', $notes[0]); + + $table->clear; + } # a pool can be tagged, so when doing low level apr_pool tracing Modified: perl/modperl/trunk/todo/release Url: http://svn.apache.org/viewcvs/perl/modperl/trunk/todo/release?view=diff&rev=106914&p1=perl/modperl/trunk/todo/release&r1=106913&p2=perl/modperl/trunk/todo/release&r2=106914 ============================================================================== --- perl/modperl/trunk/todo/release (original) +++ perl/modperl/trunk/todo/release Mon Nov 29 07:27:46 2004 @@ -55,10 +55,6 @@ http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=108967266419527&w=2 owner: gozer -* on windows $pool->clean, followed by $pool->destroy breaks other tests - See test TestAPR::pool - http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=108547894817083&w=2 - * per-server cleanups core dump or are otherwise ineffective Apache->server->process->pconf->cleanup_register(sub { ... }); Report: geoff