summaryrefslogtreecommitdiff
path: root/t/chunked-items.t
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2016-07-09 12:49:43 -0700
committerdormando <dormando@rydia.net>2016-07-12 18:42:46 -0700
commit5978cf70ddba82ff08034075befd5f855963f556 (patch)
treeb4058df60600067a609254653bf49c639b61e387 /t/chunked-items.t
parent3e10a71dfe1cbf03037735d49d77a37a40e88ea8 (diff)
downloadmemcached-5978cf70ddba82ff08034075befd5f855963f556.tar.gz
chunked append/prepend now work.
This is also the only actual tests of append and prepend in the codebase :/ t/binary.t had some simple tests but no others were ever written.
Diffstat (limited to 't/chunked-items.t')
-rw-r--r--t/chunked-items.t47
1 files changed, 47 insertions, 0 deletions
diff --git a/t/chunked-items.t b/t/chunked-items.t
index ea34fd4..1b5b0dd 100644
--- a/t/chunked-items.t
+++ b/t/chunked-items.t
@@ -61,4 +61,51 @@ for (1..5) {
}
}
+# Test long appends and prepends.
+{
+ my $str = 'seedstring';
+ my $len = length($str);
+ print $sock "set appender 0 0 $len\r\n$str\r\n";
+ is(scalar <$sock>, "STORED\r\n", "stored seed string for append");
+ for my $part (@parts) {
+ # reduce required loops but still have a pattern.
+ $part .= "x" x 10;
+ $str .= $part;
+ my $len = length($part);
+ print $sock "append appender 0 0 $len\r\n$part\r\n";
+ is(scalar <$sock>, "STORED\r\n", "appened $part size $len");
+ mem_get_is($sock, "appender", $str);
+ }
+ # Now test appending a chunked item to a chunked item.
+ $len = length($str);
+ print $sock "append appender 0 0 $len\r\n$str\r\n";
+ is(scalar <$sock>, "STORED\r\n", "append large string size $len");
+ mem_get_is($sock, "appender", $str . $str);
+ print $sock "delete appender\r\n";
+ is(scalar <$sock>, "DELETED\r\n", "removed appender key");
+}
+
+{
+ my $str = 'seedstring';
+ my $len = length($str);
+ print $sock "set prepender 0 0 $len\r\n$str\r\n";
+ is(scalar <$sock>, "STORED\r\n", "stored seed string for append");
+ for my $part (@parts) {
+ # reduce required loops but still have a pattern.
+ $part .= "x" x 10;
+ $str = $part . $str;
+ my $len = length($part);
+ print $sock "prepend prepender 0 0 $len\r\n$part\r\n";
+ is(scalar <$sock>, "STORED\r\n", "prepend $part size $len");
+ mem_get_is($sock, "prepender", $str);
+ }
+ # Now test appending a chunked item to a chunked item.
+ $len = length($str);
+ print $sock "prepend prepender 0 0 $len\r\n$str\r\n";
+ is(scalar <$sock>, "STORED\r\n", "prepend large string size $len");
+ mem_get_is($sock, "prepender", $str . $str);
+ print $sock "delete prepender\r\n";
+ is(scalar <$sock>, "DELETED\r\n", "removed prepender key");
+}
+
done_testing();