On Thu, Nov 11, 2010 at 08:11, Edgar Frank <ef-li...@email.de> wrote:
> Hi modules-dev-folks,
>
> I've written a handful of modules for httpd. I'm now looking for a way to 
> setup some unit tests. We have continuous integration running, so I want to 
> supply some tests, starting from compiling against httpd to basic 
> functionality to more elaborate feature tests.
>
> I wonder how to unit-test this, as the prerequsites are rather complicated. 
> The tests would have to setup a httpd, provide a config, compile and install 
> the modules. As you don't want to modify the modules themselves, you have to 
> run a bunch of requests and monitor expected output - maybe measuring 
> coverage or running valgrind on the way.
>
> I see no way to run "real" unit tests as you would have to emulate httpd and 
> run your modules against it, as most of the code is httpd or at least highly 
> APR dependent. I see no point in emulating httpd as you would have to 
> implement every little detail - httpd specific behaviour (e.g. in version 
> bumps) is one important thing to test IMHO.
>
> So, has anyone some experience with this, some suggestions, howtos or 
> tutorials? Any help would be greatly appreciated.
>
> Regards,
> Edgar
>


In our group we unit test only parts of our modules. We unit test the
callbacks and their sequence (a sort of poor-man's emulation of
httpd). We populate a request_rec structure and then we pass it to the
various callbacks.

Our callbacks are mainly wrappers around bigger functions that are
httpd-independent. The apache filters are tested in this way.

The part that needed more code in order to emulate httpd was the
subrequest infrastructure.

Sorin

Reply via email to