X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Flibmemcached-1.0%2Fmem_functions.cc;h=9c6ab3deb2bbd1d3f762a53f706417f54f57428a;hb=e0165c033349179841bd1658f4068a9e4c075f66;hp=6e6f4a7bce9e45d638c8c486de3e78281f9b388d;hpb=0e40facad567ea11474b62f597c34faeea5c86fe;p=awesomized%2Flibmemcached diff --git a/tests/libmemcached-1.0/mem_functions.cc b/tests/libmemcached-1.0/mem_functions.cc index 6e6f4a7b..9c6ab3de 100644 --- a/tests/libmemcached-1.0/mem_functions.cc +++ b/tests/libmemcached-1.0/mem_functions.cc @@ -412,6 +412,7 @@ test_return_t clone_test(memcached_st *memc) test_true(memc_clone->retry_timeout == memc->retry_timeout); test_true(memc_clone->send_size == memc->send_size); test_true(memc_clone->server_failure_limit == memc->server_failure_limit); + test_true(memc_clone->server_timeout_limit == memc->server_timeout_limit); test_true(memc_clone->snd_timeout == memc->snd_timeout); test_true(memc_clone->user_data == memc->user_data); @@ -465,7 +466,7 @@ test_return_t libmemcached_string_behavior_test(memcached_st *) { test_true(libmemcached_string_behavior(memcached_behavior_t(x))); } - test_compare(37, int(MEMCACHED_BEHAVIOR_MAX)); + test_compare(38, int(MEMCACHED_BEHAVIOR_MAX)); return TEST_SUCCESS; } @@ -495,7 +496,7 @@ test_return_t memcached_return_t_TEST(memcached_st *memc) 4159057246U, 3425930182U, 2593724503U, 1868899624U, 1769812374U, 2302537950U, 1110330676U, 3365377466U, 1336171666U, 3021258493U, 2334992265U, 3861994737U, - 3582734124U, 3365377466U }; + 3582734124U, 3889811103, 3365377466U }; // You have updated the memcache_error messages but not updated docs/tests. for (int rc= int(MEMCACHED_SUCCESS); rc < int(MEMCACHED_MAXIMUM_RETURN); ++rc) @@ -511,7 +512,7 @@ test_return_t memcached_return_t_TEST(memcached_st *memc) } test_compare(values[rc], hash_val); } - test_compare(49, int(MEMCACHED_MAXIMUM_RETURN)); + test_compare(50, int(MEMCACHED_MAXIMUM_RETURN)); return TEST_SUCCESS; } @@ -716,7 +717,7 @@ test_return_t cas_test(memcached_st *memc) test_compare(MEMCACHED_SUCCESS, memcached_flush(memc, 0)); - test_skip(true, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SUPPORT_CAS, true)); + test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SUPPORT_CAS, true)); test_compare(MEMCACHED_SUCCESS, memcached_set(memc, @@ -993,6 +994,7 @@ test_return_t bad_key_test(memcached_st *memc) test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_VERIFY_KEY, true)); test_compare(query_id, memcached_query_id(memc_clone)); // We should not increase the query_id for memcached_behavior_set() + ASSERT_TRUE(memcached_behavior_get(memc_clone, MEMCACHED_BEHAVIOR_VERIFY_KEY)); /* All keys are valid in the binary protocol (except for length) */ if (memcached_behavior_get(memc_clone, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL) == false) @@ -1765,7 +1767,7 @@ test_return_t mget_execute(memcached_st *original_memc) keys.key_at(x), keys.length_at(x), blob, sizeof(blob), 0, 0); - test_true(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED); + ASSERT_TRUE_(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED, "Returned %s", memcached_strerror(NULL, rc)); test_compare(query_id +1, memcached_query_id(memc)); } @@ -2496,14 +2498,15 @@ test_return_t user_supplied_bug10(memcached_st *memc) */ test_return_t user_supplied_bug11(memcached_st *memc) { - memcached_st *mclone= memcached_clone(NULL, memc); - - memcached_behavior_set(mclone, MEMCACHED_BEHAVIOR_NO_BLOCK, true); - memcached_behavior_set(mclone, MEMCACHED_BEHAVIOR_TCP_NODELAY, true); - memcached_behavior_set(mclone, MEMCACHED_BEHAVIOR_POLL_TIMEOUT, size_t(-1)); + (void)memc; +#ifndef __APPLE__ + test::Memc mclone(memc); - test_compare(-1, int32_t(memcached_behavior_get(mclone, MEMCACHED_BEHAVIOR_POLL_TIMEOUT))); + memcached_behavior_set(&mclone, MEMCACHED_BEHAVIOR_NO_BLOCK, true); + memcached_behavior_set(&mclone, MEMCACHED_BEHAVIOR_TCP_NODELAY, true); + memcached_behavior_set(&mclone, MEMCACHED_BEHAVIOR_POLL_TIMEOUT, size_t(-1)); + test_compare(-1, int32_t(memcached_behavior_get(&mclone, MEMCACHED_BEHAVIOR_POLL_TIMEOUT))); libtest::vchar_t value; value.reserve(512); @@ -2514,11 +2517,11 @@ test_return_t user_supplied_bug11(memcached_st *memc) for (unsigned int x= 1; x <= 100000; ++x) { - memcached_return_t rc= memcached_set(mclone, test_literal_param("foo"), &value[0], value.size(), 0, 0); + memcached_return_t rc= memcached_set(&mclone, test_literal_param("foo"), &value[0], value.size(), 0, 0); (void)rc; } - memcached_free(mclone); +#endif return TEST_SUCCESS; } @@ -2620,7 +2623,7 @@ test_return_t user_supplied_bug14(memcached_st *memc) memcached_return_t rc= memcached_set(memc, test_literal_param("foo"), &value[0], current_length, (time_t)0, (uint32_t)0); - test_true(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED); + ASSERT_TRUE_(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED, "Instead got %s", memcached_strerror(NULL, rc)); size_t string_length; uint32_t flags; @@ -3081,7 +3084,7 @@ test_return_t selection_of_namespace_tests(memcached_st *memc) const char *key= "mine"; char *value; - /* Make sure be default none exists */ + /* Make sure by default none exists */ value= (char*)memcached_callback_get(memc, MEMCACHED_CALLBACK_NAMESPACE, &rc); test_null(value); test_compare_got(MEMCACHED_SUCCESS, rc, memcached_strerror(NULL, rc)); @@ -3092,7 +3095,7 @@ test_return_t selection_of_namespace_tests(memcached_st *memc) value= (char*)memcached_callback_get(memc, MEMCACHED_CALLBACK_NAMESPACE, &rc); test_true(value); - test_memcmp(value, key, 4); + test_memcmp(value, key, strlen(key)); test_compare_got(MEMCACHED_SUCCESS, rc, memcached_strerror(NULL, rc)); /* Test that we can turn it off */ @@ -3110,7 +3113,7 @@ test_return_t selection_of_namespace_tests(memcached_st *memc) value= (char *)memcached_callback_get(memc, MEMCACHED_CALLBACK_NAMESPACE, &rc); test_true(value); test_compare_got(MEMCACHED_SUCCESS, rc, memcached_strerror(NULL, rc)); - test_memcmp(value, key, 4); + test_memcmp(value, key, strlen(key)); /* Set to Zero, and then Set to something too large */ { @@ -3120,9 +3123,7 @@ test_return_t selection_of_namespace_tests(memcached_st *memc) test_compare(MEMCACHED_SUCCESS, memcached_callback_set(memc, MEMCACHED_CALLBACK_NAMESPACE, NULL)); - value= (char*)memcached_callback_get(memc, MEMCACHED_CALLBACK_NAMESPACE, &rc); - test_null(value); - test_compare(MEMCACHED_SUCCESS, rc); + ASSERT_NULL_(memcached_callback_get(memc, MEMCACHED_CALLBACK_NAMESPACE, &rc), "Setting namespace to NULL did not work"); /* Test a long key for failure */ /* TODO, extend test to determine based on setting, what result should be */ @@ -3150,11 +3151,10 @@ test_return_t set_namespace(memcached_st *memc) { memcached_return_t rc; const char *key= "mine"; - char *value; // Make sure we default to a null namespace - value= (char*)memcached_callback_get(memc, MEMCACHED_CALLBACK_NAMESPACE, &rc); - test_null(value); + char* value= (char*)memcached_callback_get(memc, MEMCACHED_CALLBACK_NAMESPACE, &rc); + ASSERT_NULL_(value, "memc had a value for namespace when none should exist"); test_compare_got(MEMCACHED_SUCCESS, rc, memcached_strerror(NULL, rc)); /* Test a clean set */ @@ -3162,8 +3162,8 @@ test_return_t set_namespace(memcached_st *memc) memcached_callback_set(memc, MEMCACHED_CALLBACK_NAMESPACE, (void *)key)); value= (char*)memcached_callback_get(memc, MEMCACHED_CALLBACK_NAMESPACE, &rc); - test_true(value); - test_memcmp(value, key, 4); + ASSERT_TRUE(value); + test_memcmp(value, key, strlen(key)); test_compare_got(MEMCACHED_SUCCESS, rc, memcached_strerror(NULL, rc)); return TEST_SUCCESS; @@ -4166,7 +4166,7 @@ test_return_t regression_bug_442914(memcached_st *original_memc) for (uint32_t x= 0; x < 250; ++x) { - char key[250]; + char key[251]; size_t len= (size_t)snprintf(key, sizeof(key), "%0250u", x); memcached_return_t rc= memcached_delete(memc, key, len, 0); char error_buffer[2048]= { 0 }; @@ -4176,7 +4176,7 @@ test_return_t regression_bug_442914(memcached_st *original_memc) // Delete, and then delete again to look for not found { - char key[250]; + char key[251]; size_t len= snprintf(key, sizeof(key), "%037u", 251U); memcached_return_t rc= memcached_delete(memc, key, len, 0); test_true(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED); @@ -4560,7 +4560,7 @@ test_return_t wrong_failure_counter_two_test(memcached_st *memc) /* Put a retry timeout to effectively activate failure_limit effect */ test_compare(MEMCACHED_SUCCESS, - memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_RETRY_TIMEOUT, true)); + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_RETRY_TIMEOUT, 1)); /* change behavior that triggers memcached_quit()*/ test_compare(MEMCACHED_SUCCESS, @@ -4842,6 +4842,32 @@ test_return_t regression_bug_490520(memcached_st *original_memc) return TEST_SUCCESS; } +test_return_t regression_bug_1251482(memcached_st*) +{ + test::Memc memc("--server=localhost:5"); + + memcached_behavior_set(&memc, MEMCACHED_BEHAVIOR_RETRY_TIMEOUT, 0); + + for (size_t x= 0; x < 5; ++x) + { + size_t value_length; + memcached_return_t rc; + char *value= memcached_get(&memc, + test_literal_param(__func__), + &value_length, NULL, &rc); + + test_false(value); + test_compare(0LLU, value_length); + if (x) { + test_ne_compare(MEMCACHED_SUCCESS, rc); + } else { + test_compare(MEMCACHED_CONNECTION_FAILURE, rc); + } + } + + return TEST_SUCCESS; +} + test_return_t regression_1009493_TEST(memcached_st*) { memcached_st* memc= memcached_create(NULL); @@ -5057,8 +5083,11 @@ test_return_t kill_HUP_TEST(memcached_st *original_memc) test_literal_param(__func__), // Keys test_literal_param(__func__), // Values 0, 0); - test_compare(ret, memc); - test_compare(MEMCACHED_CONNECTION_FAILURE, memc); + if (ret == MEMCACHED_ERRNO) { + test_compare(EPIPE, memcached_last_error_errno(memc)); + } else { + test_compare(MEMCACHED_CONNECTION_FAILURE, ret); + } memcached_free(memc);