111 lines
4.9 KiB
Text
111 lines
4.9 KiB
Text
- on linux most symbols are resolved on demand, but this is not the
|
|
case with certain other platforms. so testing on linux may not
|
|
detect some problems, exposed on other platforms. env var
|
|
PERL_DL_NONLAZY=1 tries to resolve all symbols at load time. we
|
|
could always enforce that with this patch:
|
|
|
|
--- Apache-Test/lib/Apache/TestRun.pm 16 Apr 2004 20:29:23 -0000 1.166
|
|
+++ Apache-Test/lib/Apache/TestRun.pm 6 May 2004 04:43:01 -0000
|
|
@@ -643,7 +643,7 @@
|
|
}
|
|
close $sh;
|
|
|
|
- $original_command = "ulimit -c unlimited; $original_command";
|
|
+ $original_command = "ulimit -c unlimited; PERL_DL_NONLAZY=1 $original_comma
|
|
nd";
|
|
|
|
- general config: adjust Apache/TestConfig.pm not to write irrelevant
|
|
httpd.conf sections (e.g. <IfModule prefork.c> for win32, and vice
|
|
versa, A-T knows exactly what mpm it needs to write the config for).
|
|
Thus reducing the clutter.
|
|
|
|
- winnt case: Apache/TestConfig.pm config for <IfModule mpm_winnt.c>
|
|
before Apache-2.0.50 ThreadsPerChild had to be at least as big as
|
|
the number of Vhosts. This was fixed in 2.0.50. Since A-T knows the
|
|
httpd version, it shouldn't start so many threads for httpd >=
|
|
2.0.50, but @MinClients@. Also add BACK_COMPAT_MARKER in the logic
|
|
so when no longer support httpd < 2.0.50, this logic could be removed.
|
|
|
|
- sometimes the server aborts completely after the test suite has run
|
|
some of the tests (e.g. win32's server has crashed and no
|
|
replacement is available), but the client part continues to run
|
|
tests unaware of that problem. what would be nice to be able to
|
|
detect that the server is gone and somehow abort the test suite
|
|
|
|
- Custom sticky config: invalidate invalid bits of the saved config,
|
|
e.g. if apxs is saved but can't be found on the filesystem. So if
|
|
someone installs Apache in one location, runs A-T which saves that
|
|
location, and then nukes Apache and reinstalls it into a different
|
|
location we should drop the previously saved config since the path
|
|
to apxs and/or httpd is now invalid.
|
|
|
|
- Apache-Test doesn't run on IPv6 systems, need to change the
|
|
autogeneration of httpd.conf to support IPv6. It requires a
|
|
replacement of 'Listen 80' with 'Listen servername:80'
|
|
Philippe posted patch here:
|
|
http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=105514290024419&w=2
|
|
|
|
For now, 127.0.0.1 will be hardcoded in the Listen directive, but a better
|
|
method would use this table:
|
|
|
|
Apache \ OS | IPV4 | IPV6
|
|
--------------------------------------------
|
|
--enable-v4-mapped | 80 | 80
|
|
--disable-v4-mapped | can't happen | 127.0.0.1:80
|
|
|
|
To more correctly pick the right Listen flavor.
|
|
|
|
- Apache-Test assumes that any core file found under t/ was generated
|
|
by httpd, (and suggests the gdb invoking command) which is incorrect
|
|
in some cases. For example t/TEST -config, which is run by bin/perl,
|
|
may dump core as well.
|
|
|
|
- consider not using the __DIE__ sighandler, but instead wrap the
|
|
potentially failing code in the eval trap blocks.
|
|
|
|
- print STDERR is buffered in test handlers, whereas warn() works
|
|
normally. select() helps, but STDERR should be unbuffered in first
|
|
place.
|
|
|
|
- If something goes wrong during the ./t/TEST's phase when all the
|
|
configuration files httpd.conf, etc. are generated,
|
|
t/conf/apache_test_config.pm now gets written, so t/TEST -clean can work
|
|
However if the problem happens during 'make test' for
|
|
some reason Makefile doesn't abort on exit from test_clean target, no
|
|
matter if I put exit -1, 0 or 1, and proceeds with run_tests target.
|
|
probably, since __DIE__ will stop the server.
|
|
|
|
to reproduce the problem during configure() apply this patch:
|
|
|
|
Index: Apache-Test/lib/Apache/TestConfigPerl.pm
|
|
===================================================================
|
|
RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfigPerl.pm,v
|
|
retrieving revision 1.38
|
|
diff -u -r1.38 TestConfigPerl.pm
|
|
--- Apache-Test/lib/Apache/TestConfigPerl.pm 2001/10/18 04:18:16 1.38
|
|
+++ Apache-Test/lib/Apache/TestConfigPerl.pm 2001/10/19 02:14:56
|
|
@@ -347,6 +347,7 @@
|
|
if (open $fh, $file) {
|
|
my $content = <$fh>;
|
|
close $fh;
|
|
+ require $file;
|
|
if ($content =~ /APACHE_TEST_CONFIGURE/m) {
|
|
eval { require $file };
|
|
warn $@ if $@;
|
|
|
|
- segfaults should be trapped and:
|
|
* the test routine should be aborted, since it's possible that some
|
|
other test will segfault too and overwrite the core file
|
|
|
|
* it'd be cool to automatically generate the backtrace with help of
|
|
Devel::CoreStack and save it in the file
|
|
|
|
* once we add the backtrace feature, we don't have to abort the rest
|
|
of the tests, but to save each bt as "backtrace.$test_path".
|
|
=> this should be very useful in smoke testing
|
|
|
|
* later, it'd be nice to integrate this with build/bugreport.pl, so
|
|
the bug report with the backtrace and everything we want to know
|
|
from user's machine, including their /etc/shadow (:-) will be
|
|
automatically posted to the list.
|
|
|