stas 01/10/18 19:09:24
Modified: t/modperl interp.t
t/response/TestModperl interp.pm
Log:
- update the 'same interpreter' test to use the abstracted functionality
which has moved into the core of Apache::Test
Revision Changes Path
1.2 +53 -36 modperl-2.0/t/modperl/interp.t
Index: interp.t
===================================================================
RCS file: /home/cvs/modperl-2.0/t/modperl/interp.t,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- interp.t 2001/10/17 03:20:02 1.1
+++ interp.t 2001/10/19 02:09:24 1.2
@@ -1,49 +1,66 @@
use strict;
use warnings FATAL => 'all';
+# run tests through the same interpreter, even if the server is
+# running more than one
+
use Apache::Test;
+use Apache::TestUtil;
use Apache::TestRequest;
-
-use constant INTERP => 'X-PerlInterpreter';
-
-plan tests => 3, \&have_lwp;
-
-my $url = "/TestModperl::interp";
-
-#request an interpreter instance
-my $res = GET $url, INTERP, 'init';
-#use this interpreter id to select the same interpreter in requests below
-my $interp = $res->header(INTERP);
+plan tests => 12, \&have_lwp;
-print "using interp: $interp\n";
+my $url = "/TestModperl::interp1";
-print $res->content;
-
-my $found_interp = "";
-my $find_interp = sub {
- $res->code == 200 and (($found_interp = $res->header(INTERP)) eq $interp);
-};
-
+# test the tie and re-tie
for (1..2) {
- my $times = 0;
+ my $same_interp = Apache::TestRequest::same_interp_tie($url);
+ ok $same_interp;
- do {
- #loop until we get a response from our interpreter instance
- $res = GET $url, INTERP, $interp;
-
- #trace info
- unless ($find_interp->()) {
- print $found_interp ?
- "wrong interpreter: $found_interp\n" :
- "no interpreter\n";
- }
-
- if ($times++ > 15) { #prevent endless loop
- die "unable to find interp $interp\n";
- }
- } while (not $find_interp->());
+ my $value = 1;
+ # test GET over the same same_interp
+ for (1..2) {
+ $value++;
+ my $res = Apache::TestRequest::same_interp_do($same_interp, \&GET,
+ $url, foo => 'bar');
+ ok t_cmp(
+ $value,
+ defined $res && $res->content,
+ "GET over the same interp");
+ }
+}
- print $res->content; #ok $value++
+{
+ # test POST over the same same_interp
+ my $same_interp = Apache::TestRequest::same_interp_tie($url);
+ ok $same_interp;
+
+ my $value = 1;
+ for (1..2) {
+ $value++;
+ my $res = Apache::TestRequest::same_interp_do($same_interp, \&POST,
+ $url, [ok => $_+3],
+ content => "foo");
+ ok t_cmp(
+ $value,
+ defined $res && $res->content,
+ "POST over the same interp");
+ }
}
+{
+ # test HEAD over the same same_interp
+ my $same_interp = Apache::TestRequest::same_interp_tie($url);
+ ok $same_interp;
+
+ my $value = 1;
+ for (1..2) {
+ $value++;
+ my $res = Apache::TestRequest::same_interp_do($same_interp, \&HEAD,
+ $url);
+ ok t_cmp(
+ $same_interp,
+ defined $res && $res->header(Apache::TestRequest::INTERP_KEY),
+ "HEAD over the same interp");
+ }
+}
1.2 +7 -38 modperl-2.0/t/response/TestModperl/interp.pm
Index: interp.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/t/response/TestModperl/interp.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- interp.pm 2001/10/17 03:20:02 1.1
+++ interp.pm 2001/10/19 02:09:24 1.2
@@ -1,53 +1,22 @@
-package TestModperl::interp;
+package TestModperl::interp1;
use warnings FATAL => 'all';
use strict;
-use APR::UUID ();
-use Apache::Const -compile => qw(OK NOT_FOUND SERVER_ERROR);
+use Apache::Const -compile => qw(OK);
-use constant INTERP => 'X-PerlInterpreter';
+my $value = '';
-my $interp_id = "";
-my $value = 0;
-
-sub fixup {
- my $r = shift;
- my $interp = $r->headers_in->get(INTERP);
- my $rc = Apache::OK;
-
- unless ($interp) {
- #shouldn't be requesting this without an INTERP header
- return Apache::SERVER_ERROR;
- }
-
- my $id = $interp_id;
- if ($interp eq 'init') { #first request for an interpreter instance
- #unique id for this instance
- $interp_id = $id = APR::UUID->new->format;
- $value = 0; #reset our global data
- }
- elsif ($interp ne $interp_id) {
- #this is not the request interpreter instance
- $rc = Apache::NOT_FOUND;
- }
-
- #so client can save the created instance id or check the existing value
- $r->headers_out->set(INTERP, $id);
-
- return $rc;
-}
-
sub handler {
my $r = shift;
- #test the actual global data
- $value++;
- $r->puts("ok $value\n");
+ # test the actual global data
+ $value = Apache::TestHandler::same_interp_counter();
+ $r->puts($value);
Apache::OK;
}
1;
__END__
-PerlFixupHandler TestModperl::interp::fixup
+PerlFixupHandler Apache::TestHandler::same_interp_fixup