On Jul 18, 2006, at 1:59 PM, Paul LeoNerd Evans wrote:
I have a question on a testing strategy for a CPAN module test
script.... I've got two competing ideas on how to do it; I wonder if
anyone can suggest one or the other..
The function under test sends some data down a socket, then awaits a
response. Do I A: pre-send a response and get the kernel to buffer it,
call it, and check the sent value on return, or B: pipe() and fork() a
child, and have the checking/sending done in there?
Could you hijack the internal functions that read & write data on the
socket? I.e. if call_function() uses _send() and _receive()
internally, do:
{
my ($sent)
local *_send = sub {$sent = shift};
local *_receive = sub {return "The response you read\n"};
$result = call_function( "args" );
is( $result, "foo", "return value" );
is( $sent, "bar", "sent data" );
}
-Ken