[Forwarding from [EMAIL PROTECTED]
[EMAIL PROTECTED] wrote]
>> So I have been playing with different combinations of push_handlers()
>> and it looks like it's working properly for RUN_FIRST handlers (my
>> initial success with using DECLINED instead of OK) but not RUN_ALL
>> handlers.
[EMAIL PROTECTED] wrote]
> argh.
>> Here's the test case, run make test and check the log to see
>> which handlers ran. Anyone?
> well, I added something simple to the test suite, which looks like what
> you're trying to do, but I couldn't get it to fail.
> could you adjust this patch so that you can replicate the problem then
> submit it to dev? that way we have something in the test suite that
> exhibits the problem so we can replicate it and keep from regressing
> later on.
Geoff, the patch you gave me passed, which is good. I have adjusted the
patch so that it replicates the problem that Jeremy and I both ran into.
The specific problem seems to be that push_handlers doesn't behave as it
should when pushing a FixupHandler from a PostReadRequestHandler, if I am
understanding how this test works. The fixup handler gets pushed ok, but
it seems to remove the existing Fixup handlers. Let me know if you want
me test this another way, it's possible that I'm not fully grokking the
test magic here but I think I get it.
# Using Test.pm version 1.25
# Using Apache/Test.pm version 1.29
# Failed test 1 in t/hooks/stacked_handlers2.t at line 35
# testing : stacked_handlers
# expected: ran 3 PerlPostReadRequestHandler handlers
# ran 1 PerlTransHandler handlers
# ran 1 PerlMapToStorageHandler handlers
# ran 4 PerlHeaderParserHandler handlers
# ran 2 PerlAccessHandler handlers
# ran 2 PerlAuthenHandler handlers
# ran 2 PerlAuthzHandler handlers
# ran 1 PerlTypeHandler handlers
# ran 3 PerlFixupHandler handlers
# ran 2 PerlResponseHandler handlers
# ran 2 PerlOutputFilterHandler handlers
# received: ran 3 PerlPostReadRequestHandler handlers
# ran 1 PerlTransHandler handlers
# ran 1 PerlMapToStorageHandler handlers
# ran 4 PerlHeaderParserHandler handlers
# ran 2 PerlAccessHandler handlers
# ran 2 PerlAuthenHandler handlers
# ran 2 PerlAuthzHandler handlers
# ran 1 PerlTypeHandler handlers
# ran 1 PerlFixupHandler handlers
# ran 2 PerlResponseHandler handlers
# ran 2 PerlOutputFilterHandler handlers
not ok 1
FAILED test 1
Failed 1/1 tests, 0.00% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/hooks/stacked_handlers2.t 1 1 100.00% 1
Failed 1/1 test scripts, 0.00% okay. 1/1 subtests failed, 0.00% okay.
Index: t/hooks/stacked_handlers2.t
===================================================================
--- t/hooks/stacked_handlers2.t (revision 443450)
+++ t/hooks/stacked_handlers2.t (working copy)
@@ -18,7 +18,7 @@
plan tests => 1;
-my $expected = q!ran 2 PerlPostReadRequestHandler handlers
+my $expected = q!ran 3 PerlPostReadRequestHandler handlers
ran 1 PerlTransHandler handlers
ran 1 PerlMapToStorageHandler handlers
ran 4 PerlHeaderParserHandler handlers
@@ -26,7 +26,7 @@
ran 2 PerlAuthenHandler handlers
ran 2 PerlAuthzHandler handlers
ran 1 PerlTypeHandler handlers
-ran 2 PerlFixupHandler handlers
+ran 3 PerlFixupHandler handlers
ran 2 PerlResponseHandler handlers
ran 2 PerlOutputFilterHandler handlers!;
Index: t/hooks/TestHooks/stacked_handlers2.pm
===================================================================
--- t/hooks/TestHooks/stacked_handlers2.pm (revision 443450)
+++ t/hooks/TestHooks/stacked_handlers2.pm (working copy)
@@ -45,6 +45,17 @@
return Apache2::Const::SERVER_ERROR;
}
+sub push_fixup_handler {
+
+ my $r = shift;
+
+ $r->push_handlers(PerlFixupHandler => \&ok);
+
+ callback($r);
+
+ return Apache2::Const::OK;
+}
+
sub callback {
my $obj = shift;
@@ -139,7 +150,8 @@
PerlModule TestHooks::stacked_handlers2
- # all 2 run
+ # all 3 run
+ PerlPostReadRequestHandler
TestHooks::stacked_handlers2::push_fixup_handler
PerlPostReadRequestHandler TestHooks::stacked_handlers2::ok
TestHooks::stacked_handlers2::ok
Index: t/hooks/stacked_handlers2.t
===================================================================
--- t/hooks/stacked_handlers2.t (revision 419883)
+++ t/hooks/stacked_handlers2.t (working copy)
@@ -26,7 +26,7 @@
ran 2 PerlAuthenHandler handlers
ran 2 PerlAuthzHandler handlers
ran 1 PerlTypeHandler handlers
-ran 2 PerlFixupHandler handlers
+ran 4 PerlFixupHandler handlers
ran 2 PerlResponseHandler handlers
ran 2 PerlOutputFilterHandler handlers!;
Index: t/hooks/TestHooks/stacked_handlers2.pm
===================================================================
--- t/hooks/TestHooks/stacked_handlers2.pm (revision 419883)
+++ t/hooks/TestHooks/stacked_handlers2.pm (working copy)
@@ -45,6 +45,17 @@
return Apache2::Const::SERVER_ERROR;
}
+sub push_handlers {
+
+ my $r = shift;
+
+ $r->push_handlers(PerlFixupHandler => \&ok);
+
+ callback($r);
+
+ return Apache2::Const::OK;
+}
+
sub callback {
my $obj = shift;
@@ -167,7 +178,8 @@
# 1 run, 1 left behind
PerlTypeHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers3::server_error
- # all 2 run
+ # all 4 run
+ PerlFixupHandler TestHooks::stacked_handlers2::push_handlers
PerlFixupHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::ok
# 2 run, 2 left behind
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]