Author: pgollucci Date: Wed Aug 23 00:14:10 2006 New Revision: 433955 URL: http://svn.apache.org/viewvc?rev=433955&view=rev Log: Create server side reponse handles for 2.x
Added: perl/Apache-SizeLimit/trunk/t/response/TestApache2/ perl/Apache-SizeLimit/trunk/t/response/TestApache2/basic.pm perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests.pm perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests2.pm perl/Apache-SizeLimit/trunk/t/response/TestApache2/deprecated.pm Added: perl/Apache-SizeLimit/trunk/t/response/TestApache2/basic.pm URL: http://svn.apache.org/viewvc/perl/Apache-SizeLimit/trunk/t/response/TestApache2/basic.pm?rev=433955&view=auto ============================================================================== --- perl/Apache-SizeLimit/trunk/t/response/TestApache2/basic.pm (added) +++ perl/Apache-SizeLimit/trunk/t/response/TestApache2/basic.pm Wed Aug 23 00:14:10 2006 @@ -0,0 +1,105 @@ +package TestApache::basic; + +use strict; +use warnings; + +use Apache::Test qw(-withtestmore); + +use Apache::Constants qw(OK); +use Apache::SizeLimit; +use Config; + +use constant ONE_MB => 1024; +use constant TEN_MB => 1024 * 10; + +sub handler { + my $r = shift; + + plan $r, tests => 12; + + ok( ! Apache::SizeLimit->_limits_are_exceeded(), + 'check that _limits_are_exceeded() returns false without any limits set' ); + + { + my ( $size, $shared ) = Apache::SizeLimit->_check_size(); + cmp_ok( $size, '>', 0, 'proc size is reported > 0' ); + + SKIP: + { + skip 'I have no idea what getppid() on Win32 might return', 1 + if $Config{'osname'} eq 'MSWin32'; + + cmp_ok( Apache::SizeLimit->_platform_getppid(), '>', 1, + 'real_getppid() > 1' ); + } + } + + { + # We can assume this will use _at least_ 10MB of memory, based on + # assuming a scalar consumes >= 1K. + my @big = ('x') x TEN_MB; + + my ( $size, $shared ) = Apache::SizeLimit->_check_size(); + cmp_ok( $size, '>', TEN_MB, 'proc size is reported > ' . TEN_MB ); + + Apache::SizeLimit->set_max_process_size(ONE_MB); + + ok( Apache::SizeLimit->_limits_are_exceeded(), + 'check that _limits_are_exceeded() returns true based on max process size' ); + + SKIP: + { + skip 'We cannot get shared memory on this platform.', 3 + unless $shared > 0; + + cmp_ok( $size, '>', $shared, 'proc size is greater than shared size' ); + + Apache::SizeLimit->set_max_process_size(0); + Apache::SizeLimit->set_min_shared_size( ONE_MB * 100 ); + + ok( Apache::SizeLimit->_limits_are_exceeded(), + 'check that _limits_are_exceeded() returns true based on min share size' ); + + Apache::SizeLimit->set_min_shared_size(0); + Apache::SizeLimit->set_max_unshared_size(1); + + ok( Apache::SizeLimit->_limits_are_exceeded(), + 'check that _limits_are_exceeded() returns true based on max unshared size' ); + } + } + + { + # Lame test - A way to check that setting this _does_ + # something would be welcome ;) + Apache::SizeLimit->set_check_interval(10); + is( $Apache::SizeLimit::CHECK_EVERY_N_REQUESTS, 10, + 'set_check_interval set global' ); + } + + { + Apache::SizeLimit->set_max_process_size(0); + Apache::SizeLimit->set_min_shared_size(0); + Apache::SizeLimit->set_max_unshared_size(0); + + my $handlers = $r->get_handlers('PerlCleanupHandler'); + is( scalar @$handlers, 0, + 'there is no PerlCleanupHandler before add_cleanup_handler()' ); + + Apache::SizeLimit->add_cleanup_handler($r); + + $handlers = $r->get_handlers('PerlCleanupHandler'); + is( scalar @$handlers, 1, + 'there is one PerlCleanupHandler after add_cleanup_handler()' ); + + Apache::SizeLimit->add_cleanup_handler($r); + + $handlers = $r->get_handlers('PerlCleanupHandler'); + is( scalar @$handlers, 1, + 'there is stil one PerlCleanupHandler after add_cleanup_handler() a second time' ); + } + + return OK; +} + + +1; Added: perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests.pm URL: http://svn.apache.org/viewvc/perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests.pm?rev=433955&view=auto ============================================================================== --- perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests.pm (added) +++ perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests.pm Wed Aug 23 00:14:10 2006 @@ -0,0 +1,52 @@ +package TestApache::check_n_requests; + +use strict; +use warnings; + +use Apache::Constants; + +use Apache::Test qw(-withtestmore); +use Apache::TestUtil; + +use Apache::SizeLimit; + +use constant ONE_MB => 1024; +use constant TEN_MB => ONE_MB * 10; +use constant TWENTY_MB => TEN_MB * 2; + +my $i = 0; +my %hash = (); + +sub handler { + my $r = shift; + + plan $r, tests => 11; + + Apache::SizeLimit->add_cleanup_handler($r); + Apache::SizeLimit->set_max_process_size(TEN_MB); + ## this should cause us to fire + Apache::SizeLimit->set_check_interval(); + + # We can assume this will use _at least_ 1MB of memory, based on + # assuming a scalar consumes >= 1K. + # and after 10 requests, we should be _at least_ 10MB of memory + for (0..9) { + my @big = ('x') x ONE_MB; + $hash{$i++} = [EMAIL PROTECTED]; + is( + $i, + $i, + "now using $i MB of memory (at least)" + ); + } + + is( + 1, + Apache::SizeLimit->_limits_are_exceeded(), + "we passed the limits and _WILL_ kill the child" + ); + + return Apache::Constants::OK; +} + +1; Added: perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests2.pm URL: http://svn.apache.org/viewvc/perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests2.pm?rev=433955&view=auto ============================================================================== --- perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests2.pm (added) +++ perl/Apache-SizeLimit/trunk/t/response/TestApache2/check_n_requests2.pm Wed Aug 23 00:14:10 2006 @@ -0,0 +1,49 @@ +package TestApache::check_n_requests2; + +use strict; +use warnings; + +use Apache::Constants; +use Apache::Log; + +use Apache::Test qw(-withtestmore); + +use Apache::SizeLimit; + +use constant ONE_MB => 1024; +use constant TEN_MB => ONE_MB * 10; +use constant TWENTY_MB => TEN_MB * 2; + +my $i = 0; +my %hash = (); + +sub handler { + my $r = shift; + + plan $r, tests => 11; + + Apache::SizeLimit->add_cleanup_handler($r); + Apache::SizeLimit->set_max_process_size(TEN_MB); + ## this should cause us _NOT_ to fire + Apache::SizeLimit->set_check_interval(5); + + # We can assume this will use _at least_ 1MB of memory, based on + # assuming a scalar consumes >= 1K. + # and after 10 requests, we should be _at least_ 10MB of memory + for (0..9) { + my @big = ('x') x ONE_MB; + $hash{$i++} = [EMAIL PROTECTED]; + + is($i, $i, "now using $i MB of memory (at least)"); + } + + is( + 1, + Apache::SizeLimit->_limits_are_exceeded(), + "we passed the limits and will _NOT_ kill the child" + ); + + return Apache::Constants::OK; +} + +1; Added: perl/Apache-SizeLimit/trunk/t/response/TestApache2/deprecated.pm URL: http://svn.apache.org/viewvc/perl/Apache-SizeLimit/trunk/t/response/TestApache2/deprecated.pm?rev=433955&view=auto ============================================================================== --- perl/Apache-SizeLimit/trunk/t/response/TestApache2/deprecated.pm (added) +++ perl/Apache-SizeLimit/trunk/t/response/TestApache2/deprecated.pm Wed Aug 23 00:14:10 2006 @@ -0,0 +1,42 @@ +package TestApache::deprecated; + +use strict; +use warnings; + +use Apache::Test qw(-withtestmore); + +use Apache::Constants qw(OK); +use Apache::SizeLimit; + + +sub handler { + my $r = shift; + + plan $r, tests => 5; + + my $handlers = $r->get_handlers('PerlCleanupHandler'); + is( scalar @$handlers, 0, + 'there is no PerlCleanupHandler before add_cleanup_handler()' ); + + Apache::SizeLimit::setmax( 100_000 ); + is( $Apache::SizeLimit::MAX_PROCESS_SIZE, 100_000, + 'setmax changes $MAX_PROCESS_SIZE' ); + + Apache::SizeLimit::setmin( 1 ); + is( $Apache::SizeLimit::MIN_SHARE_SIZE, 1, + 'setmax changes $MIN_SHARE_SIZE' ); + + Apache::SizeLimit::setmax_unshared( 1 ); + is( $Apache::SizeLimit::MIN_SHARE_SIZE, 1, + 'setmax_unshared changes $MAX_UNSHARED_SIZE' ); + + $handlers = $r->get_handlers('PerlCleanupHandler'); + is( scalar @$handlers, 1, + 'there is one PerlCleanupHandler after calling deprecated functions' ); + + + return OK; +} + + +1;