stas 01/09/05 19:45:13 Added: t/protocol eliza.t t/protocol/TestProtocol eliza.pm Log: now we have our own Rogerian psychotherapist overlooking our test suite :) Revision Changes Path 1.1 modperl-2.0/t/protocol/eliza.t Index: eliza.t =================================================================== use strict; use warnings FATAL => 'all'; use Apache::Test; use Apache::TestRequest (); my @test_strings = ('Hello Eliza', 'How are you', 'Why do I have core dumped?', 'I feel like writing some tests today, you?', 'good bye'); plan tests => 1 + @test_strings, test_module 'Chatbot::Eliza'; my $socket = Apache::TestRequest::vhost_socket('TestProtocol::eliza'); ok $socket; for (@test_strings) { print "SEND ='$_'\n"; print $socket "$_\n"; chomp(my $reply = <$socket>); print "REPLY='$reply'\n"; ok $reply; } 1.1 modperl-2.0/t/protocol/TestProtocol/eliza.pm Index: eliza.pm =================================================================== package TestProtocol::eliza; use strict; use Apache::Connection (); use APR::Socket (); require Chatbot::Eliza; use constant BUFF_LEN => 1024; my $mybot = new Chatbot::Eliza; sub handler { my Apache::Connection $c = shift; my APR::Socket $socket = $c->client_socket; my $buff; my $last = 0; for (;;) { my($rlen, $wlen); my $rlen = BUFF_LEN; $socket->recv($buff, $rlen); last if $rlen <= 0; $last++ if $buff eq 'good bye'; $buff = $mybot->transform( $buff ) . "\n"; $socket->send($buff, length $buff); last if $last; } return 0; } 1;