diff options
author | dormando <dormando@rydia.net> | 2021-12-15 19:03:07 -0800 |
---|---|---|
committer | dormando <dormando@rydia.net> | 2022-01-12 14:04:32 -0800 |
commit | e74f1cbadc995db0470767be03ad8832551222c7 (patch) | |
tree | 170b962836041597f20bd97f899cb0ad89f5ecc2 | |
parent | 6c4152b636ca7fffe2dd0eb1ddcb3141a303533a (diff) | |
download | memcached-e74f1cbadc995db0470767be03ad8832551222c7.tar.gz |
meta: test coverage for cas fixes
-rw-r--r-- | t/metaget.t | 35 |
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"; |