X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fmem_functions.c;h=93722602a544aaf599f1e8a21649fed7040dc35e;hb=63f71170a4353e58f57f0572db83893cebc2ad91;hp=9b27a60ab415224b770b9134d0e08072bf964e64;hpb=50521589078b10acb7be711658754120be554852;p=awesomized%2Flibmemcached diff --git a/tests/mem_functions.c b/tests/mem_functions.c index 9b27a60a..93722602 100644 --- a/tests/mem_functions.c +++ b/tests/mem_functions.c @@ -35,6 +35,7 @@ #include #include "tests/parser.h" +#include "tests/string.h" #include "tests/replication.h" #include "tests/basic.h" #include "tests/error_conditions.h" @@ -775,8 +776,8 @@ static memcached_return_t server_function(const memcached_st *ptr, static test_return_t memcached_server_cursor_test(memcached_st *memc) { - char context[8]; - strcpy(context, "foo bad"); + char context[10]; + strncpy(context, "foo bad", sizeof(context)); memcached_server_fn callbacks[1]; callbacks[0]= server_function; @@ -845,7 +846,7 @@ static test_return_t bad_key_test(memcached_st *memc) rc= memcached_callback_set(memc_clone, MEMCACHED_CALLBACK_PREFIX_KEY, NULL); test_true(rc == MEMCACHED_SUCCESS); - char *longkey= malloc(max_keylen + 1); + char *longkey= (char *)malloc(max_keylen + 1); if (longkey != NULL) { memset(longkey, 'a', max_keylen + 1); @@ -3229,118 +3230,6 @@ static test_return_t result_alloc(memcached_st *memc) return TEST_SUCCESS; } -static test_return_t string_static_null(memcached_st *memc) -{ - memcached_string_st string; - memcached_string_st *string_ptr; - - string_ptr= memcached_string_create(memc, &string, 0); - test_true(string.options.is_initialized == true); - test_true(string_ptr); - - /* The following two better be the same! */ - test_true(memcached_is_allocated(string_ptr) == false); - test_true(memcached_is_allocated(&string) == false); - test_true(&string == string_ptr); - - test_true(string.options.is_initialized == true); - test_true(memcached_is_initialized(&string) == true); - memcached_string_free(&string); - test_true(memcached_is_initialized(&string) == false); - - return TEST_SUCCESS; -} - -static test_return_t string_alloc_null(memcached_st *memc) -{ - memcached_string_st *string; - - string= memcached_string_create(memc, NULL, 0); - test_true(string); - test_true(memcached_is_allocated(string) == true); - test_true(memcached_is_initialized(string) == true); - memcached_string_free(string); - - return TEST_SUCCESS; -} - -static test_return_t string_alloc_with_size(memcached_st *memc) -{ - memcached_string_st *string; - - string= memcached_string_create(memc, NULL, 1024); - test_true(string); - test_true(memcached_is_allocated(string) == true); - test_true(memcached_is_initialized(string) == true); - memcached_string_free(string); - - return TEST_SUCCESS; -} - -static test_return_t string_alloc_with_size_toobig(memcached_st *memc) -{ - memcached_string_st *string; - - string= memcached_string_create(memc, NULL, SIZE_MAX); - test_true(string == NULL); - - return TEST_SUCCESS; -} - -static test_return_t string_alloc_append(memcached_st *memc) -{ - unsigned int x; - char buffer[SMALL_STRING_LEN]; - memcached_string_st *string; - - /* Ring the bell! */ - memset(buffer, 6, SMALL_STRING_LEN); - - string= memcached_string_create(memc, NULL, 100); - test_true(string); - test_true(memcached_is_allocated(string) == true); - test_true(memcached_is_initialized(string) == true); - - for (x= 0; x < 1024; x++) - { - memcached_return_t rc; - rc= memcached_string_append(string, buffer, SMALL_STRING_LEN); - test_true(rc == MEMCACHED_SUCCESS); - } - test_true(memcached_is_allocated(string) == true); - memcached_string_free(string); - - return TEST_SUCCESS; -} - -static test_return_t string_alloc_append_toobig(memcached_st *memc) -{ - memcached_return_t rc; - unsigned int x; - char buffer[SMALL_STRING_LEN]; - memcached_string_st *string; - - /* Ring the bell! */ - memset(buffer, 6, SMALL_STRING_LEN); - - string= memcached_string_create(memc, NULL, 100); - test_true(string); - test_true(memcached_is_allocated(string) == true); - test_true(memcached_is_initialized(string) == true); - - for (x= 0; x < 1024; x++) - { - rc= memcached_string_append(string, buffer, SMALL_STRING_LEN); - test_true(rc == MEMCACHED_SUCCESS); - } - rc= memcached_string_append(string, buffer, SIZE_MAX); - test_true(rc == MEMCACHED_MEMORY_ALLOCATION_FAILURE); - test_true(memcached_is_allocated(string) == true); - memcached_string_free(string); - - return TEST_SUCCESS; -} - static test_return_t cleanup_pairs(memcached_st *memc) { (void)memc; @@ -3996,13 +3885,13 @@ static test_return_t set_prefix(memcached_st *memc) /* Test a long key for failure */ /* TODO, extend test to determine based on setting, what result should be */ - strcpy(long_key, "Thisismorethentheallottednumberofcharacters"); + strncpy(long_key, "Thisismorethentheallottednumberofcharacters", sizeof(long_key)); rc= memcached_callback_set(memc, MEMCACHED_CALLBACK_PREFIX_KEY, long_key); //test_true(rc == MEMCACHED_BAD_KEY_PROVIDED); test_true(rc == MEMCACHED_SUCCESS); /* Now test a key with spaces (which will fail from long key, since bad key is not set) */ - strcpy(long_key, "This is more then the allotted number of characters"); + strncpy(long_key, "This is more then the allotted number of characters", sizeof(long_key)); rc= memcached_callback_set(memc, MEMCACHED_CALLBACK_PREFIX_KEY, long_key); test_true(rc == MEMCACHED_BAD_KEY_PROVIDED); @@ -4010,7 +3899,7 @@ static test_return_t set_prefix(memcached_st *memc) rc= memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_VERIFY_KEY, 1); test_true(rc == MEMCACHED_SUCCESS); - strcpy(long_key, "dog cat"); + strncpy(long_key, "dog cat", sizeof(long_key)); rc= memcached_callback_set(memc, MEMCACHED_CALLBACK_PREFIX_KEY, long_key); test_true(rc == MEMCACHED_BAD_KEY_PROVIDED); } @@ -5709,9 +5598,11 @@ static test_return_t wrong_failure_counter_two_test(memcached_st *memc) /* put failure limit to 1 */ rc= memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT, 1); assert(rc == MEMCACHED_SUCCESS); + /* Put a retry timeout to effectively activate failure_limit effect */ rc= memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_RETRY_TIMEOUT, 1); assert(rc == MEMCACHED_SUCCESS); + /* change behavior that triggers memcached_quit()*/ rc= memcached_behavior_set(memc_clone, MEMCACHED_BEHAVIOR_TCP_NODELAY, 1); assert(rc == MEMCACHED_SUCCESS); @@ -6136,6 +6027,7 @@ test_st string_tests[] ={ {"string alloc with malloc failure", 0, (test_callback_fn)string_alloc_with_size_toobig }, {"string append", 0, (test_callback_fn)string_alloc_append }, {"string append failure (too big)", 0, (test_callback_fn)string_alloc_append_toobig }, + {"string_alloc_append_multiple", 0, (test_callback_fn)string_alloc_append_multiple }, {0, 0, (test_callback_fn)0} };