-------------------
=item 1.39 Apr 21 2015
Test scripts can now test if perl has a fork() implementation available by
using the Apache::Test::need_fork() function. [Steve Hay]
CPAN RT#87620: Add -D APACHE2_4 to identify httpd-2.4. [Michael Schout]
-------------------
1.38 Aug 6 2012
Fix log_watch.t on Windows, which can't (naturally) delete open files.
[Steve Hay]
Fix t_filepath_cmp, t_catfile and t_catfile_apache in Apache::TestUtil
on Windows: their use of Win32::GetLongPathName() was broken for
non-existent files. [Steve Hay]
Remove use of Nullsv as per modperl commit 1362399. [Steve Hay]
have Apache::TestConfigPerl::configure_inc set up @INC to include
../blib/lib and ../blib/arch if they exist. The bundled Apache::Reload
may fail to load Apache2::Const & co otherwise when testing. [Torsten
Foertsch]
1.37 January 29, 2012
Apache::TestRequest: improve compatibility for SSL requests with LWP 6
and IO::Socket::SSL, in particular [Kaspar Brand]
As of httpd revision 1053230 (version 2.3.11) the NameVirtualHost
directive became superfluous and a warning is issued when it is met.
So, Apache::Test now wraps NameVirtualHost directives in <IfVersion>
blocks. [Kaspar Brand]
Add comments about the source files of auto configurated tests to the
generated httpd.conf and improve indentation a bit. [Torsten Foertsch]
Run t/TEST tests by default in alphabetical order and only t/SMOKE
tests by default in random order. [Rainer Jung]
Add t_file_watch_for to Apache::TestUtil [Torsten Foertsch]
Add $boolean parameter to Apache::TestHandler::ok and
Apache::TestHandler::ok1 Add a few bits of documentation [Torsten
Foertsch]
Apache::TestHandler forgot to require Apache2::RequestRec [Torsten
Foertsch]
1.36 February 2, 2011
Skip sok.t unless perlio is enabled [Torsten Foertsch]
Deprecate t/TEST -times=X in favor of t/SMOKE -times=X. Changes to
TAP::Harness have removed the ability to re-use test object attributes.
Also generate t/SMOKE on build now, instead of requiring the user to
build it. Thanks to Jim Jagielski for the spot on the -times=X issue on
t/TEST. [Fred Moyer]
More or less cosmetical, prevent repeating "adding source lib" info
lines in the output when testing Apache::Test, SizeLimit and similar
[Torsten Foertsch]
1.35 January 22, 2011
Return value on running tests as root should be 0, not 1. Thanks to
Michael Schout for the spot. [Fred Moyer]
Add support for RFC2253 DN string format to dn_oneline in
Apache::TestSSLCA [Stefan Fritsch]
Make Apache::Test::sok() compatible with the -withtestmore option
[Torsten Foertsch]
Make -withtestmore a per-package option (make it behave sane). [Torsten
Foertsch]
1.34 December 18, 2010
Fix build edge case where rpm based mp sources missing Apache2::Build
cause require failure in Apache-TestConfig. Reported by Ryan Gies.
[Fred Moyer]
When an explicit shared mod_perl lib is not defined, default to the
first shared module found by find_apache_module(). [Fred Moyer]
Fix logic error in TOP_LEVEL constant calculation. Remove Apache::test
compatibility from mod_perl 1.27. [Fred Moyer]
Remove the custom config feature, and instead use inline directives,
ENV vars, and look for apxs et al in PATH. [Fred Moyer]
Prevent reconfiguration when t/TEST is called with -run-tests only.
(rev 1004278) [Torsten Foertsch]
Make "t/TEST -ping=block" work when LWP is installed. (rev 1004275)
[Torsten Foertsch]
Don't attempt to run the test suite as root. The workarounds needed to
facilitate root testing cause large maintenance costs, and return no
tangible benefits. [Fred Moyer]
1.33 September 14, 2010
Propagate APACHE_TEST_NO_STICKY_PREFERENCES to the Apache environment
for mod_perl configurations (Apache::TestConfigPerl),
http://www.gossamer-threads.com/lists/modperl/dev/101929 [Torsten
Foertsch]
Provide build/test environment for modules bundled with mod_perl like
Apache::Reload and Apache::SizeLimit [Torsten Foertsch]
The CN in server certificates generated by Apache::TestSSLCA will now
match the servername passed to t/TEST. [Joe Orton]
Add check for automated testing environment variable before prompting
with EU::MM to quit the test suite. Some automated smoke tests were
failed because the EU::MM prompt was timing out. [Adam Prime, Fred
Moyer]
https://rt.cpan.org/Public/Bug/Display.html?id=32993 use TAP::Harness
for Apache::TestHarnessPHP [Mark A. Hershberger]
https://rt.cpan.org/Public/Bug/Display.html?id=54476 Fix error where
non root user gets test failure with httpd suexec and mod_fcgid [Peter
(Stig) Edwards]
1.32 April 15, 2010
Fix issue with recent feature where lack of libapreq resulted in test
failure. [Philippe M. Chiasson]
Added t_{start,read,finish}_file_watch to Apache::TestUtil [Torsten
Foertsch]
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
pkgsrc changes:
- Add license definition
Upstream changes:
1.31 February 24, 2010
* Modify need_cgi so that it looks for cgi.c instead of cgi. This is a
fix for the case insensitive filesystem correction listed below.
[Phillipe M. Chiasson]
* t/next_available_port.t doesn't need mod_cgid, use need_cgi instead of
need_module('mod_cgi.c') [Philippe M. Chiasson]
* PR: 21554 Load mod_apreq2.so if it is available
[Derek Price, <derek@ximbiot.com>]
* Add conditional to ignore IfVersion directive if mod_version is not
built. [Adam Prime <adam.prime@utoronto.ca>,
Fred Moyer <phred@apache.org>]
* PR: 41239 t/TEST -ping does not return a valid return code to the
calling shell [ozw1z5rd <alessio.palma@staff.dada.net>]
* Prevent infinite loop when no default apxs or httpd is present and
repeated attempts to run the test suite under an automated harness
(such as a cpan smoke test). Issue reported by CORION and ANDK,
PR: 12911 [Fred Moyer <phred@apache.org>]
* Use need_module('mod_cgi.c') and need_module('mod_cgid.c') in
t/next_available_port.t instead of need_cgi. On case insensitive file
systems such as OS X, need_cgi will fulfill the requirement with
cgi.pm, when mod_cgi.c is the desired requirement.
[Fred Moyer <phred@apache.org>]
* Fix overridden get_basic_credentials test when using NTLM
authentication [Rick Frankel <cpan@rickster.com>]
* Work around a bug introduced in libwww-perl in version 5.820 for
httpd's credentials [Gunnar Wolf <gwolf@gwolf.org>, Niko Tyni <ntyni@debian.org>]
* Make Apache::TestConfig::untaint_path tolerate undefined arguments
[Torsten Foertsch <torsten.foertsch@gmx.net]
* Inherit LoadFile directives from the global httpd.conf
[Torsten Foertsch <torsten.foertsch@gmx.net]
* Don't overwrite php.ini if it already exists PR: 32994
[MAHEX <MAHEX@cpan.org>]
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
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