httpd-test-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Geoffrey Young <ge...@modperlcookbook.org>
Subject Re: using TestRunPerl without mod_perl.c
Date Fri, 03 Oct 2003 13:33:42 GMT

> TestRunPerl implies that mod_perl is available. If it is not, 
> TestRunPerl should abort *before* it creates the config file, telling 
> user to use a mod_perl enabled server. 

I don't think it needs to be that way, and I'm not even sure it's a good 
idea.  here's why...

I may have a distribution that has parts that can work in both environments. 
  say I'm writing a test for CGI.pm - I maybe want to have tests that use no 
server (generate HTML foo), then test stuff like $q->param, which behaves 
differently under mod_perl and mod_cgi.

TestRunPerl is useful for configuring the mod_perl part of the server, but I 
don't necessarily want the _entire test suite_ to blow up just because 
mod_perl isn't in the httpd the user provided - there are still at least two 
parts of the module I can test.  granted, with something as simple as CGI.pm 
I may not need the mod_perl widgets, but for other, more elaborate, modules 
I may.  and the functionality for configuring mod_perl widgets is right 
there in TestRunPerl - no need for me to do it myself, either manually or 
through a subclass.

now, say you have a mod_perl-only module, like some of the ones we have both 
written.  you have a choice: you either want the tests to fail if mod_perl 
isn't present (like you do) or you want the tests to skip (like I do).

the patch I have proposed allows both to coexist.  for me, I can do

plan tests => 1, have_module('mod_perl.c');

while you can do

die unless have_module('mod_perl.c');

plan tests => 1;

the end result is that everybody can achieve the behavior they want, which 
is kinda what Perl is all about :)

> 
> There is nothing wrong with your patch, but it hides the problem instead 
> of fixing it.

we clearly have different views of the problem.  I think that Apache-Test 
should provide the tools to configure a server and run the tests, leaving it 
up to the tests to decide what fails and what passes.  by making TestRunPerl 
(or anything else, for that matter) abort if a specific httpd module isn't 
found, you are taking away flexibility that would benefit test authors.

in other words, Apache-Test should provide tools to make creating a test 
enviroment easier, not make decisions about whether 'make test' passes or fails.

--Geoff


Mime
View raw message