1.30 November 26, 2007
Added t_write_test_lib for temporary testing packages
[Fred Moyer <fred@redhotpenguin.com>]
Fix syntax error in generated PHP files t/conf/*.php.in
[Philippe M. Chiasson]
Add bwshare.so to the list of modules to not inherit b/c
it rate limits requests to less then that of a test suite.
PR: 25548
[imacat <imacat@mail.imacat.idv.tw>]
Add EXTRA_CFLAGS to c-module building if defined in the environment
[Geoffrey Young]
1.29 November 28, 2006
Require a minium of Module::Build 0.18 when using Apache::TestMB.
PR: 19513
[Philip M. Gollucci]
Teach Apache::TestClient to encode spaces(' ') in query string of URLs
as %20. This is not a full mapping of ASCII to URL encoding.
If you need this, install LWP -- then Apache-Test will use
LWP -- which does this for you.
[Philip M. Gollucci]
Allow Apache::TestClient which is used when LWP is not installed
to accept mutiple headers of the same name.
[Philip M. Gollucci]
Add t_start_error_log_watch() and t_finish_error_log_watch()
to the Apache::TestUtil API which are only exported unpon request.
[Torsten Foertsch <torsten.foertsch@gmx.net>]
Allow version variants of debuggers to be passed as arguments
to -debug. i.e. -debug=gdb65 for systems with multiple
versions of the same debugger. [Philip M. Gollucci]
On Win32, the Apache executable is called httpd.exe in Apache/2.2,
so let Apache::TestConfig try to find that if Apache.exe isn't
found [Randy Kobes]
force reconfiguration if existing configuration was generated
by an older version of Apache-Test [Geoffrey Young]
the -t_pid_file code resulted in confusing and fatal error message
for people using stale 1.27 configurations. so take steps to make
sure things continue to work. [Geoffrey Young]
1.28 - February 22, 2006
- add need_imagemap() and have_imagemap() to check for mod_imap or
mod_imagemap (Colm MacCárthaigh)
- shortcuts like need_cgi() and need_php() no longer spit out bogus skip
messages (Geoffrey Young)
- Adjust Apache::TestConfig::untaint_path() to handle relative paths
that don't start with /. (Stas)
- If perlpath is longer than 62 chars, some shells on certain
platforms won't be able to run the shebang line, so when seeing a
long perlpath use the eval workaround (Mike Smith)
- Location of the pid file is now configurable via the command line
-t_pid_file option (Joe Orton)
- remove the mod_perl.pm entry from %INC after Apache::Test finishes
initializing itself. Because both mp1 and mp2 share the entry,
leaving it around means that Apache::Test might prevent later
modules from loading the real mod_perl module they're interested in,
leading to bad things (Geoffrey Young)
- use which("cover") to find the cover utility from Devel::Cover and
run it only if found. (Stas)
- Devel::Cover magic is now fully integrated. no more modperl_extra.pl
or extra.conf.in fiddling - 'make testcover' should be all you need
to do now (Geoffrey Young)
- Implemented a magic @NextAvailablePort@ to be used in config files
to automatically allocate the next available port (Stas)
- Adjust Apache::TestConfig::add_inc to add lib/ in separate call to
lib::->import at the very end of @INC manipulation to ensure it'll
be on top of @INC. For some reason lib has changed to add
directories in a different order than it did before. (Stas)
1.27 - October 20, 2005
localize ScriptSock directive to always point to t/logs/cgisock
regardless of inherited and custom mod_cgid settings
[Geoffrey Young]
Prevent the config file from being overwritten
on platforms such as WIN32 under certain conditions.
[Randy Kobes]
make sure that the TESTS Makefile.PL parameter is properly
recognized ["Christopher H. Laco"]
Add the output of ldd(unix/cygwin) and otool -L (darwin)
for httpd to the mp2bug report script.
[Philip M. Gollucci]
fall back on using httpd-defined HTTPD_ROOT as the base for
httpd.conf if all other options fail. [Geoffrey Young]
1.26 - July 25, 2005
some people have their Apache user/group names include spaces, so fix
the autogenerated httpd.conf to quote the two. [Stas]
make sure mp2 loading doesn't make it impossible to complete
mp1 runs. [Matt Sergeant, Geoffrey Young]
add Apache::TestConfigParrot and Apache::TestRunParrot to
support mod_parrot server-side testing [Geoffrey Young]
update -withtestmore action to properly work with newer versions
of Test::Builder [Geoffrey Young]
1.25 - June 17, 2005
provide $Apache::TestUtil::DEBUG_OUTPUT as target for t_debug()
statements, defaulting to STDOUT. this allows for changing
t_debug() to STDERR when using functions like t_write_file()
from within handler() server-side tests. [Geoffrey Young]
adjust need_module()/have_module() to not try to require a module if
it was explicitly passed with a .c extension. in certain cases this
prevents a fatal error (e.g. trying to call
Apache::Test::have_module('mod_alias.c') from the <Perl>
sections. [Stas]
1.24 - May 20, 2005
When adding TypesConfig directives (either inherited from the global
httpd.conf or from the locally generated mime.types) make sure to
enclose it in <IfModule mod_mime.c>..</IfModule>, since mod_mime might
be unavailable. [Stas]
1.23 - May 3, 2005
Fix Apache::TestRequest::hostport to return the default host:port
string if $Apache::TestRequest::Module is 'default' or undef [Stas]
Fix Apache::TestRequest::module2url to allow passing '' as a URI
path. [Stas]
tweaks to Apache::TestClient to better deal with corrupted responses
when LWP is not available. [Stas]
1.22 - April 14, 2005
******************** IMPORTANT ********************
this version of Apache-Test does not completely
configure mod_perl for mod_perl versions 1.99_21 or
earlier. Please read the below changes carefully.
***************************************************
remove Apache::TestConfig::modperl_2_inc_fixup(). Apache-Test
is no longer Apache2.pm aware - it will not configure mod_perl
support to look in Apache2/ automatically. [joes]
Add support for mp2's Apache:: -> Apache2:: rename [joes]
1.21 - March 23, 2005
fix Apache::TestConfig (was missing 'use lib' before using
lib::import) [William McKee]
TestConfigPerl will now configure mod_perl last, giving mod_perl
highest priority throughout the httpd lifecycle. [Geoffrey Young]
Apache::TestConfig::untaint_path needs to remove empty entries in the
PATH list, since -T considers those tainted too. [Stas]
add Apache::TestHarnessPHP which allows for running client-side
scripts via php instead of perl. [Geoffrey Young]
=item 1.20 - January 22, 2005
instead of trying to match various custom server name variations (each
vendor seems to replace "Apache" in 'httpd -v' with their own name),
just try to match the "/x.y" in "Foo-Apache-Bar/x.y.z" to figure out
the server generation (rev). [Stas]
extend Apache::TestConfig::which() to search under perl's bin
directory (in the case of local perl install many utils get installed
there, but won't be in PATH). [Stas]
Apache::TestConfig::inherit_load_module handles .dll modules
(previously was only .so) [Stas]
Apache::TestConfig::should_skip_module now works with regex
patterns. [Stas]
=item 1.19 - January 5, 2005
Test for module.c instead of module.so for IfModule in
find_and_load_module [Chia-Liang Kao <chialiang gmail.com>]
Apache-Test/META.yml is excluded from mp2 distro to make PAUSE indexer
happy, but then perl Makefile.PL complains about a missing META.yml,
so autogenerate it if it wasn't in the distro [Stas]
=item 1.18 - December 23, 2004
fix a bug in A-T config generation, when a vhost entry was in
autogenerated httpd.conf (e.g. coming from .pm file) and another from
extra.conf.in. We used to have a ports collision, since extra.conf
wasn't reparsed and the same port was getting assigned to more than
one vhost entry, preventing server startup:
default_ VirtualHost overlap on port 8530, the first has precedence
(98)Address already in use: make_sock: could not bind to address
0.0.0.0:8530 no listening sockets available, shutting down
could be reproduced with t/TEST -conf followed by t/TEST -maxclients 1
in the mp2 test suite (or the new Apache-TestMe test suite, which now
includes a special setup for this bug). [Stas]
new TestConfig wrapper find_and_load_module [Chia-Liang Kao <chialiang
gmail.com>]
add Apache-TestItSelf and Apache-TestMe sub-projects. [Stas]
add various straps to aid the new Apache-TestItSelf sub-project, which
is used to test A-T config options [Stas]
avoid entering endless loops when interactive config is used, by
restarting the test suite with an explicit selected arguments for
-httpd (and optionally -apxs) [Stas]
META.yml is now locally maintained. we need to tell PAUSE indexer not
to try to index HTTP::Request::Common and warnings packages, which
happen to be used by A-T [Stas]
=item 1.17 - December 11, 2004
Apache::TestHandler: need to load Apache::RequestIO for mp2 for puts()
to work [Stas]
new Apache::TestConfig wrapper untaint_path() [Randy Kobes]
fix the config thaw() functionality (when top_dir wasn't in @INC the
saved config won't be loaded and tests will blow) [Stas]
new wrapper Apache::TestRequest::module2url to simplify handling of
vhosts in the client. ["Christopher H. Laco" <apache-test
chrislaco.com>]
resolve -T taint issues: [Stas]
- untaint $cmd in Apache::TestConfig::open_cmd
- fix the tainting of @INC (by untaintinig top_dir variable)
require Cwd 2.06 or higher (to solve File::Spec::rel2abs problems
under -T). Enforce the modules version requirements for those who
aren't running under CPAN/CPANPLUS shell) [Stas]
Apache::TestTrace: don't export by default the 'todo' utility's symbol
since it collides with Test::More [Stas]
Tweak the handling of mp2 source build case in
Apache::TestConfig::httpd_config(), apparently mp2 source build
doesn't always know where httpd/apxs are, so we need to give a better
error message in this particular case. [Stas]
Add cookie jar tests ["Christopher H. Laco" <apache-test
chrislaco.com>]
Don't run interactive prompts when STDIN is closed [Stas]
Add LockFile directive in the autogenerated httpd.conf, which points
to t/logs, to handle the case where LockFile is hardcoded at compile
time to some other directory on the system. [Stas]
module directory has changed (eg. "darwin-2level" vs.
"darwin-thread-multi-2level").
binary packages of perl modules need to be distinguishable between
being built against threaded perl and unthreaded perl, so bump the
PKGREVISION of all perl module packages and introduce
BUILDLINK_RECOMMENDED for perl as perl>=5.8.5nb5 so the correct
dependencies are registered and the binary packages are distinct.
addresses PR pkg/28619 from H. Todd Fujinaka.
Change log:
1.16 - November 9, 2004
launder the require()d custom config filename to make -T happy
[Torsten Fo"rtsch <torsten.foertsch gmx.net>]
added Apache::TestRunPHP and Apache::TestConfigPHP classes,
which provide a framework for server-side testing via PHP
scripts [Geoffrey Young]
fix problem with multiple all.t files where only the final file
was being run through the test harness. [Geoffrey Young]
Documented that redirection does not work with "POST" requests
in Apache::TestRequest unless LWP is installed. [David Wheeler]
Separated the setting of the undocumented $RedirectOK package
variable by users of Apache::TestRequest from when it is set
internally by passing the "requests_redirectable" parameter to
the user_agent() method. This allows users to override the
behavior set by the user_agent() method without replacing it.
[David Wheeler]
1.15 - October 22, 2004
add need_php4() and have_php4() which will return true when
mod_php4 is available. also, tidy up need_php() and have_php()
for PHP4 on Apache 2.0. [Joe Orton]
add new test_config make target, equivalent to t/TEST -conf,
and make it a prerequisite for the cmodules make target. now
you can 'make cmodules' to build the things in c-modules/
without running t/TEST -conf first. [Geoffrey Young]
add -withtestmore import action, which allows Test::More >=
0.49 to replace Test.pm as the engine for server-side tests
[Geoffrey Young]
add automatic core dump backtrace generation in t/REPORT if
Devel::GDB is installed [Gozer]
add 'testcover' make target for running tests with Devel::Cover
[Geoffrey Young]
1.14 - October 12, 2004
improve the same_interpreter framework to handle response
failures while trying to init and later find out the same
interpreter. [Stas]
make sure that 'make distclean' cleans all the autogenerated
files [Stas]
make sure that if -maxclients option is passed on the command
line, minclients will never be bigger than that value [Stas]
add -one-process runtime argument, which will start the server
in single-server mode (httpd -X in Apache 1.X or httpd -D
ONE_PROCESS in 2.X) [Geoffrey Young]
In open_cmd, sanitize PATH instead of clearing it [Gozer]
Allow / \ and \\ path delimiters in SKIP file [Markus Wichitill
<mawic@gmx.de>]
Added an apxs query cache for improved test performance [Gozer]
run_tests make target no longer invokes t/TEST -clean, making
it possible to save a few development cycles when a full cleanup
is not required between runs. [Geoffrey Young]
Apache::TestSmoke imrovements: [Stas] o the command line option
-iterations=N should always be respected (previously it was
internally overriden for order!='random'). o since IPC::Run3
broke the Ctrl-C handler, we started to loose any intermediate
results, should the run be aborted. So for now, try to always
store those results in the temp file: smoke-report...$iter.temp
fix 'require blib' in scripts to also call 'blib->import',
required to have an effect under perl 5.6.x. [Stas]
don't allow running an explicit 'perl Makefile.PL', when
Apache-Test is checked out into the modperl-2.0 tree, since it
then decides that it's a part of the modperl-2.0 build and will
try to use modperl httpd/apxs arguments which could be unset
or wrong [Stas]
Fix skip test suite functionality in the interactive configuration
phase [Stas]
s/die/CORE::die/ after exec() to avoid warnings (and therefore
failures) when someone overrides CORE::die when using Apache-Test
[William McKee, Stas]
Overrode Module::Build's "testcover" action in Apache::TestMB
to prevent the Apache::Test sticky preference files from being
included in the coverage report. [David]
1.13 - Aug 20, 2004
move the custom config code into Apache::TestConfig, split the
config object creation in 2 parts - first not requiring the
knowledge of httpd location, the second requiring one, refactor
the custom config interactive prompting into the second phase,
if failed to find httpd. Reshuffle the code to run first bits
not requiring the knowledge of httpd location. [Stas]
fix Apache::TestCommonPost::lwp_do to work with LWP 5.800
($res->content() doesn't allow CODE refs anymore, instead used
content_ref to avoid huge strings copy) [Stas]
add @PHP_MODULE@ extra.conf.in substitution variable, which
selects mod_php4 or mod_php5 as appropriate. [Geoffrey Young]
the have() function was removed entirely - use need() instead.
[Geoffrey Young]
add need() and need_* variant functions (need_module(),
need_apache(), etc) for use specifically with plan() to decide
whether or not a test should run. have_* variants (have_module(),
have_apache(), etc) are now specifically for use outside of
plan(), although they can continue to be used within plan()
without fear of current tests breaking. [Geoffrey Young]
add need_php() and have_php() which will return true when either
mod_php4 or mod_php5 are available, providing functionality
similar to need_cgi() and have_cgi(). [Geoffrey Young]
Add APACHE_TEST_EXTRA_ARGS make variable to all invocations to
t/TEST to allow passing extra arguments from the command line.
[Gozer]
When APACHE_TEST_NO_STICKY_PREFERENCES=1 is used don't even
try to interactively configure the server, as we don't save
any config it was entering an infinite loop. [Stas]
If a directory t/lib exists from where the tests are run, adjust
@INC so that this directory is added when running the tests,
both within t/TEST and within t/conf/modperl_inc.pl. This allows
inclusion of modules specific to the tests that aren't intended
to be installed. [Stas, Randy]
make a special case for threaded mpm configuration, to ensure
that unless maxclients was specified, MaxClients will be exactly
twice bigger than ThreadsPerChild (minclients), since if we
don't do that, Apache will reduce MaxClients to the same value
as ThreadsPerChild. [Stas]
Renamed generate_test_script() to generate_script() in
Apache::TestMB to match the naming convention used in Apache::TestMM
and elsewhere. [David]
Apache::TestMB now only prints the "Generating test running
script" message if verbosity is enabled (e.g., by passing
--verbose when executing Build.PL). [David]
Fixed the "requests_redirectable" parameter to
Apache::TestRequest::user_agent() so that it works as docmented
when passed a negative value. [Boris Zentner]
Documented support for passing an array reference to the
"requests_redirectable" parameter to Apache::TestRequest::user_agent()
to be passed to LWP::UserAgent if LWP ist installed. [David]
Collection, from pkgsrc-wip.
Original package by Adam Migus.
Apache::Test is a test toolkit for testing an Apache server with any
configuration. It works with Apache 1.3 and Apache 2.0 and any of its
modules, including mod_perl 1.0 and 2.0. It was originally developed
for testing mod_perl 2.0.
For an extensive documentation see the tutorial:
http://perl.apache.org/docs/general/testing/testing.html