96244dfe2cf5d9c4efd56161549bb598e2cc1dea
1 #include "testing/lib/common.hpp"
2 #include "testing/lib/MemcachedCluster.hpp"
6 TEST_CASE("memcached append") {
7 pair
<string
, MemcachedCluster
> tests
[] = {
8 {"bin_mixed", MemcachedCluster::mixed()},
9 {"mixed", MemcachedCluster::mixed()}
12 tests
[0].second
.enableBinaryProto();
14 LOOPED_SECTION(tests
) {
15 auto memc
= &test
.memc
;
18 const char *values
[] = {
19 "one", "two", "three", "four"
22 for (auto key
: values
) {
25 REQUIRE_SUCCESS(memcached_set(memc
, S(key
), S(key
), 0, 0));
26 for (auto value
: values
) {
27 REQUIRE_SUCCESS(memcached_append(memc
, S(key
), S(value
), 0, 0));
31 memcached_return_t rc
;
34 Malloced
got(memcached_get(memc
, S(key
), &len
, &flags
, &rc
));
36 REQUIRE(strequal(cmp
, *got
));
42 vector
<uint32_t> store_list
{ 23, 56, 499, 98, 32847, 0 };
43 const size_t raw_len
= sizeof(decltype(store_list
)::value_type
) * store_list
.size();
44 const char *raw_ptr
= reinterpret_cast<char *>(store_list
.data());
46 REQUIRE_SUCCESS(memcached_set(memc
, S(__func__
), nullptr, 0, 0, 0));
48 for (auto item
: store_list
) {
49 auto val
= reinterpret_cast<char *>(&item
);
50 REQUIRE_SUCCESS(memcached_append(memc
, S(__func__
), val
, sizeof(item
), 0, 0));
53 memcached_return_t rc
;
56 Malloced
got(memcached_get(memc
, S(__func__
), &len
, &flags
, &rc
));
58 REQUIRE(len
== raw_len
);
59 REQUIRE(strequal({raw_ptr
, raw_len
}, string
{*got
, len
}));