1 #include "test/lib/common.hpp"
2 #include "test/lib/MemcachedCluster.hpp"
4 TEST_CASE("memcached_touch") {
5 auto test
= MemcachedCluster::mixed();
6 auto memc
= &test
.memc
;
8 auto proto
= GENERATE(as
<memcached_behavior_t
>{}, 0, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL
, MEMCACHED_BEHAVIOR_META_PROTOCOL
);
11 REQUIRE_SUCCESS(memcached_behavior_set(memc
, proto
, 1));
14 if (proto
== MEMCACHED_BEHAVIOR_META_PROTOCOL
&& !test
.isGEVersion(1, 6)) {
18 DYNAMIC_SECTION("touch " << (proto
? libmemcached_string_behavior(proto
) + sizeof("MEMCACHED_BEHAVIOR") : "ASCII_PROTOCOL")) {
19 REQUIRE_FALSE(memcached_get(memc
, S(__func__
), nullptr, nullptr, &rc
));
20 REQUIRE_RC(MEMCACHED_NOTFOUND
, rc
);
22 REQUIRE_SUCCESS(memcached_set(memc
, S(__func__
), S(__func__
), 2, 0));
24 Malloced
val(memcached_get(memc
, S(__func__
), nullptr, nullptr, &rc
));
28 REQUIRE_SUCCESS(memcached_touch(memc
, S(__func__
), 60));
29 val
= memcached_get(memc
, S(__func__
), nullptr, nullptr, &rc
);
33 REQUIRE_SUCCESS(memcached_touch(memc
, S(__func__
), time(nullptr) - 2));
34 val
= memcached_get(memc
, S(__func__
), nullptr, nullptr, &rc
);
35 REQUIRE_RC(MEMCACHED_NOTFOUND
, rc
);
39 DYNAMIC_SECTION("touch_by_key " << (proto
? libmemcached_string_behavior(proto
) + sizeof("MEMCACHED_BEHAVIOR") : "ASCII_PROTOCOL")) {
40 REQUIRE_RC(MEMCACHED_NOTFOUND
, memcached_touch_by_key(memc
, S(__func__
), S(__func__
), 60));
41 REQUIRE_SUCCESS(memcached_set_by_key(memc
, S(__func__
), S(__func__
), S(__func__
), 2, 0));
43 Malloced
val(memcached_get_by_key(memc
, S(__func__
), S(__func__
), nullptr, nullptr, &rc
));
47 REQUIRE_SUCCESS(memcached_touch_by_key(memc
, S(__func__
), S(__func__
), time(nullptr) - 2));
48 val
= memcached_get_by_key(memc
, S(__func__
), S(__func__
), nullptr, nullptr, &rc
);
49 REQUIRE_RC(MEMCACHED_NOTFOUND
, rc
);
52 REQUIRE_RC(MEMCACHED_NOTFOUND
, memcached_touch_by_key(memc
, S(__func__
), S(__func__
), 60));