summaryrefslogtreecommitdiff
path: root/t/noreply.t
diff options
context:
space:
mode:
authorTomash Brechko <tomash.brechko@gmail.com>2008-02-22 04:57:41 +0000
committerTomash Brechko <tomash.brechko@gmail.com>2008-02-22 04:57:41 +0000
commitd9ece78091f1dc15332b16131258fb25d9ba3224 (patch)
tree850b51c15d6d5b00493f850bfd37e6666e186865 /t/noreply.t
parent57e3367ce4ba3f1bfd562ddf87c270c51a19bfa9 (diff)
downloadmemcached-d9ece78091f1dc15332b16131258fb25d9ba3224.tar.gz
Implement 'noreply' option for update commands. (Tomash Brechko <tomash.brechko@gmail.com>)
Commands add, set, replace, append, prepend, cas, delete, incr, decr, flush_all, verbosity can take last optional parameter, 'noreply', which instructs the server to not send the reply. Add benchmark script for noreply parameter. git-svn-id: http://code.sixapart.com/svn/memcached/trunk/server@708 b0b603af-a30f-0410-a34e-baf09ae79d0b
Diffstat (limited to 't/noreply.t')
-rw-r--r--t/noreply.t53
1 files changed, 53 insertions, 0 deletions
diff --git a/t/noreply.t b/t/noreply.t
new file mode 100644
index 0000000..c1457b0
--- /dev/null
+++ b/t/noreply.t
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+
+use strict;
+use Test::More tests => 10;
+use FindBin qw($Bin);
+use lib "$Bin/lib";
+use MemcachedTest;
+
+
+my $server = new_memcached();
+my $sock = $server->sock;
+
+
+# Test that commands can take 'noreply' parameter.
+print $sock "flush_all noreply\r\n";
+print $sock "flush_all 0 noreply\r\n";
+
+print $sock "verbosity 0 noreply\r\n";
+
+print $sock "add noreply:foo 0 0 1 noreply\r\n1\r\n";
+mem_get_is($sock, "noreply:foo", "1");
+
+print $sock "set noreply:foo 0 0 1 noreply\r\n2\r\n";
+mem_get_is($sock, "noreply:foo", "2");
+
+print $sock "replace noreply:foo 0 0 1 noreply\r\n3\r\n";
+mem_get_is($sock, "noreply:foo", "3");
+
+print $sock "append noreply:foo 0 0 1 noreply\r\n4\r\n";
+mem_get_is($sock, "noreply:foo", "34");
+
+print $sock "prepend noreply:foo 0 0 1 noreply\r\n5\r\n";
+my @result = mem_gets($sock, "noreply:foo");
+ok($result[1] eq "534");
+
+print $sock "cas noreply:foo 0 0 1 $result[0] noreply\r\n6\r\n";
+mem_get_is($sock, "noreply:foo", "6");
+
+print $sock "incr noreply:foo 3 noreply\r\n";
+mem_get_is($sock, "noreply:foo", "9");
+
+print $sock "decr noreply:foo 2 noreply\r\n";
+mem_get_is($sock, "noreply:foo", "7");
+
+print $sock "delete noreply:foo noreply\r\n";
+mem_get_is($sock, "noreply:foo");
+
+# Test that delete accepts both <time> and 'noreply'.
+print $sock "add noreply:foo 0 0 1 noreply\r\n1\r\n";
+print $sock "delete noreply:foo 10 noreply\r\n";
+print $sock "add noreply:foo 0 0 1 noreply\r\n1\r\n";
+# undef result means we couldn't add an entry because the key is locked.
+mem_get_is($sock, "noreply:foo");