From: Andy Grundman Date: Tue, 18 Oct 2005 16:03:53 +0000 (+0000) Subject: Added automated tests for CGI and FastCGI using Apache::Test X-Git-Tag: 5.7099_04~1198 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=58f5682a9e1df884fc01ec9e180d225506fc60ff;hp=4678828c308a9cabca4727a7dd08855a9e8e8473 Added automated tests for CGI and FastCGI using Apache::Test --- diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP index 2ffcc10..62a858d 100644 --- a/MANIFEST.SKIP +++ b/MANIFEST.SKIP @@ -23,3 +23,11 @@ \.bak$ \#$ \b\.# + +# Avoid Apache::Test files +t/conf/apache_test_config.pm +t/conf/extra.conf +t/conf/httpd.conf +t/conf/mime.types +t/htdocs +t/logs diff --git a/t/conf/extra.conf.in b/t/conf/extra.conf.in new file mode 100644 index 0000000..e2e467b --- /dev/null +++ b/t/conf/extra.conf.in @@ -0,0 +1,11 @@ +# CGI + + ScriptAlias /cgi/ @ServerRoot@/var/TestApp/script/testapp_cgi.pl/ + + +# FastCGI + + FastCgiIpcDir @ServerRoot@/var/tmp + FastCgiServer @ServerRoot@/var/TestApp/script/testapp_fastcgi.pl -idle-timeout 300 -processes 5 + ScriptAlias /fastcgi/ @ServerRoot@/var/TestApp/script/testapp_fastcgi.pl/ + diff --git a/t/optional/apache-cgi.pl b/t/optional/apache-cgi.pl new file mode 100755 index 0000000..3c0a4de --- /dev/null +++ b/t/optional/apache-cgi.pl @@ -0,0 +1,39 @@ +#!perl + +# Run all tests against CGI mode under Apache +# +# Note, to get this to run properly, you may need to give it the path to your +# httpd.conf: +# +# perl t/optional/apache-cgi.pl -httpd_conf /etc/apache/httpd.conf + +use strict; +use warnings; + +use Apache::Test; +use Apache::TestRun (); + +use File::Path; +use File::Copy::Recursive; +use FindBin; + +# clean up +rmtree "$FindBin::Bin/../../t/var" if -d "$FindBin::Bin/../../t/var"; + +# create a TestApp and copy the test libs into it +mkdir "$FindBin::Bin/../../t/var"; +chdir "$FindBin::Bin/../../t/var"; +system "$FindBin::Bin/../../script/catalyst.pl TestApp"; +chdir "$FindBin::Bin/../.."; +File::Copy::Recursive::dircopy( 't/live/lib', 't/var/TestApp/lib' ); + +# remove TestApp's tests so Apache::Test doesn't try to run them +rmtree 't/var/TestApp/t'; + +my $cfg = Apache::Test::config(); +$ENV{CATALYST_SERVER} = 'http://' . $cfg->hostport . '/cgi'; + +Apache::TestRun->new->run(@ARGV); + +# clean up +rmtree "$FindBin::Bin/../../t/var" if -d "$FindBin::Bin/../../t/var"; diff --git a/t/optional/apache-fastcgi.pl b/t/optional/apache-fastcgi.pl new file mode 100755 index 0000000..213293b --- /dev/null +++ b/t/optional/apache-fastcgi.pl @@ -0,0 +1,39 @@ +#!perl + +# Run all tests against FastCGI mode under Apache +# +# Note, to get this to run properly, you may need to give it the path to your +# httpd.conf: +# +# perl t/optional/apache-fastcgi.pl -httpd_conf /etc/apache/httpd.conf + +use strict; +use warnings; + +use Apache::Test; +use Apache::TestRun (); + +use File::Path; +use File::Copy::Recursive; +use FindBin; + +# clean up +rmtree "$FindBin::Bin/../../t/var" if -d "$FindBin::Bin/../../t/var"; + +# create a TestApp and copy the test libs into it +mkdir "$FindBin::Bin/../../t/var"; +chdir "$FindBin::Bin/../../t/var"; +system "$FindBin::Bin/../../script/catalyst.pl TestApp"; +chdir "$FindBin::Bin/../.."; +File::Copy::Recursive::dircopy( 't/live/lib', 't/var/TestApp/lib' ); + +# remove TestApp's tests so Apache::Test doesn't try to run them +rmtree 't/var/TestApp/t'; + +my $cfg = Apache::Test::config(); +$ENV{CATALYST_SERVER} = 'http://' . $cfg->hostport . '/fastcgi'; + +Apache::TestRun->new->run(@ARGV); + +# clean up +rmtree "$FindBin::Bin/../../t/var" if -d "$FindBin::Bin/../../t/var";