dougm 01/05/07 21:25:51
Modified: lib/Apache compat.pm
lib/ModPerl Code.pm
src/modules/perl mod_perl.c mod_perl.h
t/response/TestApache cgihandler.pm
Added: t/modules cgi.t
t/response/TestModules cgi.pm
Log:
integrate with modperl_env module and get some basic CGI.pm tests in place
Revision Changes Path
1.9 +6 -12 modperl-2.0/lib/Apache/compat.pm
Index: compat.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/Apache/compat.pm,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- compat.pm 2001/05/04 19:46:26 1.8
+++ compat.pm 2001/05/08 04:25:47 1.9
@@ -23,6 +23,7 @@
use Apache::RequestIO ();
use Apache::RequestUtil ();
use APR::Table ();
+use APR::Pool ();
use mod_perl ();
BEGIN {
@@ -31,6 +32,7 @@
$INC{'Apache/Constants.pm'} = 1;
$ENV{MOD_PERL} = $mod_perl::VERSION;
+ $ENV{GATEWAY_INTERFACE} = 'CGI-Perl/1.1';
}
package Apache;
@@ -54,6 +56,10 @@
package Apache::RequestRec;
+sub register_cleanup {
+ shift->pool->cleanup_register(@_);
+}
+
sub parse_args {
my($r, $string) = @_;
return () unless defined $string and $string;
@@ -88,18 +94,6 @@
return $buf unless wantarray;
return $r->parse_args($buf)
-}
-
-our $Request;
-
-sub request {
- my($r, $set) = @_;
- $Request = $set if $set;
-
- untie *STDOUT;
- tie *STDOUT, 'Apache::RequestRec', $r;
-
- $Request;
}
sub send_http_header {
1.63 +1 -1 modperl-2.0/lib/ModPerl/Code.pm
Index: Code.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- Code.pm 2001/05/05 22:08:44 1.62
+++ Code.pm 2001/05/08 04:25:48 1.63
@@ -522,7 +522,7 @@
);
my @c_src_names = qw(interp tipool log config cmd options callback handler
- gtop util io filter bucket mgv pcw global);
+ gtop util io filter bucket mgv pcw global env);
my @g_c_names = map { "modperl_$_" } qw(hooks directives flags xsinit);
my @c_names = ('mod_perl', (map "modperl_$_", @c_src_names));
sub c_files { [map { "$_.c" } @c_names, @g_c_names] }
1.55 +3 -0 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- mod_perl.c 2001/05/05 22:08:44 1.54
+++ mod_perl.c 2001/05/08 04:25:49 1.55
@@ -409,10 +409,13 @@
h_stdout = modperl_io_tie_stdout(aTHX_ r);
h_stdin = modperl_io_tie_stdin(aTHX_ r);
+ modperl_env_request_tie(aTHX_ r);
retval = modperl_response_handler_run(r);
modperl_io_handle_untie(aTHX_ h_stdout);
modperl_io_handle_untie(aTHX_ h_stdin);
+
+ modperl_env_request_untie(aTHX_ r);
return retval;
}
1.33 +1 -0 modperl-2.0/src/modules/perl/mod_perl.h
Index: mod_perl.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.h,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- mod_perl.h 2001/05/05 22:08:44 1.32
+++ mod_perl.h 2001/05/08 04:25:49 1.33
@@ -31,6 +31,7 @@
#include "modperl_pcw.h"
#include "modperl_mgv.h"
#include "modperl_global.h"
+#include "modperl_env.h"
void modperl_init(server_rec *s, apr_pool_t *p);
void modperl_hook_init(apr_pool_t *pconf, apr_pool_t *plog,
1.1 modperl-2.0/t/modules/cgi.t
Index: cgi.t
===================================================================
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestRequest;
plan tests => 3, \&have_lwp;
my $location = "/TestModules::cgi";
ok 1;
my $str = GET_BODY "$location?PARAM=2";
print $str;
$str = POST_BODY $location, content => 'PARAM=%33';
print $str;
1.2 +6 -3 modperl-2.0/t/response/TestApache/cgihandler.pm
Index: cgihandler.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/t/response/TestApache/cgihandler.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cgihandler.pm 2001/05/05 22:08:45 1.1
+++ cgihandler.pm 2001/05/08 04:25:50 1.2
@@ -9,8 +9,9 @@
sub handler {
my $r = shift;
- $r->content_type('text/plain');
+ $ENV{FOO} = 2;
+
if ($r->method_number == Apache::M_POST) {
my $ct = $r->headers_in->get('content-length');
my $buff;
@@ -19,8 +20,10 @@
}
else {
print "1..3\n";
- print "ok 1\n", "ok ", "2\n";
- print "ok 3\n";
+ print "ok 1\n", "ok ", "$ENV{FOO}\n";
+ my $foo = $r->subprocess_env->get('FOO');
+ $foo++;
+ print "ok $foo\n";
}
Apache::OK;
1.1 modperl-2.0/t/response/TestModules/cgi.pm
Index: cgi.pm
===================================================================
package TestModules::cgi;
use strict;
use warnings FATAL => 'all';
use Apache::compat ();
use CGI ();
sub handler {
my $r = shift;
my $cgi = CGI->new;
my $param = $cgi->param('PARAM');
my $httpupload = $cgi->param('HTTPUPLOAD');
# $cgi->print( $cgi->header(-type => "text/plain",
# "-X-Perl-Script" => "cgi.pl") );
print "ok $param\n" if $param;
if ($httpupload) {
no strict;
local $/;
my $content = <$httpupload>;
print "ok $content\n";
}
Apache::OK;
}
1;
__END__
SetHandler perl-script
PerlOptions +GlobalRequest