return 0;
}
+uint8_t version_string_test(memcached_st *memc)
+{
+ const char *version_string;
+
+ version_string= memcached_lib_version();
+
+ assert(!strcmp(version_string, LIBMEMCACHED_VERSION_STRING));
+
+ return 0;
+}
+
uint8_t get_stats(memcached_st *memc)
{
unsigned int x;
/* Test Clone Callback */
{
- clone_func temp_function;
+ memcached_clone_func temp_function;
memcached_return rc;
rc= memcached_callback_set(memc, MEMCACHED_CALLBACK_CLONE_FUNCTION, clone_test_callback);
assert(rc == MEMCACHED_SUCCESS);
- temp_function= (clone_func)memcached_callback_get(memc, MEMCACHED_CALLBACK_CLONE_FUNCTION, &rc);
+ temp_function= (memcached_clone_func)memcached_callback_get(memc, MEMCACHED_CALLBACK_CLONE_FUNCTION, &rc);
assert(temp_function == clone_test_callback);
}
/* Test Cleanup Callback */
{
- cleanup_func temp_function;
+ memcached_cleanup_func temp_function;
memcached_return rc;
rc= memcached_callback_set(memc, MEMCACHED_CALLBACK_CLONE_FUNCTION, cleanup_test_callback);
assert(rc == MEMCACHED_SUCCESS);
- temp_function= (cleanup_func)memcached_callback_get(memc, MEMCACHED_CALLBACK_CLONE_FUNCTION, &rc);
+ temp_function= (memcached_cleanup_func)memcached_callback_get(memc, MEMCACHED_CALLBACK_CLONE_FUNCTION, &rc);
assert(temp_function == cleanup_test_callback);
}
return 0;
}
+/*
+ Bug found where incr was not returning MEMCACHED_NOTFOUND when object did not exist.
+*/
+uint8_t user_supplied_bug12(memcached_st *memc)
+{
+ memcached_return rc;
+ uint32_t flags;
+ size_t value_length;
+ char *value;
+ uint64_t number_value;
+
+ value= memcached_get(memc, "autoincrement", strlen("autoincrement"),
+ &value_length, &flags, &rc);
+ assert(value == NULL);
+ assert(rc == MEMCACHED_NOTFOUND);
+
+ rc= memcached_increment(memc, "autoincrement", strlen("autoincrement"),
+ 1, &number_value);
+
+ assert(value == NULL);
+ assert(rc == MEMCACHED_NOTFOUND);
+
+ rc= memcached_set(memc, "autoincrement", strlen("autoincrement"), "1", 1, 0, 0);
+
+ value= memcached_get(memc, "autoincrement", strlen("autoincrement"),
+ &value_length, &flags, &rc);
+ assert(value);
+ assert(rc == MEMCACHED_SUCCESS);
+ free(value);
+
+ rc= memcached_increment(memc, "autoincrement", strlen("autoincrement"),
+ 1, &number_value);
+ assert(number_value == 2);
+ assert(rc == MEMCACHED_SUCCESS);
+
+ return 0;
+}
+
uint8_t result_static(memcached_st *memc)
{
memcached_result_st result;
return MEMCACHED_SUCCESS;
}
+
void my_free(memcached_st *ptr, void *mem)
{
free(mem);
rc= memcached_callback_set(memc, MEMCACHED_CALLBACK_MALLOC_FUNCTION, &my_malloc);
assert(rc == MEMCACHED_SUCCESS);
- test_ptr= (memcached_malloc_function)memcached_callback_get(memc, MEMCACHED_CALLBACK_USER_DATA, &rc);
- assert(test_ptr == (memcached_malloc_function)my_malloc);
+ test_ptr= (memcached_malloc_function)memcached_callback_get(memc, MEMCACHED_CALLBACK_MALLOC_FUNCTION, &rc);
+ assert(rc == MEMCACHED_SUCCESS);
+ assert(test_ptr == my_malloc);
}
{
rc= memcached_callback_set(memc, MEMCACHED_CALLBACK_REALLOC_FUNCTION, &my_realloc);
assert(rc == MEMCACHED_SUCCESS);
- test_ptr= (memcached_realloc_function)memcached_callback_get(memc, MEMCACHED_CALLBACK_USER_DATA, &rc);
+ test_ptr= (memcached_realloc_function)memcached_callback_get(memc, MEMCACHED_CALLBACK_REALLOC_FUNCTION, &rc);
+ assert(rc == MEMCACHED_SUCCESS);
assert(test_ptr == my_realloc);
}
rc= memcached_callback_set(memc, MEMCACHED_CALLBACK_FREE_FUNCTION, my_free);
assert(rc == MEMCACHED_SUCCESS);
- test_ptr= (memcached_free_function)memcached_callback_get(memc, MEMCACHED_CALLBACK_USER_DATA, &rc);
+ test_ptr= (memcached_free_function)memcached_callback_get(memc, MEMCACHED_CALLBACK_FREE_FUNCTION, &rc);
+ assert(rc == MEMCACHED_SUCCESS);
assert(test_ptr == my_free);
}
{"get_stats_keys", 0, get_stats_keys },
{"behavior_test", 0, get_stats_keys },
{"callback_test", 0, get_stats_keys },
+ {"version_string_test", 0, version_string_test},
{0, 0, 0}
};
{"user_supplied_bug9", 1, user_supplied_bug9 },
{"user_supplied_bug10", 1, user_supplied_bug10 },
{"user_supplied_bug11", 1, user_supplied_bug11 },
+ {"user_supplied_bug12", 1, user_supplied_bug12 },
{0, 0, 0}
};