1 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3 * Libmemcached Client and Server
5 * Copyright (C) 2012 Data Differential, http://datadifferential.com/
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
15 * * Redistributions in binary form must reproduce the above
16 * copyright notice, this list of conditions and the following disclaimer
17 * in the documentation and/or other materials provided with the
20 * * The names of its contributors may not be used to endorse or
21 * promote products derived from this software without specific prior
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40 #include "tests/libmemcached-1.0/memcached_get.h"
43 /* Clean the server before beginning testing */
45 {"util_version", true, (test_callback_fn
*)util_version_test
},
46 {"flush", false, (test_callback_fn
*)flush_test
},
47 {"init", false, (test_callback_fn
*)init_test
},
48 {"allocation", false, (test_callback_fn
*)allocation_test
},
49 {"server_list_null_test", false, (test_callback_fn
*)server_list_null_test
},
50 {"server_unsort", false, (test_callback_fn
*)server_unsort_test
},
51 {"server_sort", false, (test_callback_fn
*)server_sort_test
},
52 {"server_sort2", false, (test_callback_fn
*)server_sort2_test
},
53 {"memcached_server_remove", false, (test_callback_fn
*)memcached_server_remove_test
},
54 {"clone_test", false, (test_callback_fn
*)clone_test
},
55 {"connection_test", false, (test_callback_fn
*)connection_test
},
56 {"callback_test", false, (test_callback_fn
*)callback_test
},
57 {"userdata_test", false, (test_callback_fn
*)userdata_test
},
58 {"memcached_set()", false, (test_callback_fn
*)set_test
},
59 {"memcached_set() 2", false, (test_callback_fn
*)set_test2
},
60 {"memcached_set() 3", false, (test_callback_fn
*)set_test3
},
61 {"memcached_add(SUCCESS)", true, (test_callback_fn
*)memcached_add_SUCCESS_TEST
},
62 {"add", true, (test_callback_fn
*)add_test
},
63 {"memcached_fetch_result(MEMCACHED_NOTFOUND)", true, (test_callback_fn
*)memcached_fetch_result_NOT_FOUND
},
64 {"replace", true, (test_callback_fn
*)replace_test
},
65 {"delete", true, (test_callback_fn
*)delete_test
},
66 {"memcached_get()", true, (test_callback_fn
*)get_test
},
67 {"get2", false, (test_callback_fn
*)get_test2
},
68 {"get3", false, (test_callback_fn
*)get_test3
},
69 {"get4", false, (test_callback_fn
*)get_test4
},
70 {"partial mget", false, (test_callback_fn
*)get_test5
},
71 {"stats_servername", false, (test_callback_fn
*)stats_servername_test
},
72 {"increment", false, (test_callback_fn
*)increment_test
},
73 {"increment_with_initial", true, (test_callback_fn
*)increment_with_initial_test
},
74 {"decrement", false, (test_callback_fn
*)decrement_test
},
75 {"decrement_with_initial", true, (test_callback_fn
*)decrement_with_initial_test
},
76 {"increment_by_key", false, (test_callback_fn
*)increment_by_key_test
},
77 {"increment_with_initial_by_key", true, (test_callback_fn
*)increment_with_initial_by_key_test
},
78 {"decrement_by_key", false, (test_callback_fn
*)decrement_by_key_test
},
79 {"decrement_with_initial_by_key", true, (test_callback_fn
*)decrement_with_initial_by_key_test
},
80 {"binary_increment_with_prefix", true, (test_callback_fn
*)binary_increment_with_prefix_test
},
81 {"quit", false, (test_callback_fn
*)quit_test
},
82 {"mget", true, (test_callback_fn
*)mget_test
},
83 {"mget_result", true, (test_callback_fn
*)mget_result_test
},
84 {"mget_result_alloc", true, (test_callback_fn
*)mget_result_alloc_test
},
85 {"mget_result_function", true, (test_callback_fn
*)mget_result_function
},
86 {"mget_execute", true, (test_callback_fn
*)mget_execute
},
87 {"mget_end", false, (test_callback_fn
*)mget_end
},
88 {"get_stats", false, (test_callback_fn
*)get_stats
},
89 {"add_host_test", false, (test_callback_fn
*)add_host_test
},
90 {"add_host_test_1", false, (test_callback_fn
*)add_host_test1
},
91 {"get_stats_keys", false, (test_callback_fn
*)get_stats_keys
},
92 {"version_string_test", true, (test_callback_fn
*)version_string_test
},
93 {"memcached_mget() mixed memcached_get()", true, (test_callback_fn
*)memcached_mget_mixed_memcached_get_TEST
},
94 {"bad_key", true, (test_callback_fn
*)bad_key_test
},
95 {"memcached_server_cursor", true, (test_callback_fn
*)memcached_server_cursor_test
},
96 {"read_through", true, (test_callback_fn
*)read_through
},
97 {"delete_through", true, (test_callback_fn
*)test_MEMCACHED_CALLBACK_DELETE_TRIGGER
},
98 {"noreply", true, (test_callback_fn
*)noreply_test
},
99 {"analyzer", true, (test_callback_fn
*)analyzer_test
},
100 {"memcached_pool_st", true, (test_callback_fn
*)connection_pool_test
},
101 {"memcached_pool_st #2", true, (test_callback_fn
*)connection_pool2_test
},
103 {"memcached_pool_st #3", true, (test_callback_fn
*)connection_pool3_test
},
105 {"memcached_pool_test", true, (test_callback_fn
*)memcached_pool_test
},
106 {"test_get_last_disconnect", true, (test_callback_fn
*)test_get_last_disconnect
},
107 {"verbosity", true, (test_callback_fn
*)test_verbosity
},
108 {"memcached_stat_execute", true, (test_callback_fn
*)memcached_stat_execute_test
},
109 {"memcached_exist(MEMCACHED_NOTFOUND)", true, (test_callback_fn
*)memcached_exist_NOTFOUND
},
110 {"memcached_exist(MEMCACHED_SUCCESS)", true, (test_callback_fn
*)memcached_exist_SUCCESS
},
111 {"memcached_exist_by_key(MEMCACHED_NOTFOUND)", true, (test_callback_fn
*)memcached_exist_by_key_NOTFOUND
},
112 {"memcached_exist_by_key(MEMCACHED_SUCCESS)", true, (test_callback_fn
*)memcached_exist_by_key_SUCCESS
},
113 {"memcached_touch", 0, (test_callback_fn
*)test_memcached_touch
},
114 {"memcached_touch_with_prefix", 0, (test_callback_fn
*)test_memcached_touch_by_key
},
116 {"memcached_dump() no data", true, (test_callback_fn
*)memcached_dump_TEST
},
118 {"memcached_dump() with data", true, (test_callback_fn
*)memcached_dump_TEST2
},
122 test_st touch_tests
[] ={
123 {"memcached_touch", 0, (test_callback_fn
*)test_memcached_touch
},
124 {"memcached_touch_with_prefix", 0, (test_callback_fn
*)test_memcached_touch_by_key
},
128 test_st kill_TESTS
[] ={
129 {"kill(HUP)", 0, (test_callback_fn
*)kill_HUP_TEST
},
133 test_st memcached_stat_tests
[] ={
134 {"memcached_stat() INVALID ARG", 0, (test_callback_fn
*)memcached_stat_TEST
},
135 {"memcached_stat()", 0, (test_callback_fn
*)memcached_stat_TEST2
},
139 test_st behavior_tests
[] ={
140 {"libmemcached_string_behavior()", false, (test_callback_fn
*)libmemcached_string_behavior_test
},
141 {"libmemcached_string_distribution()", false, (test_callback_fn
*)libmemcached_string_distribution_test
},
142 {"behavior_test", false, (test_callback_fn
*)behavior_test
},
143 {"MEMCACHED_BEHAVIOR_CORK", false, (test_callback_fn
*)MEMCACHED_BEHAVIOR_CORK_test
},
144 {"MEMCACHED_BEHAVIOR_TCP_KEEPALIVE", false, (test_callback_fn
*)MEMCACHED_BEHAVIOR_TCP_KEEPALIVE_test
},
145 {"MEMCACHED_BEHAVIOR_TCP_KEEPIDLE", false, (test_callback_fn
*)MEMCACHED_BEHAVIOR_TCP_KEEPIDLE_test
},
146 {"MEMCACHED_BEHAVIOR_POLL_TIMEOUT", false, (test_callback_fn
*)MEMCACHED_BEHAVIOR_POLL_TIMEOUT_test
},
147 {"MEMCACHED_CALLBACK_DELETE_TRIGGER_and_MEMCACHED_BEHAVIOR_NOREPLY", false, (test_callback_fn
*)test_MEMCACHED_CALLBACK_DELETE_TRIGGER_and_MEMCACHED_BEHAVIOR_NOREPLY
},
151 test_st libmemcachedutil_tests
[] ={
152 {"libmemcached_util_ping()", true, (test_callback_fn
*)libmemcached_util_ping_TEST
},
153 {"libmemcached_util_getpid()", true, (test_callback_fn
*)getpid_test
},
154 {"libmemcached_util_getpid(MEMCACHED_CONNECTION_FAILURE)", true, (test_callback_fn
*)getpid_connection_failure_test
},
158 test_st basic_tests
[] ={
159 {"init", true, (test_callback_fn
*)basic_init_test
},
160 {"clone", true, (test_callback_fn
*)basic_clone_test
},
161 {"reset", true, (test_callback_fn
*)basic_reset_stack_test
},
162 {"reset heap", true, (test_callback_fn
*)basic_reset_heap_test
},
163 {"reset stack clone", true, (test_callback_fn
*)basic_reset_stack_clone_test
},
164 {"reset heap clone", true, (test_callback_fn
*)basic_reset_heap_clone_test
},
165 {"memcached_return_t", false, (test_callback_fn
*)memcached_return_t_TEST
},
169 test_st regression_binary_vs_block
[] ={
170 {"block add", true, (test_callback_fn
*)block_add_regression
},
171 {"binary add", true, (test_callback_fn
*)binary_add_regression
},
175 test_st async_tests
[] ={
176 {"add", true, (test_callback_fn
*)add_wrapper
},
180 test_st memcached_server_get_last_disconnect_tests
[] ={
181 {"memcached_server_get_last_disconnect()", false, (test_callback_fn
*)test_multiple_get_last_disconnect
},
182 {0, 0, (test_callback_fn
*)0}
186 test_st result_tests
[] ={
187 {"result static", false, (test_callback_fn
*)result_static
},
188 {"result alloc", false, (test_callback_fn
*)result_alloc
},
189 {0, 0, (test_callback_fn
*)0}
192 test_st version_1_2_3
[] ={
193 {"append", false, (test_callback_fn
*)append_test
},
194 {"prepend", false, (test_callback_fn
*)prepend_test
},
195 {"cas", false, (test_callback_fn
*)cas_test
},
196 {"cas2", false, (test_callback_fn
*)cas2_test
},
197 {"append_binary", false, (test_callback_fn
*)append_binary_test
},
198 {0, 0, (test_callback_fn
*)0}
201 test_st haldenbrand_TESTS
[] ={
202 {"memcached_set", false, (test_callback_fn
*)haldenbrand_TEST1
},
203 {"memcached_get()", false, (test_callback_fn
*)haldenbrand_TEST2
},
204 {"memcached_mget()", false, (test_callback_fn
*)haldenbrand_TEST3
},
205 {0, 0, (test_callback_fn
*)0}
208 test_st user_tests
[] ={
209 {"user_supplied_bug4", true, (test_callback_fn
*)user_supplied_bug4
},
210 {"user_supplied_bug5", true, (test_callback_fn
*)user_supplied_bug5
},
211 {"user_supplied_bug6", true, (test_callback_fn
*)user_supplied_bug6
},
212 {"user_supplied_bug7", true, (test_callback_fn
*)user_supplied_bug7
},
213 {"user_supplied_bug8", true, (test_callback_fn
*)user_supplied_bug8
},
214 {"user_supplied_bug9", true, (test_callback_fn
*)user_supplied_bug9
},
215 {"user_supplied_bug10", true, (test_callback_fn
*)user_supplied_bug10
},
216 {"user_supplied_bug11", true, (test_callback_fn
*)user_supplied_bug11
},
217 {"user_supplied_bug12", true, (test_callback_fn
*)user_supplied_bug12
},
218 {"user_supplied_bug13", true, (test_callback_fn
*)user_supplied_bug13
},
219 {"user_supplied_bug14", true, (test_callback_fn
*)user_supplied_bug14
},
220 {"user_supplied_bug15", true, (test_callback_fn
*)user_supplied_bug15
},
221 {"user_supplied_bug16", true, (test_callback_fn
*)user_supplied_bug16
},
222 #if !defined(__sun) && !defined(__OpenBSD__)
224 ** It seems to be something weird with the character sets..
225 ** value_fetch is unable to parse the value line (iscntrl "fails"), so I
226 ** guess I need to find out how this is supposed to work.. Perhaps I need
227 ** to run the test in a specific locale (I tried zh_CN.UTF-8 without success,
228 ** so just disable the code for now...).
230 {"user_supplied_bug17", true, (test_callback_fn
*)user_supplied_bug17
},
232 {"user_supplied_bug18", true, (test_callback_fn
*)user_supplied_bug18
},
233 {"user_supplied_bug19", true, (test_callback_fn
*)user_supplied_bug19
},
234 {"user_supplied_bug20", true, (test_callback_fn
*)user_supplied_bug20
},
235 {"user_supplied_bug21", true, (test_callback_fn
*)user_supplied_bug21
},
236 {"wrong_failure_counter_test", true, (test_callback_fn
*)wrong_failure_counter_test
},
237 {"wrong_failure_counter_two_test", true, (test_callback_fn
*)wrong_failure_counter_two_test
},
238 {0, 0, (test_callback_fn
*)0}
241 test_st replication_tests
[]= {
242 {"validate replication setup", true, (test_callback_fn
*)check_replication_sanity_TEST
},
243 {"set", true, (test_callback_fn
*)replication_set_test
},
244 {"get", false, (test_callback_fn
*)replication_get_test
},
245 {"mget", false, (test_callback_fn
*)replication_mget_test
},
246 {"delete", true, (test_callback_fn
*)replication_delete_test
},
247 {"rand_mget", false, (test_callback_fn
*)replication_randomize_mget_test
},
248 {"miss", false, (test_callback_fn
*)replication_miss_test
},
249 {"fail", false, (test_callback_fn
*)replication_randomize_mget_fail_test
},
250 {0, 0, (test_callback_fn
*)0}
254 * The following test suite is used to verify that we don't introduce
255 * regression bugs. If you want more information about the bug / test,
256 * you should look in the bug report at
257 * http://bugs.launchpad.net/libmemcached
259 test_st regression_tests
[]= {
260 {"lp:434484", true, (test_callback_fn
*)regression_bug_434484
},
261 {"lp:434843", true, (test_callback_fn
*)regression_bug_434843
},
262 {"lp:434843-buffered", true, (test_callback_fn
*)regression_bug_434843_buffered
},
263 {"lp:421108", true, (test_callback_fn
*)regression_bug_421108
},
264 {"lp:442914", true, (test_callback_fn
*)regression_bug_442914
},
265 {"lp:447342", true, (test_callback_fn
*)regression_bug_447342
},
266 {"lp:463297", true, (test_callback_fn
*)regression_bug_463297
},
267 {"lp:490486", true, (test_callback_fn
*)regression_bug_490486
},
268 {"lp:583031", true, (test_callback_fn
*)regression_bug_583031
},
269 {"lp:?", true, (test_callback_fn
*)regression_bug_
},
270 {"lp:728286", true, (test_callback_fn
*)regression_bug_728286
},
271 {"lp:581030", true, (test_callback_fn
*)regression_bug_581030
},
272 {"lp:71231153 connect()", true, (test_callback_fn
*)regression_bug_71231153_connect
},
273 {"lp:71231153 poll()", true, (test_callback_fn
*)regression_bug_71231153_poll
},
274 {"lp:655423", true, (test_callback_fn
*)regression_bug_655423
},
275 {"lp:490520", true, (test_callback_fn
*)regression_bug_490520
},
276 {"lp:854604", true, (test_callback_fn
*)regression_bug_854604
},
277 {"lp:996813", true, (test_callback_fn
*)regression_996813_TEST
},
278 {"lp:994772", true, (test_callback_fn
*)regression_994772_TEST
},
279 {"lp:1009493", true, (test_callback_fn
*)regression_1009493_TEST
},
280 {"lp:1021819", true, (test_callback_fn
*)regression_1021819_TEST
},
281 {"lp:1048945", true, (test_callback_fn
*)regression_1048945_TEST
},
282 {"lp:1067242", true, (test_callback_fn
*)regression_1067242_TEST
},
283 {0, false, (test_callback_fn
*)0}
286 test_st ketama_compatibility
[]= {
287 {"libmemcached", true, (test_callback_fn
*)ketama_compatibility_libmemcached
},
288 {"spymemcached", true, (test_callback_fn
*)ketama_compatibility_spymemcached
},
289 {0, 0, (test_callback_fn
*)0}
292 test_st generate_tests
[] ={
293 {"generate_data", true, (test_callback_fn
*)generate_data
},
294 {"get_read", false, (test_callback_fn
*)get_read
},
295 {"delete_generate", false, (test_callback_fn
*)delete_generate
},
296 {"cleanup", true, (test_callback_fn
*)cleanup_pairs
},
297 {0, 0, (test_callback_fn
*)0}
300 test_st generate_mget_TESTS
[] ={
301 {"generate_data", true, (test_callback_fn
*)generate_data
},
302 {"mget_read", false, (test_callback_fn
*)mget_read
},
303 {"mget_read_result", false, (test_callback_fn
*)mget_read_result
},
304 {"memcached_fetch_result() use internal result", false, (test_callback_fn
*)mget_read_internal_result
},
305 {"memcached_fetch_result() partial read", false, (test_callback_fn
*)mget_read_partial_result
},
306 {"mget_read_function", false, (test_callback_fn
*)mget_read_function
},
307 {"cleanup", true, (test_callback_fn
*)cleanup_pairs
},
308 {0, 0, (test_callback_fn
*)0}
311 test_st generate_large_TESTS
[] ={
312 {"generate_large_pairs", true, (test_callback_fn
*)generate_large_pairs
},
313 {"cleanup", true, (test_callback_fn
*)cleanup_pairs
},
314 {0, 0, (test_callback_fn
*)0}
317 test_st consistent_tests
[] ={
318 {"generate_data", true, (test_callback_fn
*)generate_data
},
319 {"get_read", 0, (test_callback_fn
*)get_read_count
},
320 {"cleanup", true, (test_callback_fn
*)cleanup_pairs
},
321 {0, 0, (test_callback_fn
*)0}
324 test_st consistent_weighted_tests
[] ={
325 {"generate_data", true, (test_callback_fn
*)generate_data_with_stats
},
326 {"get_read", false, (test_callback_fn
*)get_read_count
},
327 {"cleanup", true, (test_callback_fn
*)cleanup_pairs
},
328 {0, 0, (test_callback_fn
*)0}
331 test_st hsieh_availability
[] ={
332 {"hsieh_avaibility_test", false, (test_callback_fn
*)hsieh_avaibility_test
},
333 {0, 0, (test_callback_fn
*)0}
336 test_st murmur_availability
[] ={
337 {"murmur_avaibility_test", false, (test_callback_fn
*)murmur_avaibility_test
},
338 {0, 0, (test_callback_fn
*)0}
342 test_st hash_sanity
[] ={
343 {"hash sanity", 0, (test_callback_fn
*)hash_sanity_test
},
344 {0, 0, (test_callback_fn
*)0}
348 test_st ketama_auto_eject_hosts
[] ={
349 {"basic ketama test", true, (test_callback_fn
*)ketama_TEST
},
350 {"auto_eject_hosts", true, (test_callback_fn
*)auto_eject_hosts
},
351 {"output_ketama_weighted_keys", true, (test_callback_fn
*)output_ketama_weighted_keys
},
352 {0, 0, (test_callback_fn
*)0}
355 test_st hash_tests
[] ={
356 {"one_at_a_time_run", false, (test_callback_fn
*)one_at_a_time_run
},
357 {"md5", false, (test_callback_fn
*)md5_run
},
358 {"crc", false, (test_callback_fn
*)crc_run
},
359 {"fnv1_64", false, (test_callback_fn
*)fnv1_64_run
},
360 {"fnv1a_64", false, (test_callback_fn
*)fnv1a_64_run
},
361 {"fnv1_32", false, (test_callback_fn
*)fnv1_32_run
},
362 {"fnv1a_32", false, (test_callback_fn
*)fnv1a_32_run
},
363 {"hsieh", false, (test_callback_fn
*)hsieh_run
},
364 {"murmur", false, (test_callback_fn
*)murmur_run
},
365 {"murmur3", false, (test_callback_fn
*)murmur3_TEST
},
366 {"jenkis", false, (test_callback_fn
*)jenkins_run
},
367 {"memcached_get_hashkit", false, (test_callback_fn
*)memcached_get_hashkit_test
},
368 {0, 0, (test_callback_fn
*)0}
371 test_st error_conditions
[] ={
372 {"memcached_get(MEMCACHED_ERRNO)", false, (test_callback_fn
*)memcached_get_MEMCACHED_ERRNO
},
373 {"memcached_get(MEMCACHED_NOTFOUND)", false, (test_callback_fn
*)memcached_get_MEMCACHED_NOTFOUND
},
374 {"memcached_get_by_key(MEMCACHED_ERRNO)", false, (test_callback_fn
*)memcached_get_by_key_MEMCACHED_ERRNO
},
375 {"memcached_get_by_key(MEMCACHED_NOTFOUND)", false, (test_callback_fn
*)memcached_get_by_key_MEMCACHED_NOTFOUND
},
376 {"memcached_get_by_key(MEMCACHED_NOTFOUND)", false, (test_callback_fn
*)memcached_get_by_key_MEMCACHED_NOTFOUND
},
377 {"memcached_increment(MEMCACHED_NO_SERVERS)", false, (test_callback_fn
*)memcached_increment_MEMCACHED_NO_SERVERS
},
378 {0, 0, (test_callback_fn
*)0}
381 test_st parser_tests
[] ={
382 {"behavior", false, (test_callback_fn
*)behavior_parser_test
},
383 {"boolean_options", false, (test_callback_fn
*)parser_boolean_options_test
},
384 {"configure_file", false, (test_callback_fn
*)memcached_create_with_options_with_filename
},
385 {"distribtions", false, (test_callback_fn
*)parser_distribution_test
},
386 {"hash", false, (test_callback_fn
*)parser_hash_test
},
387 {"libmemcached_check_configuration", false, (test_callback_fn
*)libmemcached_check_configuration_test
},
388 {"libmemcached_check_configuration_with_filename", false, (test_callback_fn
*)libmemcached_check_configuration_with_filename_test
},
389 {"number_options", false, (test_callback_fn
*)parser_number_options_test
},
390 {"randomly generated options", false, (test_callback_fn
*)random_statement_build_test
},
391 {"namespace", false, (test_callback_fn
*)parser_key_prefix_test
},
392 {"server", false, (test_callback_fn
*)server_test
},
393 {"bad server strings", false, (test_callback_fn
*)servers_bad_test
},
394 {"server with weights", false, (test_callback_fn
*)server_with_weight_test
},
395 {"parsing servername, port, and weight", false, (test_callback_fn
*)test_hostname_port_weight
},
396 {"--socket=", false, (test_callback_fn
*)test_parse_socket
},
397 {"--namespace=", false, (test_callback_fn
*)test_namespace_keyword
},
398 {0, 0, (test_callback_fn
*)0}
401 test_st virtual_bucket_tests
[] ={
402 {"basic", false, (test_callback_fn
*)virtual_back_map
},
403 {0, 0, (test_callback_fn
*)0}
406 test_st memcached_server_add_TESTS
[] ={
407 {"memcached_server_add(\"\")", false, (test_callback_fn
*)memcached_server_add_empty_test
},
408 {"memcached_server_add(NULL)", false, (test_callback_fn
*)memcached_server_add_null_test
},
409 {"memcached_server_add(many)", false, (test_callback_fn
*)memcached_server_many_TEST
},
410 {"memcached_server_add(many weighted)", false, (test_callback_fn
*)memcached_server_many_weighted_TEST
},
411 {0, 0, (test_callback_fn
*)0}
414 test_st pool_TESTS
[] ={
415 {"lp:962815", true, (test_callback_fn
*)regression_bug_962815
},
416 {0, 0, (test_callback_fn
*)0}
419 test_st memcached_set_encoding_key_TESTS
[] ={
420 {"memcached_set_encoding_key()", true, (test_callback_fn
*)memcached_set_encoding_key_TEST
},
421 {"memcached_set_encoding_key() +set() + get()", true, (test_callback_fn
*)memcached_set_encoding_key_set_get_TEST
},
422 {"memcached_set_encoding_key() +add() + get()", true, (test_callback_fn
*)memcached_set_encoding_key_add_get_TEST
},
423 {"memcached_set_encoding_key() +replace() + get()", true, (test_callback_fn
*)memcached_set_encoding_key_replace_get_TEST
},
424 {"memcached_set_encoding_key() +prepend()", true, (test_callback_fn
*)memcached_set_encoding_key_prepend_TEST
},
425 {"memcached_set_encoding_key() +append()", true, (test_callback_fn
*)memcached_set_encoding_key_append_TEST
},
426 {"memcached_set_encoding_key() +increment()", true, (test_callback_fn
*)memcached_set_encoding_key_increment_TEST
},
427 {"memcached_set_encoding_key() +decrement()", true, (test_callback_fn
*)memcached_set_encoding_key_increment_TEST
},
428 {"memcached_set_encoding_key() +increment_with_initial()", true, (test_callback_fn
*)memcached_set_encoding_key_increment_with_initial_TEST
},
429 {"memcached_set_encoding_key() +decrement_with_initial()", true, (test_callback_fn
*)memcached_set_encoding_key_decrement_with_initial_TEST
},
430 {"memcached_set_encoding_key() +set() +get() +cloen()", true, (test_callback_fn
*)memcached_set_encoding_key_set_get_clone_TEST
},
431 {"memcached_set_encoding_key() +set() +get() increase value size", true, (test_callback_fn
*)memcached_set_encoding_key_set_grow_key_TEST
},
432 {0, 0, (test_callback_fn
*)0}
435 test_st namespace_tests
[] ={
436 {"basic tests", true, (test_callback_fn
*)selection_of_namespace_tests
},
437 {"increment", true, (test_callback_fn
*)memcached_increment_namespace
},
438 {0, 0, (test_callback_fn
*)0}
441 collection_st collection
[] ={
443 {"hash_sanity", 0, 0, hash_sanity
},
445 {"libmemcachedutil", 0, 0, libmemcachedutil_tests
},
446 {"basic", 0, 0, basic_tests
},
447 {"hsieh_availability", 0, 0, hsieh_availability
},
448 {"murmur_availability", 0, 0, murmur_availability
},
449 {"memcached_server_add", (test_callback_fn
*)memcached_servers_reset_SETUP
, 0, memcached_server_add_TESTS
},
450 {"memcached_server_add(MEMCACHED_DISTRIBUTION_CONSISTENT)", (test_callback_fn
*)memcached_servers_reset_MEMCACHED_DISTRIBUTION_CONSISTENT_SETUP
, 0, memcached_server_add_TESTS
},
451 {"memcached_server_add(MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED)", (test_callback_fn
*)memcached_servers_reset_MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED_SETUP
, 0, memcached_server_add_TESTS
},
452 {"block", 0, 0, tests
},
453 {"binary", (test_callback_fn
*)pre_binary
, 0, tests
},
454 {"nonblock", (test_callback_fn
*)pre_nonblock
, 0, tests
},
455 {"nodelay", (test_callback_fn
*)pre_nodelay
, 0, tests
},
456 {"settimer", (test_callback_fn
*)pre_settimer
, 0, tests
},
457 {"md5", (test_callback_fn
*)pre_md5
, 0, tests
},
458 {"crc", (test_callback_fn
*)pre_crc
, 0, tests
},
459 {"hsieh", (test_callback_fn
*)pre_hsieh
, 0, tests
},
460 {"jenkins", (test_callback_fn
*)pre_jenkins
, 0, tests
},
461 {"fnv1_64", (test_callback_fn
*)pre_hash_fnv1_64
, 0, tests
},
462 {"fnv1a_64", (test_callback_fn
*)pre_hash_fnv1a_64
, 0, tests
},
463 {"fnv1_32", (test_callback_fn
*)pre_hash_fnv1_32
, 0, tests
},
464 {"fnv1a_32", (test_callback_fn
*)pre_hash_fnv1a_32
, 0, tests
},
465 {"ketama", (test_callback_fn
*)pre_behavior_ketama
, 0, tests
},
466 {"ketama_auto_eject_hosts", (test_callback_fn
*)pre_behavior_ketama
, 0, ketama_auto_eject_hosts
},
467 {"unix_socket", (test_callback_fn
*)pre_unix_socket
, 0, tests
},
468 {"unix_socket_nodelay", (test_callback_fn
*)pre_nodelay
, 0, tests
},
469 {"gets", (test_callback_fn
*)enable_cas
, 0, tests
},
470 {"consistent_crc", (test_callback_fn
*)enable_consistent_crc
, 0, tests
},
471 {"consistent_hsieh", (test_callback_fn
*)enable_consistent_hsieh
, 0, tests
},
472 #ifdef MEMCACHED_ENABLE_DEPRECATED
473 {"deprecated_memory_allocators", (test_callback_fn
*)deprecated_set_memory_alloc
, 0, tests
},
475 {"memory_allocators", (test_callback_fn
*)set_memory_alloc
, 0, tests
},
476 {"namespace", (test_callback_fn
*)set_namespace
, 0, tests
},
477 {"namespace(BINARY)", (test_callback_fn
*)set_namespace_and_binary
, 0, tests
},
478 {"specific namespace", 0, 0, namespace_tests
},
479 {"specific namespace(BINARY)", (test_callback_fn
*)pre_binary
, 0, namespace_tests
},
480 {"version_1_2_3", (test_callback_fn
*)check_for_1_2_3
, 0, version_1_2_3
},
481 {"result", 0, 0, result_tests
},
482 {"async", (test_callback_fn
*)pre_nonblock
, 0, async_tests
},
483 {"async(BINARY)", (test_callback_fn
*)pre_nonblock_binary
, 0, async_tests
},
484 {"Cal Haldenbrand's tests", 0, 0, haldenbrand_TESTS
},
485 {"user written tests", 0, 0, user_tests
},
486 {"generate", 0, 0, generate_tests
},
487 {"generate MEMCACHED_BEHAVIOR_BUFFER_REQUESTS", (test_callback_fn
*)pre_buffer
, 0, generate_tests
},
488 {"mget generate MEMCACHED_BEHAVIOR_BUFFER_REQUESTS", (test_callback_fn
*)pre_buffer
, 0, generate_mget_TESTS
},
489 {"generate large", 0, 0, generate_large_TESTS
},
490 {"generate_hsieh", (test_callback_fn
*)pre_hsieh
, 0, generate_tests
},
491 {"generate_ketama", (test_callback_fn
*)pre_behavior_ketama
, 0, generate_tests
},
492 {"generate_hsieh_consistent", (test_callback_fn
*)enable_consistent_hsieh
, 0, generate_tests
},
493 {"generate_md5", (test_callback_fn
*)pre_md5
, 0, generate_tests
},
494 {"generate_murmur", (test_callback_fn
*)pre_murmur
, 0, generate_tests
},
495 {"generate_jenkins", (test_callback_fn
*)pre_jenkins
, 0, generate_tests
},
496 {"generate_nonblock", (test_callback_fn
*)pre_nonblock
, 0, generate_tests
},
497 {"mget generate_nonblock", (test_callback_fn
*)pre_nonblock
, 0, generate_mget_TESTS
},
498 {"consistent_not", 0, 0, consistent_tests
},
499 {"consistent_ketama", (test_callback_fn
*)pre_behavior_ketama
, 0, consistent_tests
},
500 {"consistent_ketama_weighted", (test_callback_fn
*)pre_behavior_ketama_weighted
, 0, consistent_weighted_tests
},
501 {"ketama_compat", 0, 0, ketama_compatibility
},
502 {"test_hashes", 0, 0, hash_tests
},
503 {"replication", (test_callback_fn
*)pre_replication
, 0, replication_tests
},
504 {"replication_noblock", (test_callback_fn
*)pre_replication_noblock
, 0, replication_tests
},
505 {"regression", 0, 0, regression_tests
},
506 {"behaviors", 0, 0, behavior_tests
},
507 {"regression_binary_vs_block", (test_callback_fn
*)key_setup
, (test_callback_fn
*)key_teardown
, regression_binary_vs_block
},
508 {"error_conditions", 0, 0, error_conditions
},
509 {"parser", 0, 0, parser_tests
},
510 {"virtual buckets", 0, 0, virtual_bucket_tests
},
511 {"memcached_server_get_last_disconnect", 0, 0, memcached_server_get_last_disconnect_tests
},
512 {"touch", 0, 0, touch_tests
},
513 {"touch", (test_callback_fn
*)pre_binary
, 0, touch_tests
},
514 {"memcached_stat()", 0, 0, memcached_stat_tests
},
515 {"memcached_pool_create()", 0, 0, pool_TESTS
},
516 {"memcached_set_encoding_key()", 0, 0, memcached_set_encoding_key_TESTS
},
517 {"kill()", 0, 0, kill_TESTS
},