Merge pull request #140 from hussainnaqvee/patch-1
[awesomized/libmemcached] / test / tests / memcached / regression / gh-php-memcached_0531.cpp
1 #include "test/lib/common.hpp"
2 #include "test/lib/MemcachedCluster.hpp"
3
4 TEST_CASE("memcached_regression_gh-php-memcached_0531") {
5 auto test = MemcachedCluster{Cluster{Server{MEMCACHED_BINARY, {"-p", random_socket_or_port_string("-p")}}, 1}};
6 auto memc = &test.memc;
7 auto nonblock = GENERATE(0, 1);
8
9 INFO("nonblock=" << nonblock);
10
11 REQUIRE_SUCCESS(memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_NO_BLOCK, nonblock));
12
13 REQUIRE_SUCCESS(memcached_set(memc, S("first"), S("first"), 0, 0));
14 REQUIRE_SUCCESS(memcached_set(memc, S("second"), S("second"), 0, 0));
15
16 REQUIRE_SUCCESS(memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_POLL_TIMEOUT, 0));
17
18 memcached_return_t rc;
19 size_t len;
20 Malloced value1(memcached_get(memc, S("first"), &len, nullptr, &rc));
21 REQUIRE_RC(MEMCACHED_TIMEOUT, rc);
22 REQUIRE_FALSE(*value1);
23
24 REQUIRE_SUCCESS(memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_POLL_TIMEOUT, 100));
25
26 Malloced value2(memcached_get(memc, S("second"), &len, nullptr, &rc));
27 REQUIRE_SUCCESS(rc);
28 REQUIRE(string(*value2) == string("second"));
29 }