Re: ownership mmaped files - I have to be missing something...

2010-11-11 Thread Ben Noordhuis
On Thu, Nov 11, 2010 at 08:28, Mike Meyer
mwm-keyword-apache.b9a...@mired.org wrote:
 Is there a hook that runs after config in the parent, but as the
 unprivileged id that I should be using? I couldn't find one (either in

There isn't one, setuid() is called right before the child_init hook.

Having said that, can't you open() the file in the parent and have the
children mmap() the fd into memory? Just make sure it isn't marked as
FD_CLOEXEC.


Re: Howto unittest httpd modules?

2010-11-11 Thread Sorin Manolache
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