X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Flibmemcached-1.0%2Fmem_functions.cc;h=9140e72106ee967804ed86fe1cde8d177cd336dd;hb=56bc4a66fa7a42de8ff9b7220f263ef756202845;hp=3fcba9958fa3b0fc42c69f6671cad28310993977;hpb=e2ed4cd1b1dee672169e59a8b9b065ef88b15651;p=m6w6%2Flibmemcached diff --git a/tests/libmemcached-1.0/mem_functions.cc b/tests/libmemcached-1.0/mem_functions.cc index 3fcba995..9140e721 100644 --- a/tests/libmemcached-1.0/mem_functions.cc +++ b/tests/libmemcached-1.0/mem_functions.cc @@ -52,7 +52,6 @@ #include -#include #include #include #include @@ -193,16 +192,6 @@ private: std::vector _lengths; }; -static memcached_return_t return_value_based_on_buffering(memcached_st *memc) -{ - if (memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_BUFFER_REQUESTS)) - { - return MEMCACHED_BUFFERED; - } - - return MEMCACHED_SUCCESS; -} - static memcached_st * create_single_instance_memcached(const memcached_st *original_memc, const char *options) { /* @@ -290,7 +279,7 @@ static memcached_return_t server_display_function(const memcached_st *ptr, /* Do Nothing */ size_t bigger= *((size_t *)(context)); (void)ptr; - assert(bigger <= memcached_server_port(server)); + fatal_assert(bigger <= memcached_server_port(server)); *((size_t *)(context))= memcached_server_port(server); return MEMCACHED_SUCCESS; @@ -631,7 +620,7 @@ test_return_t set_test(memcached_st *memc) test_literal_param("foo"), test_literal_param("when we sanitize"), time_t(0), (uint32_t)0); - test_true_got(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED, memcached_strerror(NULL, rc)); + test_true_got(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED, memcached_last_error_message(memc)); return TEST_SUCCESS; } @@ -726,11 +715,12 @@ test_return_t memcached_mget_mixed_memcached_get_TEST(memcached_st *memc) iter != keys.end(); iter++) { - test_compare(MEMCACHED_SUCCESS, - memcached_set(memc, - (*iter), 36, - NULL, 0, - time_t(0), uint32_t(0))); + test_compare_hint(MEMCACHED_SUCCESS, + memcached_set(memc, + (*iter), 36, + NULL, 0, + time_t(0), uint32_t(0)), + memcached_last_error_message(memc)); } for (ptrdiff_t loop= 0; loop < 20; loop++) @@ -749,7 +739,7 @@ test_return_t memcached_mget_mixed_memcached_get_TEST(memcached_st *memc) { result_count++; } - test_compare(keys.size(), result_count); + test_true(keys.size() >= result_count); } else { @@ -958,28 +948,31 @@ test_return_t add_wrapper(memcached_st *memc) test_return_t replace_test(memcached_st *memc) { - test_compare(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param(__func__), - test_literal_param("when we sanitize"), - time_t(0), uint32_t(0))); + test_compare_hint(return_value_based_on_buffering(memc), + memcached_set(memc, + test_literal_param(__func__), + test_literal_param("when we sanitize"), + time_t(0), uint32_t(0)), + memcached_last_error_message(memc)); - test_compare(MEMCACHED_SUCCESS, - memcached_replace(memc, - test_literal_param(__func__), - test_literal_param("first we insert some data"), - time_t(0), uint32_t(0))); + test_compare_hint(MEMCACHED_SUCCESS, + memcached_replace(memc, + test_literal_param(__func__), + test_literal_param("first we insert some data"), + time_t(0), uint32_t(0)), + memcached_last_error_message(memc)); return TEST_SUCCESS; } test_return_t delete_test(memcached_st *memc) { - test_compare(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param(__func__), - test_literal_param("when we sanitize"), - time_t(0), uint32_t(0))); + test_compare_hint(return_value_based_on_buffering(memc), + memcached_set(memc, + test_literal_param(__func__), + test_literal_param("when we sanitize"), + time_t(0), uint32_t(0)), + memcached_last_error_message(memc)); test_compare_hint(return_value_based_on_buffering(memc), memcached_delete(memc, @@ -1186,71 +1179,16 @@ test_return_t read_through(memcached_st *memc) return TEST_SUCCESS; } -test_return_t get_test(memcached_st *memc) -{ - uint64_t query_id= memcached_query_id(memc); - memcached_return_t rc= memcached_delete(memc, - test_literal_param(__func__), - time_t(0)); - test_true_hint(rc == MEMCACHED_BUFFERED or rc == MEMCACHED_NOTFOUND, memcached_last_error_message(memc)); - test_compare(query_id +1, memcached_query_id(memc)); - - size_t string_length; - uint32_t flags; - char *string= memcached_get(memc, - test_literal_param(__func__), - &string_length, &flags, &rc); - - test_compare_got(MEMCACHED_NOTFOUND, rc, memcached_last_error_message(memc)); - test_false(string_length); - test_false(string); - - return TEST_SUCCESS; -} - -test_return_t get_test2(memcached_st *memc) -{ - const char *value= "when we sanitize"; - - uint64_t query_id= memcached_query_id(memc); - test_compare(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param(__func__), - value, strlen(value), - time_t(0), uint32_t(0))); - test_compare(query_id +1, memcached_query_id(memc)); - - query_id= memcached_query_id(memc); - test_true(query_id); - - uint32_t flags; - size_t string_length; - memcached_return_t rc; - char *string= memcached_get(memc, - test_literal_param(__func__), - &string_length, &flags, &rc); - test_compare(query_id +1, memcached_query_id(memc)); - - test_compare_got(MEMCACHED_SUCCESS, rc, memcached_strerror(NULL, rc)); - test_compare_got(MEMCACHED_SUCCESS, memcached_last_error(memc), memcached_last_error_message(memc)); - test_true(string); - test_compare(strlen(value), string_length); - test_memcmp(string, value, string_length); - - free(string); - - return TEST_SUCCESS; -} - test_return_t set_test2(memcached_st *memc) { for (uint32_t x= 0; x < 10; x++) { - test_compare(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param("foo"), - test_literal_param("train in the brain"), - time_t(0), uint32_t(0))); + test_compare_hint(return_value_based_on_buffering(memc), + memcached_set(memc, + test_literal_param("foo"), + test_literal_param("train in the brain"), + time_t(0), uint32_t(0)), + memcached_last_error_message(memc)); } return TEST_SUCCESS; @@ -1286,126 +1224,6 @@ test_return_t set_test3(memcached_st *memc) return TEST_SUCCESS; } -test_return_t get_test3(memcached_st *memc) -{ - size_t value_length= 8191; - - libtest::vchar_t value; - value.reserve(value_length); - for (uint32_t x= 0; x < value_length; x++) - { - value.push_back(char(x % 127)); - } - - test_compare_hint(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param(__func__), - &value[0], value.size(), - time_t(0), uint32_t(0)), - memcached_last_error_message(memc)); - - size_t string_length; - uint32_t flags; - memcached_return_t rc; - char *string= memcached_get(memc, - test_literal_param(__func__), - &string_length, &flags, &rc); - - test_compare(MEMCACHED_SUCCESS, rc); - test_true(string); - test_compare(value.size(), string_length); - test_memcmp(string, &value[0], string_length); - - free(string); - - return TEST_SUCCESS; -} - -test_return_t get_test4(memcached_st *memc) -{ - size_t value_length= 8191; - - libtest::vchar_t value; - value.reserve(value_length); - for (uint32_t x= 0; x < value_length; x++) - { - value.push_back(char(x % 127)); - } - - test_compare_hint(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param(__func__), - &value[0], value.size(), - time_t(0), uint32_t(0)), - memcached_last_error_message(memc)); - - for (uint32_t x= 0; x < 10; x++) - { - uint32_t flags; - size_t string_length; - memcached_return_t rc; - char *string= memcached_get(memc, - test_literal_param(__func__), - &string_length, &flags, &rc); - - test_compare(MEMCACHED_SUCCESS, rc); - test_true(string); - test_compare(value.size(), string_length); - test_memcmp(string, &value[0], string_length); - free(string); - } - - return TEST_SUCCESS; -} - -/* - * This test verifies that memcached_read_one_response doesn't try to - * dereference a NIL-pointer if you issue a multi-get and don't read out all - * responses before you execute a storage command. - */ -test_return_t get_test5(memcached_st *memc) -{ - /* - ** Request the same key twice, to ensure that we hash to the same server - ** (so that we have multiple response values queued up) ;-) - */ - const char *keys[]= { "key", "key" }; - size_t lengths[]= { 3, 3 }; - uint32_t flags; - size_t rlen; - - test_compare_hint(return_value_based_on_buffering(memc), - memcached_set(memc, keys[0], lengths[0], - keys[0], lengths[0], - time_t(0), uint32_t(0)), - memcached_last_error_message(memc)); - test_compare(MEMCACHED_SUCCESS, memcached_mget(memc, keys, lengths, test_array_length(keys))); - - memcached_result_st results_obj; - memcached_result_st *results= memcached_result_create(memc, &results_obj); - test_true(results); - - memcached_return_t rc; - results= memcached_fetch_result(memc, &results_obj, &rc); - test_true(results); - - memcached_result_free(&results_obj); - - /* Don't read out the second result, but issue a set instead.. */ - test_compare(MEMCACHED_SUCCESS, memcached_set(memc, keys[0], lengths[0], keys[0], lengths[0], 0, 0)); - - char *val= memcached_get_by_key(memc, keys[0], lengths[0], "yek", 3, - &rlen, &flags, &rc); - test_false(val); - test_compare(MEMCACHED_NOTFOUND, rc); - val= memcached_get(memc, keys[0], lengths[0], &rlen, &flags, &rc); - test_true(val); - test_compare(MEMCACHED_SUCCESS, rc); - free(val); - - return TEST_SUCCESS; -} - test_return_t mget_end(memcached_st *memc) { const char *keys[]= { "foo", "foo2" }; @@ -1725,18 +1543,20 @@ test_return_t quit_test(memcached_st *memc) { const char *value= "sanford and sun"; - test_compare(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param(__func__), - value, strlen(value), - (time_t)10, (uint32_t)3)); + test_compare_hint(return_value_based_on_buffering(memc), + memcached_set(memc, + test_literal_param(__func__), + value, strlen(value), + (time_t)10, (uint32_t)3), + memcached_last_error_message(memc)); memcached_quit(memc); - test_compare(return_value_based_on_buffering(memc), - memcached_set(memc, - test_literal_param(__func__), - value, strlen(value), - (time_t)50, (uint32_t)9)); + test_compare_hint(return_value_based_on_buffering(memc), + memcached_set(memc, + test_literal_param(__func__), + value, strlen(value), + (time_t)50, (uint32_t)9), + memcached_last_error_message(memc)); return TEST_SUCCESS; } @@ -1949,7 +1769,7 @@ test_return_t mget_execute(memcached_st *original_memc) blob, sizeof(blob), 0, 0); test_true_got(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED, - memcached_strerror(NULL, rc)); + memcached_last_error_message(memc)); test_compare(query_id +1, memcached_query_id(memc)); } @@ -2884,7 +2704,7 @@ test_return_t user_supplied_bug20(memcached_st *memc) /* sighandler_t function that always asserts false */ static void fail(int) { - assert(0); + fatal_assert(0); } @@ -3484,7 +3304,12 @@ test_return_t noreply_test(memcached_st *memc) uint32_t flags; char* value=memcached_get(memc, key, strlen(key), &length, &flags, &ret); - test_true_got(ret == MEMCACHED_SUCCESS && value != NULL, memcached_strerror(NULL, ret)); + // For the moment we will just go to the next key + if (MEMCACHED_TIMEOUT == ret) + { + continue; + } + test_true_hint(ret == MEMCACHED_SUCCESS and value != NULL, memcached_last_error_message(memc)); switch (count) { case 0: /* FALLTHROUGH */ @@ -4195,6 +4020,8 @@ test_return_t regression_bug_421108(memcached_st *memc) */ test_return_t regression_bug_442914(memcached_st *original_memc) { + test_skip(original_memc->servers[0].type, MEMCACHED_CONNECTION_TCP); + memcached_st* memc= create_single_instance_memcached(original_memc, "--NOREPLY --TCP-NODELAY"); for (uint32_t x= 0; x < 250; ++x) @@ -4974,7 +4801,7 @@ test_return_t kill_HUP_TEST(memcached_st *original_memc) 0, 0)); test_true_got(kill(pid, SIGHUP) == 0, strerror(errno)); - test_compare(MEMCACHED_SUCCESS, + test_compare(MEMCACHED_CONNECTION_FAILURE, memcached_set(memc, test_literal_param(__func__), // Keys test_literal_param(__func__), // Values