[REPOST] Testing network apps

Dirk Koopman djk at tobit.co.uk
Tue Jan 20 23:09:39 GMT 2009

In the spirit of neighbourliness, here is a (slightly modified) question 
in a new thread:

I am thinking about writing a framework to test a networking app (that 
does discrete message switching over both wire and radio on various 
bearers). The testing environment would involve dynamically generating 
configurations on each of two test "nodes", each node would be on a 
separate machine. I imagine this will require a "controller" of some 
sort, on each node, that writes configs and then starts and stops the 
software as required.

A test process then connects to each of these controllers and, having 
received a "node warmed up" signal from the controller, provides input 
and monitors output to/from the actual node software being tested.

The actual tests themselves are mainly very simple, along the lines of 
"send xx bytes and check that we get them out the other end the same", 
but there are some slightly more complex ones to do with failure modes 
(which will involve the controllers).

Obviously, this will involve a lot of IO::Select and IO::Net* and a lot 
of asynchronous/non blocking working with timers and stuff. The basics 
of all of this networking is fairly simple and reasonably well 
understood. However, I have never done much in the way of complex 
network communicating testing of this sort using the Test::* modules, 
only simple module/library testing.

Any suggestions as to a) which of the Test::* modules would be easiest 
to bend for this sort of thing b) should I actually bother with the 
Test::* stuff? Are there any other modules that spring to mind that 
would save some time/effort? Has anyone done an SDLC implementation in perl?


More information about the london.pm mailing list