You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by pg...@apache.org on 2006/07/09 09:46:01 UTC
svn commit: r420254 - /perl/modperl/trunk/t/protocol/pseudo_http.t
Author: pgollucci
Date: Sun Jul 9 00:46:00 2006
New Revision: 420254
URL: http://svn.apache.org/viewvc?rev=420254&view=rev
Log:
The problem here was that the .t file was never sending the initial
handshake ('HELO') to the server to start the conversation.
This also now works on 2.1+ and has been regression tested on
the following combinations (FreeBSD 6-1-STABLE):
r420253-5.8.8-2.0.49-prefork....ok
r420253-5.8.8-2.0.50-prefork....ok
r420253-5.8.8-2.0.51-prefork....ok
r420253-5.8.8-2.0.52-prefork....ok
r420253-5.8.8-2.0.53-prefork....ok
r420253-5.8.8-2.0.54-prefork....ok
r420253-5.8.8-2.0.55-prefork....ok
r420253-5.8.8-2.0.58-prefork....ok
r420253-5.8.8-2.2.0-prefork.....ok
r420253-5.8.8-2.2.2-prefork.....ok
Modified:
perl/modperl/trunk/t/protocol/pseudo_http.t
Modified: perl/modperl/trunk/t/protocol/pseudo_http.t
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/t/protocol/pseudo_http.t?rev=420254&r1=420253&r2=420254&view=diff
==============================================================================
--- perl/modperl/trunk/t/protocol/pseudo_http.t (original)
+++ perl/modperl/trunk/t/protocol/pseudo_http.t Sun Jul 9 00:46:00 2006
@@ -21,9 +21,6 @@
# blocking socket bug fixed in 2.0.52
my $ok = $^O !~ /^(Open|Net)BSD$/i || need_min_apache_version('2.0.52');
-# but not in 2.1? hmph.
-$ok = skip_reason('skipping on httpd 2.1') if have_min_apache_version('2.1');
-
plan tests => 13, need need_auth, need_access, $ok;
{
@@ -32,39 +29,117 @@
my $socket = Apache::TestRequest::vhost_socket($module);
ok $socket;
- expect_reply($socket, "HELO", "HELO", "greeting");
- expect_reply($socket, "Login:", $login, "login");
- expect_reply($socket, "Password:", $passgood, "good password");
- expect($socket, "Welcome to TestProtocol::pseudo_http", "banner");
- expect_reply($socket, "Available commands: date quit", "date", "date");
- expect_reply($socket, qr/The time is:/, "quit", "quit");
- expect($socket, "Goodbye", "end of transmission");
+ ####################################################################
+ # ACTION SEND RECEIVE
+ #
+ # greeting HELO
+ # HELO
+ # Login:
+ #
+ # login $login
+ # Password
+ #
+ # good pass $passgood
+ # banner Welcome to TestProtocol::pseudo_http
+ # Available commands: date quit
+ # date date
+ # The time is: Sat Jul 8 23:51:47 2006
+ #
+ # eot quit
+ # Goodbye
+
+ {
+ my $response = "";
+ $response = Send($socket, 'HELO');
+ ok t_cmp($response, 'HELO', 'greeting 1');
+ $response = getline($socket);
+ ok t_cmp($response, 'Login:', 'greeeting 2')
+ }
+
+ {
+ my $response = Send($socket, $login);
+ ok t_cmp($response, 'Password:', 'login');
+ }
+
+ {
+ my $response = "";
+ $response = Send($socket, $passgood);
+ ok t_cmp($response, 'Welcome to TestProtocol::pseudo_http', 'good pass');
+ $response = getline($socket);
+ ok t_cmp($response, 'Available commands: date quit', 'banner');
+ }
+
+ {
+ my $response = Send($socket, 'date');
+ ok t_cmp($response, qr/The time is:/, 'date');
+ }
+
+ {
+ my $response = Send($socket, 'quit');
+ ok t_cmp($response, 'Goodbye', 'eot');
+ }
}
{
- # this time sending wrong credentials and hoping that the server
- # won't let us in
+ # supply correct credential when prompted for such and ask the
+ # server get the secret datetime information
my $socket = Apache::TestRequest::vhost_socket($module);
ok $socket;
- expect_reply($socket, "HELO", "HELO", "greeting");
- expect_reply($socket, "Login:", $login, "login");
- t_client_log_error_is_expected();
- expect_reply($socket, "Password:", $passbad, "wrong password");
- expect($socket, "Access Denied", "end of transmission");
+ ####################################################################
+ # ACTION SEND RECEIVE
+ #
+ # greeting HELO
+ # HELO
+ # Login:
+ #
+ # login $login
+ # Password
+ #
+ # bad pass $passbad
+ # Access Denied
+ #
+ # eot quit
+ # Goodbye
+
+ {
+ my $response = "";
+ $response = Send($socket, 'HELO');
+ ok t_cmp($response, 'HELO', 'greeting 1');
+ $response = getline($socket);
+ ok t_cmp($response, 'Login:', 'greeeting 2')
+ }
+
+ {
+ my $response = Send($socket, $login);
+ ok t_cmp($response, 'Password:', 'login');
+ }
+
+ {
+ my $response = "";
+ $response = Send($socket, $passbad);
+ ok t_cmp($response, 'Access Denied', 'eot');
+ }
}
-sub expect {
- my ($socket, $expect, $action) = @_;
+## send() is reserved
+sub Send {
+ my ($socket, $str) = @_;
+
+ t_debug("send: $str");
+ print $socket $str;
+
chomp(my $recv = <$socket> || '');
- ok t_cmp($recv, $expect, $action);
+ t_debug("recv: $recv");
+
+ return $recv;
}
-sub expect_reply {
- my ($socket, $expect, $reply, $action) = @_;
+sub getline {
+ my ($socket) = @_;
+
chomp(my $recv = <$socket> || '');
- ok t_cmp($recv, $expect, $action);
- t_debug("send: $reply");
- print $socket $reply;
-}
+ t_debug("getline: $recv");
+ return $recv;
+}