[memcached] bradfitz, r339: more tests. add more common test helper...

commits at code.sixapart.com commits at code.sixapart.com
Mon Sep 4 05:40:51 UTC 2006


more tests.  add more common test helper functions.

U   trunk/server/test/delete-window.t
U   trunk/server/test/lib/MemcachedTest.pm


Modified: trunk/server/test/delete-window.t
===================================================================
--- trunk/server/test/delete-window.t	2006-09-04 05:29:59 UTC (rev 338)
+++ trunk/server/test/delete-window.t	2006-09-04 05:40:50 UTC (rev 339)
@@ -45,38 +45,25 @@
 print $sock "add foo 0 0 7\r\nfoo-add\r\n";
 is($line->(), "STORED\r\n", "stored foo-add");
 
-my $get_fooadd = sub {
-    my $msg = shift;
-    print $sock "get foo\r\n";
-    is($line->(), "VALUE foo 0 7\r\n", "got foo value... ($msg)");
-    is($line->(), "foo-add\r\n", ".. with value foo-add ($msg)");
-    is($line->(), "END\r\n", "got END ($msg)");
-};
-$get_fooadd->("before deleter event");
+mem_get_is($sock, "foo", "foo-add", "foo == 'foo-add' (before deleter)");
 
-# wait fo
-diag("waiting 5 seconds for the deleter event...");
-sleep(5.2);
-$get_fooadd->("after deleter event");
-
-
-__END__
-sleep 10;
-
-# test a set, delete w/ timer, set, wait 5.2 seconds (for 5 second
-# deleter event), then get to see which we get.
+# test 'baz' with set, delete w/ timer, set, wait 5.2 seconds (for 5
+# second deleter event), then get to see which we get.
 print $sock "set baz 0 0 4\r\nval1\r\n";
 is($line->(), "STORED\r\n", "stored baz = val1");
-print $sock "delete foo 1\r\n";
+print $sock "delete baz 1\r\n";
 is($line->(), "DELETED\r\n", "deleted with 1 second window");
-
 print $sock "set baz 0 0 4\r\nval2\r\n";
 is($line->(), "STORED\r\n", "stored baz = val2");
-diag("sleeping for 5 seconds to wait for deleter event...");
+
+diag("waiting 5 seconds for the deleter event...");
 sleep(5.2);
-print $sock "get baz\r\n";
-is($line->(), "VALUE baz 0 4\r\n", "got baz value...");
-is($line->(), "val2\r\n", ".. with value val2");
-is($line->(), "END\r\n", "got END");
 
+# follow-up on 1st test:
+mem_get_is($sock, "foo", "foo-add", "foo == 'foo-add' (after deleter)");
 
+# and follow-up on 2nd test:
+mem_get_is($sock, "baz", "val2", "baz=='val2'");
+
+
+

Modified: trunk/server/test/lib/MemcachedTest.pm
===================================================================
--- trunk/server/test/lib/MemcachedTest.pm	2006-09-04 05:29:59 UTC (rev 338)
+++ trunk/server/test/lib/MemcachedTest.pm	2006-09-04 05:40:50 UTC (rev 339)
@@ -6,13 +6,27 @@
 use Carp qw(croak);
 use vars qw(@EXPORT);
 
- at EXPORT = qw(new_memcached sleep);
+ at EXPORT = qw(new_memcached sleep mem_get_is);
 
 sub sleep {
     my $n = shift;
     select undef, undef, undef, $n;
 }
 
+sub mem_get_is {
+    # works on single-line values only.  no newlines in value.
+    my $sock = shift;
+    my ($key, $val, $msg) = @_;
+    print $sock "get $key\r\n";
+    if (! defined $val) {
+        Test::More::is(scalar <$sock>, "END\r\n", $msg);
+    } else {
+        my $len = length($val);
+        my $body = scalar(<$sock>) . scalar(<$sock>) . scalar(<$sock>);
+        Test::More::is($body, "VALUE $key 0 $len\r\n$val\r\nEND\r\n", $msg);
+    }
+}
+
 sub free_port {
     my $sock;
     my $port;




More information about the memcached-commits mailing list