summaryrefslogtreecommitdiff
path: root/t/metaget.t
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2021-12-15 19:03:07 -0800
committerdormando <dormando@rydia.net>2022-01-12 14:04:32 -0800
commite74f1cbadc995db0470767be03ad8832551222c7 (patch)
tree170b962836041597f20bd97f899cb0ad89f5ecc2 /t/metaget.t
parent6c4152b636ca7fffe2dd0eb1ddcb3141a303533a (diff)
downloadmemcached-e74f1cbadc995db0470767be03ad8832551222c7.tar.gz
meta: test coverage for cas fixes
Diffstat (limited to 't/metaget.t')
-rw-r--r--t/metaget.t35
1 files changed, 35 insertions, 0 deletions
diff --git a/t/metaget.t b/t/metaget.t
index d346ea7..1555193 100644
--- a/t/metaget.t
+++ b/t/metaget.t
@@ -148,6 +148,41 @@ my $sock = $server->sock;
}
{
+ diag "basic mset CAS";
+ my $key = "msetcas";
+ print $sock "ms $key 2\r\nbo\r\n";
+ like(scalar <$sock>, qr/^HD/, "set test key");
+
+ my $res = mget($sock, $key, 'c');
+ ok(get_flag($res, 'c'), "got a cas value back");
+
+ my $cas = get_flag($res, 'c');
+ my $badcas = $cas + 10;
+ print $sock "ms $key 2 c C$badcas\r\nio\r\n";
+ like(scalar <$sock>, qr/^EX c0/, "zeroed out cas on return");
+
+ print $sock "ms $key 2 c C$cas\r\nio\r\n";
+ like(scalar <$sock>, qr/^HD c\d+/, "success on correct cas");
+}
+
+{
+ diag "mdelete with cas";
+ my $key = "mdeltest";
+ print $sock "ms $key 2\r\nzo\r\n";
+ like(scalar <$sock>, qr/^HD/, "set test key");
+
+ my $res = mget($sock, $key, 'c');
+ ok(get_flag($res, 'c'), "got a cas value back");
+
+ my $cas = get_flag($res, 'c');
+ my $badcas = $cas + 10;
+ print $sock "md $key C$badcas\r\n";
+ like(scalar <$sock>, qr/^EX/, "mdelete fails for wrong CAS");
+ print $sock "md $key C$cas\r\n";
+ like(scalar <$sock>, qr/^HD/, "mdeleted key");
+}
+
+{
diag "encoded binary keys";
# 44OG44K544OI is "tesuto" in katakana
my $tesuto = "44OG44K544OI";