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/04 02:38:03 UTC
svn commit: r156118 - in perl/modperl/trunk: Changes t/error/runtime.t
t/response/TestError/runtime.pm xs/APR/Error/Error_pm
Author: stas
Date: Thu Mar 3 17:37:59 2005
New Revision: 156118
URL: http://svn.apache.org/viewcvs?view=rev&rev=156118
Log:
fix APR::Error's overload of '==' (it was always returning true
before), and add the corresponding '!='
Modified:
perl/modperl/trunk/Changes
perl/modperl/trunk/t/error/runtime.t
perl/modperl/trunk/t/response/TestError/runtime.pm
perl/modperl/trunk/xs/APR/Error/Error_pm
Modified: perl/modperl/trunk/Changes
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?view=diff&r1=156117&r2=156118
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Thu Mar 3 17:37:59 2005
@@ -12,6 +12,9 @@
=item 1.999_22-dev
+fix APR::Error's overload of '==' (it was always returning true
+before), and add the corresponding '!=' [Stas]
+
if $r->document_root was modified, restore it at the end of request
[joes]
Modified: perl/modperl/trunk/t/error/runtime.t
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/t/error/runtime.t?view=diff&r1=156117&r2=156118
==============================================================================
--- perl/modperl/trunk/t/error/runtime.t (original)
+++ perl/modperl/trunk/t/error/runtime.t Thu Mar 3 17:37:59 2005
@@ -11,7 +11,8 @@
die_hook_confess_mp_error die_hook_confess_non_mp_error
die_hook_custom_mp_error die_hook_custom_non_mp_error);
my @trapped = qw(eval_block_mp_error eval_block_non_mp_error
- eval_string_mp_error eval_block_non_error);
+ eval_string_mp_error eval_block_non_error
+ overload_test);
plan tests => @untrapped + @trapped;
Modified: perl/modperl/trunk/t/response/TestError/runtime.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/t/response/TestError/runtime.pm?view=diff&r1=156117&r2=156118
==============================================================================
--- perl/modperl/trunk/t/response/TestError/runtime.pm (original)
+++ perl/modperl/trunk/t/response/TestError/runtime.pm Thu Mar 3 17:37:59 2005
@@ -11,7 +11,7 @@
use Apache::TestUtil;
use Apache::Const -compile => qw(OK);
-use APR::Const -compile => qw(TIMEUP);
+use APR::Const -compile => qw(EACCES EAGAIN);
use constant SIZE => 2048;
@@ -32,6 +32,30 @@
return Apache::OK;
}
+sub overload_test {
+ my($r, $socket) = @_;
+
+ eval { mp_error($socket) };
+
+ die "there should have been an exception" unless $@;
+
+ die "the exception should have been an APR::Error object"
+ unless ref $@ eq 'APR::Error';
+
+ # == && != (expecting APR::EAGAIN error)
+ die "'==' overload is broken" unless $@ == APR::EAGAIN;
+ die "'==' overload is broken" unless APR::EAGAIN == $@;
+ die "'==' overload is broken" unless $@ == $@;
+ die "'!=' overload is broken" unless $@ != APR::EACCES;
+ die "'!=' overload is broken" unless APR::EACCES != $@;
+ die "'!=' overload is broken" if $@ != $@;
+
+ # XXX: add more overload tests
+
+ $r->print("ok overload_test");
+
+}
+
sub plain_mp_error {
my($r, $socket) = @_;
t_server_log_error_is_expected();
@@ -78,7 +102,7 @@
# throw in some retry attempts
my $tries = 0;
RETRY: eval { mp_error($socket) };
- if ($@ && ref($@) && $@ == APR::TIMEUP) {
+ if ($@ && ref($@) && $@ == APR::EAGAIN) {
if ($tries++ < 3) {
goto RETRY;
}
@@ -94,7 +118,7 @@
sub eval_string_mp_error {
my($r, $socket) = @_;
eval '$socket->recv(my $buffer, SIZE)';
- if ($@ && ref($@) && $@ == APR::TIMEUP) {
+ if ($@ && ref($@) && $@ == APR::EAGAIN) {
$r->print("ok eval_string_mp_error");
}
else {
Modified: perl/modperl/trunk/xs/APR/Error/Error_pm
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/APR/Error/Error_pm?view=diff&r1=156117&r2=156118
==============================================================================
--- perl/modperl/trunk/xs/APR/Error/Error_pm (original)
+++ perl/modperl/trunk/xs/APR/Error/Error_pm Thu Mar 3 17:37:59 2005
@@ -6,7 +6,8 @@
use overload
nomethod => \&fatal,
'bool' => \&str,
- '==' => \&num,
+ '==' => \&num_cmp,
+ '!=' => \&num_cmp_not,
'0+' => \&num,
'""' => \&str;
@@ -37,6 +38,9 @@
sub num { $_[0]->{rc} }
+sub num_cmp { $_[0]->{rc} == $_[1] }
+sub num_cmp_not { $_[0]->{rc} != $_[1] }
+
# skip the wrappers from this package from the long callers trace
$Carp::CarpInternal{+__PACKAGE__}++;
@@ -63,6 +67,3 @@
&Carp::confess;
}
}
-
-1;
-__END__