|
| 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 | +} |
0 commit comments