dcsimg

Performing Configuration Testing Using HTTPD-Test's Perl Framework Page 2

By Martin Brown (Send Email)
Posted Jul 7, 2003


Running All the Tests

You can run all the available tests by simply typing:

t/TEST

The above will use the httpd server identified by apxs, if you have it. If you want to specify an alternative server, use the -httpd command line option:

t/TEST -httpd /export/http/apache2/bin/httpd

Even on a relatively fast machine, it will take a while for all the tests to be run on the entire suite and for a summary to be generated. Also, be aware that the first time you run the tests it will probably compile a few modules and create a few tests. Once all the tests have been run, the output will likely be similar to this:

*** setting ulimit to allow core files
ulimit -c unlimited; t/TEST 'modules'
*** root mode: changing the fs ownership to 'nobody'
(60001:60001)
/export/http/apache2/bin/httpd  -d
/export/contrib/build/solaris/httpd-test/httpd-test/perl-framework/t -f
/export/contrib/build/solaris/httpd-test/httpd-test/perl-framework/t/conf/httpd.conf
-DAPACHE2 
using Apache/2.0.44 (prefork MPM)
waiting for server to start: .
waiting for server to start: ok (waited 0 secs)
server localhost:8529 started
server localhost:8530 listening (mod_nntp_like)
modules/access.........ok                                                   
modules/alias..........ok                                                   
modules/autoindex......ok                                 
                  
modules/autoindex2.....ok                                                   
...
modules/include2.......ok                                                   
modules/info...........skipped
        all skipped: cannot find
module 'info'
modules/negotiation....ok                                                   
modules/rewrite........skipped
        all skipped: cannot find
module 'rewrite'
modules/setenvif.......ok                                                   
modules/status.........ok                                                   
modules/vhost_alias....skipped
        all skipped: cannot find
module 'vhost_alias'
All tests successful, 7 tests and 6 subtests skipped.
Files=19, Tests=1086, 104 wallclock secs (57.64 cusr + 9.89 csys = 67.53 CPU)
*** server localhost:8529 shutdown

Note that this is truncated; typical output will be about two pages long.

What you are looking for here is a failure when running the tests. Therefore, you can generally ignore "skipped" notices, they just indicate that a required module is unavailable. However, take notice of them if you thought the module was installed correctly.

If one of the module sets fails, it's time to start drilling down and running test sets and, ultimately, individual tests.

Running a Specific Test

If you look in the t directory, you'll see a number of subdirectories that contain the tests for specific areas. For example, the standard toolkit incorporates tools for checking the main Apache setup, the configuration files, and PHP. To select which tests to run, just specify the name of the test on the command line to the TEST script. For example, to run the tests for the additional modules in Apache:

t/TEST modules

To run the tests on the include module:

t/TEST modules/include

The further down you drill, the more likely you are to find the precise location of the problem.

Tracing a Problem

Tracing a problem is actually a bit more difficult than it at first seems. Even if you can determine which test within a particular set failed, the only way you are going to find out the reason for the problem is to check the test scripts and associated documents and determine where the problem lies. With about 25,000 lines of code and sample documents to work through in the entire set, it's not a job for faint hearted

You also need to be careful -- just because the script returns an apparently fine execution doesn't mean there aren't problems. It's always worth checking the error_log generated by Apache, located in the t/logs directory. Often this can highlight errors raised by the server that the test harness never picks up. But, always compare it to the test scripts -- you might find that the script is actually testing for a failure, in which case, an error in the error log really indicates a success, not a failure!

Page 2 of 2


Comment and Contribute

Your name/nickname

Your email

(Maximum characters: 1200). You have characters left.