apache test suite
Is this the software that the apache team uses to test new apache releases?
[Fwd: [cpan #3861] Custom t/conf/httpd.conf.in is ignored]
Hi Jesse, I thought you told me that you have fixed RT's entry for Apache-Test to have httpd-test-dev list [EMAIL PROTECTED] as the contract address. Why do I get these messages then? Original Message Subject: [cpan #3861] Custom t/conf/httpd.conf.in is ignored Date: Wed, 24 Sep 2003 12:00:29 -0400 (EDT) From: Guest via RT [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: AdminCc of cpan Ticket #3861: ; This message about Apache-Test was sent to you by guest via rt.cpan.org Full context and any attached attachments can be found at: URL: https://rt.cpan.org/Ticket/Display.html?id=3861 Actually, reviewing the httpd.conf file further, it appears that my httpd.conf.in file is being used. However, the following lines are being appended to the top of the file (which is why I am getting an error starting the server): - LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so LoadModule status_module /usr/lib/apache/1.3/mod_status.so LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so LoadModule access_module /usr/lib/apache/1.3/mod_access.so LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so Usernobody Groupnogroup ServerName localhost Port 8529 - Where are these getting set and how can I override them? Thanks, William -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
[Fwd: [cpan #3861] Custom t/conf/httpd.conf.in is ignored]
This should have been posted here Original Message Subject: [cpan #3861] Custom t/conf/httpd.conf.in is ignored Date: Wed, 24 Sep 2003 11:57:10 -0400 (EDT) From: Guest via RT [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: AdminCc of cpan Ticket #3861: ; This message about Apache-Test was sent to you by guest via rt.cpan.org Full context and any attached attachments can be found at: URL: https://rt.cpan.org/Ticket/Display.html?id=3861 After getting past the hurdle of notifying A::Test of the path to my httpd daemon, I now get the following error when testing: - waiting for server to start: .Syntax error on line 10 of /root/.cpan/build/Apache-Test-1.03/t/conf/httpd.conf: Cannot load /usr/lib/apache/1.3/mod_log_config.so into server: /usr/lib/apache/1.3/mod_log_config.so: undefined symbol: ap_hook_status !!! server has died with status 1 (t/logs/error_log wasn't created, start the server in the debug mode) - Apparently my server needs to be configured for DSO support and have its modules compiled as DSO's. None of the docs mentioned these requirements and it is a surprising one given the fickleness of running mod_perl as a DSO (which is why all of my modules are compiled into the daemon). Anyhow, I saw in the README that I could create a custom httpd.conf file to use for testing. I copied the default t/conf/httpd.conf to t/conf/httpd.conf.in and removed the calls to LoadModule. I even deleted the original t/conf/httpd.conf file. However, my changes in the httpd.conf.in file were ignored when the new httpd.conf file was generated. Apparently the test is not using this file as its source for generating the httpd.conf file. Thanks, William -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
[Fwd: [cpan #3860] make test is unable to locate httpd in PATH]
This should have been posted here Original Message Subject: [cpan #3860] make test is unable to locate httpd in PATH Date: Wed, 24 Sep 2003 11:42:53 -0400 (EDT) From: Guest via RT [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: AdminCc of cpan Ticket #3860: ; This message about Apache-Test was sent to you by guest via rt.cpan.org Full context and any attached attachments can be found at: URL: https://rt.cpan.org/Ticket/Display.html?id=3860 While trying to install Apache::Test on a Perl 5.6.1 Linux system, I am getting the following error: !!! no test server configured, please specify an httpd or an apxs other than /usr/bin/apxs or put either in your PATH. For example: t/TEST -httpd /path/to/bin/httpd I placed the path to the httpd daemon in my PATH environment as recommended, but I continue to receive the above error. I tracked this error message back to Apache::TestRun which checks the value of httpd from the configuration. This gets set in Apache::TestConfig::configure_httpd. My debugging showed that this subroutine is only checking the /usr/sbin directory for the httpd file. Either I have something wrong with my setup or the configure_httpd subroutine is broken. BTW, I am using Bash as my shell. I was able to get past this hurdle by running the test suite using t/TEST -httpd /usr/local/apache/bin/httpd Thanks, William -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
[Fwd: [cpan #3861] Custom t/conf/httpd.conf.in is ignored]
This should have been posted here Original Message Subject: [cpan #3861] Custom t/conf/httpd.conf.in is ignored Date: Wed, 24 Sep 2003 12:00:29 -0400 (EDT) From: Guest via RT [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: AdminCc of cpan Ticket #3861: ; This message about Apache-Test was sent to you by guest via rt.cpan.org Full context and any attached attachments can be found at: URL: https://rt.cpan.org/Ticket/Display.html?id=3861 Actually, reviewing the httpd.conf file further, it appears that my httpd.conf.in file is being used. However, the following lines are being appended to the top of the file (which is why I am getting an error starting the server): - LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so LoadModule status_module /usr/lib/apache/1.3/mod_status.so LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so LoadModule access_module /usr/lib/apache/1.3/mod_access.so LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so Usernobody Groupnogroup ServerName localhost Port 8529 - Where are these getting set and how can I override them? Thanks, William -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [Fwd: [cpan #3861] Custom t/conf/httpd.conf.in is ignored]
It should have both you and test-dev as adminccs. (If you're not also listed, there isn't currently an easy way for you to have permissions to go in and actually resolve the bug reports. -jesse On Wed, Sep 24, 2003 at 09:52:04AM -0700, Stas Bekman wrote: Hi Jesse, I thought you told me that you have fixed RT's entry for Apache-Test to have httpd-test-dev list [EMAIL PROTECTED] as the contract address. Why do I get these messages then? Original Message Subject: [cpan #3861] Custom t/conf/httpd.conf.in is ignored Date: Wed, 24 Sep 2003 12:00:29 -0400 (EDT) From: Guest via RT [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: AdminCc of cpan Ticket #3861: ; This message about Apache-Test was sent to you by guest via rt.cpan.org Full context and any attached attachments can be found at: URL: https://rt.cpan.org/Ticket/Display.html?id=3861 Actually, reviewing the httpd.conf file further, it appears that my httpd.conf.in file is being used. However, the following lines are being appended to the top of the file (which is why I am getting an error starting the server): - LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so LoadModule status_module /usr/lib/apache/1.3/mod_status.so LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so LoadModule access_module /usr/lib/apache/1.3/mod_access.so LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so Usernobody Groupnogroup ServerName localhost Port 8529 - Where are these getting set and how can I override them? Thanks, William -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- jesse reed vincent -- [EMAIL PROTECTED] -- [EMAIL PROTECTED] 70EBAC90: 2A07 FC22 7DB4 42C1 9D71 0108 41A3 3FB3 70EB AC90 Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music. % IP networks were intended to survive nuclear attack, but 12 year old kids with PCs were not part of the threat model. -- mycroft
Re: apache test suite
Wood, Bryan wrote: Is this the software that the apache team uses to test new apache releases? It's used by httpd-dev, mod_perl projects and other 3rd party modules. For more info see: http://perl.apache.org/docs/general/testing/testing.html __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
RE: apache test suite
What is used by the apache team to test the webserver thoroughly? I need to test it on a new embedded device and having the test suite they use would save a lot of time. -Original Message- From: Stas Bekman [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 24, 2003 12:25 PM To: [EMAIL PROTECTED] Subject: Re: apache test suite Wood, Bryan wrote: Is this the software that the apache team uses to test new apache releases? It's used by httpd-dev, mod_perl projects and other 3rd party modules. For more info see: http://perl.apache.org/docs/general/testing/testing.html __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: apache test suite
Wood, Bryan wrote: What is used by the apache team to test the webserver thoroughly? I need to test it on a new embedded device and having the test suite they use would save a lot of time. Apache-Test, flood and specweb99, have you looked at: http://httpd.apache.org/test/ Is this the software that the apache team uses to test new apache releases? It's used by httpd-dev, mod_perl projects and other 3rd party modules. For more info see: http://perl.apache.org/docs/general/testing/testing.html __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
RE: apache test suite
Yes I have, but I can't get apache-test to run on my desktop machine. There are always problems in the httpd.conf file it generates. Of course I checked it out of cvs so I might just need to check it out again. Certainly the apache team has things all setup so they can just run a script and wait for their results when they need to do a full test on apache? -Original Message- From: Stas Bekman [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 24, 2003 12:44 PM To: [EMAIL PROTECTED] Subject: Re: apache test suite Wood, Bryan wrote: What is used by the apache team to test the webserver thoroughly? I need to test it on a new embedded device and having the test suite they use would save a lot of time. Apache-Test, flood and specweb99, have you looked at: http://httpd.apache.org/test/ Is this the software that the apache team uses to test new apache releases? It's used by httpd-dev, mod_perl projects and other 3rd party modules. For more info see: http://perl.apache.org/docs/general/testing/testing.html __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: apache test suite
Wood, Bryan wrote: Yes I have, but I can't get apache-test to run on my desktop machine. There are always problems in the httpd.conf file it generates. If you don't tell us what the problems are... we can't fix them... Of course I checked it out of cvs so I might just need to check it out again. Certainly the apache team has things all setup so they can just run a script and wait for their results when they need to do a full test on apache? Yup. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: apache test suite
Wood, Bryan wrote: -Original Message- From: Stas Bekman [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 24, 2003 2:26 PM To: [EMAIL PROTECTED] Subject: Re: apache test suite Wood, Bryan wrote: Yes I have, but I can't get apache-test to run on my desktop machine. There are always problems in the httpd.conf file it generates. If you don't tell us what the problems are... we can't fix them... ~/httpd-test/perl-framework$ t/TEST -start-httpd *** setting ulimit to allow core files ulimit -c unlimited; t/TEST -start-httpd /usr/sbin/httpd -X -d /home/xf012502/httpd-test/perl-framework/t -f /home/xf012502/httpd-test/perl-framework/t/conf/httpd.conf -DAPACHE1 using Apache/1.3.27 waiting for server to start: .Syntax error on line 70 of /home/xf012502/httpd-test/perl-framework/t/conf/httpd.conf: Invalid command 'SetHandler', perhaps mis-spelled or defined by a module not included in the server configuration !!! server has died with status 1 (t/logs/error_log wasn't created, start the server in the debug mode) ~/httpd-test/perl-framework$ Since you didn't bother (or didn't know that you should ;) to tell us what do you have on line 70th, I'd guess that it's: Location /server-info SetHandler server-info /Location it's on a different line in my t/conf/httpd.conf, since it varies from setup to setup. SetHandler is provided by the core, so I don't know why does fail for you. I doubt this has anything to do with Apache-Test. Can you use httpd normally? Can you please show us the first 80 lines of t/conf/httpd.conf? Of course I checked it out of cvs so I might just need to check it out again. Certainly the apache team has things all setup so they can just run a script and wait for their results when they need to do a full test on apache? Yup. Can I have it? (: Oh, you mean whether we have some magical script that makes things work for us but not for you? Nothing at all ;) __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
RE: apache test suite
-Original Message- From: Stas Bekman [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 24, 2003 3:03 PM To: [EMAIL PROTECTED] Subject: Re: apache test suite Wood, Bryan wrote: -Original Message- From: Stas Bekman [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 24, 2003 2:26 PM To: [EMAIL PROTECTED] Subject: Re: apache test suite Wood, Bryan wrote: Yes I have, but I can't get apache-test to run on my desktop machine. There are always problems in the httpd.conf file it generates. If you don't tell us what the problems are... we can't fix them... ~/httpd-test/perl-framework$ t/TEST -start-httpd *** setting ulimit to allow core files ulimit -c unlimited; t/TEST -start-httpd /usr/sbin/httpd -X -d /home/xf012502/httpd-test/perl-framework/t -f /home/xf012502/httpd-test/perl-framework/t/conf/httpd.conf -DAPACHE1 using Apache/1.3.27 waiting for server to start: .Syntax error on line 70 of /home/xf012502/httpd-test/perl-framework/t/conf/httpd.conf: Invalid command 'SetHandler', perhaps mis-spelled or defined by a module not included in the server configuration !!! server has died with status 1 (t/logs/error_log wasn't created, start the server in the debug mode) ~/httpd-test/perl-framework$ Since you didn't bother (or didn't know that you should ;) to tell us what do you have on line 70th, I'd guess that it's: Location /server-info SetHandler server-info /Location it's on a different line in my t/conf/httpd.conf, since it varies from setup to setup. SetHandler is provided by the core, so I don't know why does fail for you. I doubt this has anything to do with Apache-Test. Can you use httpd normally? Can you please show us the first 80 lines of t/conf/httpd.conf? # WARNING: this file is generated, do not edit # 01: /home/xf012502/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.p m:743 # 02: /home/xf012502/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.p m:761 # 03: /home/xf012502/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.p m:1286 # 04: /home/xf012502/httpd-test/perl-framework/Apache-Test/lib/Apache/TestRun.pm:4 08 # 05: /home/xf012502/httpd-test/perl-framework/Apache-Test/lib/Apache/TestRun.pm:5 89 # 06: /home/xf012502/httpd-test/perl-framework/Apache-Test/lib/Apache/TestRun.pm:5 89 # 07: t/TEST:20 Usernobody Groupxf012502 ServerName localhost Port 8529 Listen 8529 ServerRoot /home/xf012502/httpd-test/perl-framework/t DocumentRoot /home/xf012502/httpd-test/perl-framework/t/htdocs PidFile /home/xf012502/httpd-test/perl-framework/t/logs/httpd.pid ErrorLog/home/xf012502/httpd-test/perl-framework/t/logs/error_log LogLeveldebug IfModule mod_log_config.c TransferLog /home/xf012502/httpd-test/perl-framework/t/logs/access_log /IfModule ServerAdmin [EMAIL PROTECTED] #needed for http/1.1 testing KeepAlive On HostnameLookups Off Directory / Options FollowSymLinks AllowOverride None /Directory IfModule worker.c StartServers 1 MaxClients 1 MinSpareThreads 1 MaxSpareThreads 1 ThreadsPerChild 1 MaxRequestsPerChild 0 /IfModule IfModule perchild.c NumServers 1 StartThreads 1 MinSpareThreads 1 MaxSpareThreads 1 MaxThreadsPerChild 1 MaxRequestsPerChild 0 /IfModule IfModule prefork.c StartServers 1 MaxClients 1 MaxRequestsPerChild 0 /IfModule IfModule mpm_winnt.c ThreadsPerChild 20 MaxRequestsPerChild 0 /IfModule Location /server-info SetHandler server-info /Location Location /server-status SetHandler server-status /Location Alias /getfiles-perl-pod /usr/lib/perl5/5.6.1/pod Alias /getfiles-binary-httpd /usr/sbin/httpd Alias /getfiles-binary-perl /usr/bin/perl TypesConfig /home/xf012502/httpd-test/perl-framework/t/conf/mime.types Include /home/xf012502/httpd-test/perl-framework/t/conf/extra.conf Include /home/xf012502/httpd-test/perl-framework/t/conf/include.conf Include /home/xf012502/httpd-test/perl-framework/t/conf/proxy.conf Include /home/xf012502/httpd-test/perl-framework/t/conf/ssl/proxyssl.conf Include /home/xf012502/httpd-test/perl-framework/t/conf/ssl/ssl.conf Include /home/xf012502/httpd-test/perl-framework/t/conf/vhost_alias.conf Of course I checked it out of cvs so I might just need to check it out again. Certainly the apache team has things all setup so they can just run a script and wait for their results when they need to do a full test on apache? Yup. Can I have it? (: Oh, you mean whether we have some magical script that makes things work for us but not for you? Nothing at all ;) well maybe not a magical script, but I'm sure you don't run it manually every time you want to test apache. I need something that will test all the functionality of the webserver, including ssl. __ Stas
Re: apache test suite
I wrote a test suite in Tcl for the Rivet project that works pretty well. It's fairly minimalistic, but it works and doesn't require much setup. It would certainly require some adaptation to make it work with your own system. It is aimed at Rivet, not Apache, although I think it's reasonably flexible... Ciao, -- David N. Welton Consulting: http://www.dedasys.com/ Personal: http://www.dedasys.com/davidw/ Free Software: http://www.dedasys.com/freesoftware/ Apache Tcl: http://tcl.apache.org/
sticky preferences in Apache-Test
Hi, Below is a modified diff to allow for preferences to be saved to an Apache::TestConfigData for later use within Apache::Test. In this version, a user can create a $HOME/.apache-test/Apache/TestConfigData.pm to specify the preferences; this will be used, if it exists, before a system Apache::TestConfigData. The diff is applied against the cvs Apache-Test sources; as well, an empty Apache-Test/lib/Apache/TestConfigData.pm file should be created: === package Apache::TestConfigData; use strict; use warnings; use vars qw($vars); $vars = { }; 1; =head1 NAME Apache::TestConfigData - Configuration file for Apache::Test =cut The intent of how this is supposed to work is in the pod of Apache::TestRun. === Index: lib/Apache/TestRun.pm === RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestRun.pm,v retrieving revision 1.114 diff -u -r1.114 TestRun.pm --- lib/Apache/TestRun.pm 12 Sep 2003 02:21:32 - 1.114 +++ lib/Apache/TestRun.pm 24 Sep 2003 21:52:08 - @@ -10,20 +10,24 @@ use Apache::TestRequest (); use Apache::TestHarness (); use Apache::TestTrace; +use Apache::TestUtil qw(expand_path); +use Cwd; use File::Find qw(finddepth); -use File::Spec::Functions qw(catfile); +use File::Spec::Functions qw(catfile catdir); use Getopt::Long qw(GetOptions); +use File::Basename qw(dirname); use Config; use constant STARTUP_TIMEOUT = 300; # secs (good for extreme debug cases) + use subs qw(exit_shell exit_perl); my %core_files = (); my %original_t_perms = (); my @std_run = qw(start-httpd run-tests stop-httpd); -my @others = qw(verbose configure clean help ssl http11); +my @others = qw(verbose configure clean help ssl http11 save); my @flag_opts= (@std_run, @others); my @string_opts = qw(order trace); my @ostring_opts = qw(proxy ping); @@ -55,9 +59,22 @@ 'ssl' = 'run tests through ssl', 'proxy' = 'proxy requests (default proxy is localhost)', 'trace=T' = 'change tracing default to: warning, notice, info, debug, ...', + 'save'= 'save test paramaters into Apache::TestConfigData', (map { $_, \U$_\E url } @request_opts), ); +# variables stored in $Apache::TestConfigData::vars +my @data_vars = qw(httpd port user group apxs); +# mapping from $Apache::TestConfigData::vars to $ENV settings +my %vars_to_env = (httpd = 'APACHE', + user = 'APACHE_USER', + group = 'APACHE_GROUP', + apxs = 'APXS', + port = 'APACHE_PORT', + ); +my $IN_APACHE_TEST = in_apache_test(); +my $CONFIG_DATA = config_data(); + sub fixup { #make sure we use an absolute path to perl #else Test::Harness uses the perl in our PATH @@ -407,6 +424,8 @@ $test_config-cmodules_configure; $test_config-generate_httpd_conf; $test_config-save; +$self-write_config() if +($IN_APACHE_TEST or $self-{opts}-{save}); } sub try_exit_opts { @@ -509,6 +528,10 @@ sub new_test_config { my $self = shift; +for (@data_vars) { +next unless $Apache::TestConfigData::vars-{$_}; +$self-{conf_opts}-{$_} ||= $Apache::TestConfigData::vars-{$_}; +} Apache::TestConfig-new($self-{conf_opts}); } @@ -953,6 +976,102 @@ CORE::exit $_[0]; } +# Are we building things within Apache-Test? +sub in_apache_test { +my $cwd = expand_path(cwd); +return ($cwd =~ m{Apache-Test}) ? 1 : 0; +} + +# routine to determine where the configuration file +# Apache::TestConfigData lives. The order searched is +# 1) a path within Apache-Test, if we are building things there +# 2) an $ENV{HOME}/.apache-test/ directory; +# 3) somewhere in @INC, other than a path within Apache-Test. +sub config_data { +my $config; +my $file = 'TestConfigData.pm'; +# XXX $ENV{HOME} isn't propagated in mod_perl +unshift @INC, catdir($ENV{HOME}, '.apache-test') if $ENV{HOME}; +for (@INC) { +my $candidate = catfile($_, 'Apache', $file); +if (-e $candidate) { +eval {require $candidate}; +next if $@; +if (config_has_data()) { +$config = $candidate; +last; +} +} +} +unless ($IN_APACHE_TEST) { +die 'Could not find a valid Apache::TestConfigData' +unless config_has_data(); +} +shift @INC if $ENV{HOME}; +# preferentially use environment variables +for (@data_vars) { +next unless my $value = $ENV{$vars_to_env{$_}}; +$Apache::TestConfigData::vars-{$_} = $value; +} + +return $config; +} + +sub config_has_data { +return ($Apache::TestConfigData::vars and +