Hi,
I noticed the call for tests. I think I have generated the tests
correctly.
- the first test is for genrating a new 'error-notes' entry, and
currently fails with apt_table_mergen()
- the second one tests the case when 'error-notes' already has a value
(succeeds with either apr_table_merge() or apr_table_mergen(), but
fails with the past revision when apr_table_add() had been used)
Index: src/modules/perl/modperl_callback.c
===================================================================
--- src/modules/perl/modperl_callback.c (revision 433312)
+++ src/modules/perl/modperl_callback.c (working copy)
@@ -130,7 +130,7 @@
if (status == HTTP_INTERNAL_SERVER_ERROR) {
if (r && r->notes) {
- apr_table_mergen(r->notes, "error-notes", SvPV_nolen(ERRSV));
+ apr_table_merge(r->notes, "error-notes", SvPV_nolen(ERRSV));
}
}
--- /dev/null 2006-08-16 05:24:17.504895000 -0400
+++ t/hooks/error.t 2006-08-21 14:15:45.000000000 -0400
@@ -0,0 +1,32 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestUtil;
+use Apache::TestRequest;
+
+plan tests => 2;
+
+{
+open(my $fh,'>/tmp/test');
+print $fh ("start\n");
+close($fh);
+ # this registers and performs cleanups, but we test whether the
+ # cleanup was run only in the next sub-test
+ my $location = "/TestHooks__error";
+ my $expected = qr/^Error: Undefined subroutine/;
+ my $received = GET_BODY $location;
+ ok t_cmp($received, $expected, "error-notes set on ErrorDocument");
+}
+
+{
+ # this registers and performs cleanups, but we test whether the
+ # cleanup was run only in the next sub-test
+ my $error_seed_text = 'seed_text';
+ my $location = "/TestHooks__error?$error_seed_text";
+ my $expected = qr/^Error: \Q$error_seed_text\E, Undefined subroutine/;
+ my $received = GET_BODY $location;
+ ok t_cmp($received, $expected, "seeded error-notes set on ErrorDocument");
+}
+
+
--- /dev/null 2006-08-16 05:24:17.504895000 -0400
+++ t/hooks/TestHooks/error.pm 2006-08-21 14:16:00.000000000 -0400
@@ -0,0 +1,44 @@
+package TestHooks::error;
+
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+
+use Apache2::RequestRec ();
+use Apache2::RequestIO ();
+
+use Apache2::Const -compile => 'OK';
+
+use APR::Table ();
+
+sub handler {
+ my $r = shift;
+ my $args = $r->args();
+ if (defined($args) && $args ne '') {
+ $r->notes->set('error-notes' => $args);
+ }
+ &bomb();
+ Apache2::Const::OK;
+}
+
+sub fail {
+ my $r = shift;
+ $r->print('Error: '.$r->prev->notes->get('error-notes'));
+ Apache2::Const::OK;
+}
+
+1;
+__DATA__
+<NoAutoConfig>
+ <Location /TestHooks__error>
+ SetHandler modperl
+ PerlResponseHandler TestHooks::error
+ ErrorDocument 500 /TestHooks__error__fail
+ </Location>
+ <Location /TestHooks__error__fail>
+ SetHandler modperl
+ PerlResponseHandler TestHooks::error::fail
+ </Location>
+</NoAutoConfig>
+
--
[EMAIL PROTECTED] 0-7-1-6-27,137
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]