[memcached] bradfitz, r378: working UDP tests now
commits at code.sixapart.com
commits at code.sixapart.com
Thu Sep 7 17:13:36 UTC 2006
working UDP tests now
U trunk/server/t/udp.t
Modified: trunk/server/t/udp.t
===================================================================
--- trunk/server/t/udp.t 2006-09-07 06:02:56 UTC (rev 377)
+++ trunk/server/t/udp.t 2006-09-07 17:13:36 UTC (rev 378)
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use Test::More tests => 10;
+use Test::More tests => 33;
use FindBin qw($Bin);
use lib "$Bin/lib";
use MemcachedTest;
@@ -17,14 +17,18 @@
my $usock = $server->new_udp_sock
or die "Can't bind : $@\n";
-#test_single($usock);
+# test all the steps, one by one:
+test_single($usock);
-for my $pass (1, 2) {
- my $res = send_udp_request($usock, 160 + $pass, "get foo\r\n");
+# testing sequence numbers
+for my $offt (1, 1, 2) {
+ my $seq = 160 + $offt;
+ my $res = send_udp_request($usock, $seq, "get foo\r\n");
ok($res, "got result");
is(keys %$res, 1, "one key (one packet)");
ok($res->{0}, "only got seq number 0");
is(substr($res->{0}, 8), "VALUE foo 0 6\r\nfooval\r\nEND\r\n");
+ is(hexify(substr($res->{0}, 0, 2)), hexify(pack("n", $seq)), "sequence number in response ($seq) is correct");
}
# testing non-existent stuff
@@ -32,8 +36,22 @@
ok($res, "got result");
is(keys %$res, 1, "one key (one packet)");
ok($res->{0}, "only got seq number 0");
+is(hexify(substr($res->{0}, 0, 2)), hexify(pack("n", 404)), "sequence number 404 correct");
is(substr($res->{0}, 8), "END\r\n");
+# test multi-packet response
+{
+ my $big = "abcd" x 1024;
+ my $len = length $big;
+ print $sock "set big 0 0 $len\r\n$big\r\n";
+ is(scalar <$sock>, "STORED\r\n", "stored big");
+ mem_get_is($sock, "big", $big, "big value matches");
+ my $res = send_udp_request($usock, 999, "get big\r\n");
+ is(scalar keys %$res, 3, "three packet response");
+ like($res->{0}, qr/VALUE big 0 4096/, "first packet has value line");
+ like($res->{2}, qr/\r\nEND\r\n/, "last packet has end");
+ is(hexify(substr($res->{1}, 0, 2)), hexify(pack("n", 999)), "sequence number of middle packet is correct");
+}
sub test_single {
my $usock = shift;
More information about the memcached-commits
mailing list