Fixes condition where we were not correctly setting weighted vs not.
[m6w6/libmemcached] / tests / libmemcached-1.0 / all_tests.h
1 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
2 *
3 * Libmemcached Client and Server
4 *
5 * Copyright (C) 2012 Data Differential, http://datadifferential.com/
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are
10 * met:
11 *
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 *
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
18 * distribution.
19 *
20 * * The names of its contributors may not be used to endorse or
21 * promote products derived from this software without specific prior
22 * written permission.
23 *
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.
35 *
36 */
37
38 #pragma once
39
40 #include "tests/libmemcached-1.0/memcached_get.h"
41
42
43 /* Clean the server before beginning testing */
44 test_st tests[] ={
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 },
102 #if 0
103 {"memcached_pool_st #3", true, (test_callback_fn*)connection_pool3_test },
104 #endif
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},
115 #if 0
116 {"memcached_dump() no data", true, (test_callback_fn*)memcached_dump_TEST },
117 #endif
118 {"memcached_dump() with data", true, (test_callback_fn*)memcached_dump_TEST2 },
119 {0, 0, 0}
120 };
121
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},
125 {0, 0, 0}
126 };
127
128 test_st kill_TESTS[] ={
129 {"kill(HUP)", 0, (test_callback_fn*)kill_HUP_TEST},
130 {0, 0, 0}
131 };
132
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},
136 {0, 0, 0}
137 };
138
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},
148 {0, 0, 0}
149 };
150
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 },
155 {0, 0, 0}
156 };
157
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 },
166 {0, 0, 0}
167 };
168
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},
172 {0, 0, 0}
173 };
174
175 test_st async_tests[] ={
176 {"add", true, (test_callback_fn*)add_wrapper },
177 {0, 0, 0}
178 };
179
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}
183 };
184
185
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}
190 };
191
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}
199 };
200
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}
206 };
207
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__)
223 /*
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...).
229 */
230 {"user_supplied_bug17", true, (test_callback_fn*)user_supplied_bug17 },
231 #endif
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}
239 };
240
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}
251 };
252
253 /*
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
258 */
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 {0, false, (test_callback_fn*)0}
281 };
282
283 test_st ketama_compatibility[]= {
284 {"libmemcached", true, (test_callback_fn*)ketama_compatibility_libmemcached },
285 {"spymemcached", true, (test_callback_fn*)ketama_compatibility_spymemcached },
286 {0, 0, (test_callback_fn*)0}
287 };
288
289 test_st generate_tests[] ={
290 {"generate_data", true, (test_callback_fn*)generate_data },
291 {"get_read", false, (test_callback_fn*)get_read },
292 {"delete_generate", false, (test_callback_fn*)delete_generate },
293 {"cleanup", true, (test_callback_fn*)cleanup_pairs },
294 {0, 0, (test_callback_fn*)0}
295 };
296 // New start
297 test_st generate_mget_TESTS[] ={
298 {"generate_data", true, (test_callback_fn*)generate_data },
299 {"mget_read", false, (test_callback_fn*)mget_read },
300 {"mget_read_result", false, (test_callback_fn*)mget_read_result },
301 {"memcached_fetch_result() use internal result", false, (test_callback_fn*)mget_read_internal_result },
302 {"memcached_fetch_result() partial read", false, (test_callback_fn*)mget_read_partial_result },
303 {"mget_read_function", false, (test_callback_fn*)mget_read_function },
304 {"cleanup", true, (test_callback_fn*)cleanup_pairs },
305 {0, 0, (test_callback_fn*)0}
306 };
307
308 test_st generate_large_TESTS[] ={
309 {"generate_large_pairs", true, (test_callback_fn*)generate_large_pairs },
310 {"cleanup", true, (test_callback_fn*)cleanup_pairs },
311 {0, 0, (test_callback_fn*)0}
312 };
313
314 test_st consistent_tests[] ={
315 {"generate_data", true, (test_callback_fn*)generate_data },
316 {"get_read", 0, (test_callback_fn*)get_read_count },
317 {"cleanup", true, (test_callback_fn*)cleanup_pairs },
318 {0, 0, (test_callback_fn*)0}
319 };
320
321 test_st consistent_weighted_tests[] ={
322 {"generate_data", true, (test_callback_fn*)generate_data_with_stats },
323 {"get_read", false, (test_callback_fn*)get_read_count },
324 {"cleanup", true, (test_callback_fn*)cleanup_pairs },
325 {0, 0, (test_callback_fn*)0}
326 };
327
328 test_st hsieh_availability[] ={
329 {"hsieh_avaibility_test", false, (test_callback_fn*)hsieh_avaibility_test},
330 {0, 0, (test_callback_fn*)0}
331 };
332
333 test_st murmur_availability[] ={
334 {"murmur_avaibility_test", false, (test_callback_fn*)murmur_avaibility_test},
335 {0, 0, (test_callback_fn*)0}
336 };
337
338 #if 0
339 test_st hash_sanity[] ={
340 {"hash sanity", 0, (test_callback_fn*)hash_sanity_test},
341 {0, 0, (test_callback_fn*)0}
342 };
343 #endif
344
345 test_st ketama_auto_eject_hosts[] ={
346 {"auto_eject_hosts", true, (test_callback_fn*)auto_eject_hosts },
347 {"output_ketama_weighted_keys", true, (test_callback_fn*)output_ketama_weighted_keys },
348 {0, 0, (test_callback_fn*)0}
349 };
350
351 test_st hash_tests[] ={
352 {"one_at_a_time_run", false, (test_callback_fn*)one_at_a_time_run },
353 {"md5", false, (test_callback_fn*)md5_run },
354 {"crc", false, (test_callback_fn*)crc_run },
355 {"fnv1_64", false, (test_callback_fn*)fnv1_64_run },
356 {"fnv1a_64", false, (test_callback_fn*)fnv1a_64_run },
357 {"fnv1_32", false, (test_callback_fn*)fnv1_32_run },
358 {"fnv1a_32", false, (test_callback_fn*)fnv1a_32_run },
359 {"hsieh", false, (test_callback_fn*)hsieh_run },
360 {"murmur", false, (test_callback_fn*)murmur_run },
361 {"jenkis", false, (test_callback_fn*)jenkins_run },
362 {"memcached_get_hashkit", false, (test_callback_fn*)memcached_get_hashkit_test },
363 {0, 0, (test_callback_fn*)0}
364 };
365
366 test_st error_conditions[] ={
367 {"memcached_get(MEMCACHED_ERRNO)", false, (test_callback_fn*)memcached_get_MEMCACHED_ERRNO },
368 {"memcached_get(MEMCACHED_NOTFOUND)", false, (test_callback_fn*)memcached_get_MEMCACHED_NOTFOUND },
369 {"memcached_get_by_key(MEMCACHED_ERRNO)", false, (test_callback_fn*)memcached_get_by_key_MEMCACHED_ERRNO },
370 {"memcached_get_by_key(MEMCACHED_NOTFOUND)", false, (test_callback_fn*)memcached_get_by_key_MEMCACHED_NOTFOUND },
371 {"memcached_get_by_key(MEMCACHED_NOTFOUND)", false, (test_callback_fn*)memcached_get_by_key_MEMCACHED_NOTFOUND },
372 {"memcached_increment(MEMCACHED_NO_SERVERS)", false, (test_callback_fn*)memcached_increment_MEMCACHED_NO_SERVERS },
373 {0, 0, (test_callback_fn*)0}
374 };
375
376 test_st parser_tests[] ={
377 {"behavior", false, (test_callback_fn*)behavior_parser_test },
378 {"boolean_options", false, (test_callback_fn*)parser_boolean_options_test },
379 {"configure_file", false, (test_callback_fn*)memcached_create_with_options_with_filename },
380 {"distribtions", false, (test_callback_fn*)parser_distribution_test },
381 {"hash", false, (test_callback_fn*)parser_hash_test },
382 {"libmemcached_check_configuration", false, (test_callback_fn*)libmemcached_check_configuration_test },
383 {"libmemcached_check_configuration_with_filename", false, (test_callback_fn*)libmemcached_check_configuration_with_filename_test },
384 {"number_options", false, (test_callback_fn*)parser_number_options_test },
385 {"randomly generated options", false, (test_callback_fn*)random_statement_build_test },
386 {"namespace", false, (test_callback_fn*)parser_key_prefix_test },
387 {"server", false, (test_callback_fn*)server_test },
388 {"bad server strings", false, (test_callback_fn*)servers_bad_test },
389 {"server with weights", false, (test_callback_fn*)server_with_weight_test },
390 {"parsing servername, port, and weight", false, (test_callback_fn*)test_hostname_port_weight },
391 {"--socket=", false, (test_callback_fn*)test_parse_socket },
392 {"--namespace=", false, (test_callback_fn*)test_namespace_keyword },
393 {0, 0, (test_callback_fn*)0}
394 };
395
396 test_st virtual_bucket_tests[] ={
397 {"basic", false, (test_callback_fn*)virtual_back_map },
398 {0, 0, (test_callback_fn*)0}
399 };
400
401 test_st memcached_server_add_tests[] ={
402 {"memcached_server_add(\"\")", false, (test_callback_fn*)memcached_server_add_empty_test },
403 {"memcached_server_add(NULL)", false, (test_callback_fn*)memcached_server_add_null_test },
404 {0, 0, (test_callback_fn*)0}
405 };
406
407 test_st pool_TESTS[] ={
408 {"lp:962815", true, (test_callback_fn*)regression_bug_962815 },
409 {0, 0, (test_callback_fn*)0}
410 };
411
412 test_st memcached_set_encoding_key_TESTS[] ={
413 {"memcached_set_encoding_key()", true, (test_callback_fn*)memcached_set_encoding_key_TEST },
414 {"memcached_set_encoding_key() +set() + get()", true, (test_callback_fn*)memcached_set_encoding_key_set_get_TEST },
415 {"memcached_set_encoding_key() +add() + get()", true, (test_callback_fn*)memcached_set_encoding_key_add_get_TEST },
416 {"memcached_set_encoding_key() +replace() + get()", true, (test_callback_fn*)memcached_set_encoding_key_replace_get_TEST },
417 {"memcached_set_encoding_key() +prepend()", true, (test_callback_fn*)memcached_set_encoding_key_prepend_TEST },
418 {"memcached_set_encoding_key() +append()", true, (test_callback_fn*)memcached_set_encoding_key_append_TEST },
419 {"memcached_set_encoding_key() +increment()", true, (test_callback_fn*)memcached_set_encoding_key_increment_TEST },
420 {"memcached_set_encoding_key() +decrement()", true, (test_callback_fn*)memcached_set_encoding_key_increment_TEST },
421 {"memcached_set_encoding_key() +increment_with_initial()", true, (test_callback_fn*)memcached_set_encoding_key_increment_with_initial_TEST },
422 {"memcached_set_encoding_key() +decrement_with_initial()", true, (test_callback_fn*)memcached_set_encoding_key_decrement_with_initial_TEST },
423 {"memcached_set_encoding_key() +set() +get() +cloen()", true, (test_callback_fn*)memcached_set_encoding_key_set_get_clone_TEST },
424 {"memcached_set_encoding_key() +set() +get() increase value size", true, (test_callback_fn*)memcached_set_encoding_key_set_grow_key_TEST },
425 {0, 0, (test_callback_fn*)0}
426 };
427
428 test_st namespace_tests[] ={
429 {"basic tests", true, (test_callback_fn*)selection_of_namespace_tests },
430 {"increment", true, (test_callback_fn*)memcached_increment_namespace },
431 {0, 0, (test_callback_fn*)0}
432 };
433
434 collection_st collection[] ={
435 #if 0
436 {"hash_sanity", 0, 0, hash_sanity},
437 #endif
438 {"libmemcachedutil", 0, 0, libmemcachedutil_tests},
439 {"basic", 0, 0, basic_tests},
440 {"hsieh_availability", 0, 0, hsieh_availability},
441 {"murmur_availability", 0, 0, murmur_availability},
442 {"memcached_server_add", 0, 0, memcached_server_add_tests},
443 {"block", 0, 0, tests},
444 {"binary", (test_callback_fn*)pre_binary, 0, tests},
445 {"nonblock", (test_callback_fn*)pre_nonblock, 0, tests},
446 {"nodelay", (test_callback_fn*)pre_nodelay, 0, tests},
447 {"settimer", (test_callback_fn*)pre_settimer, 0, tests},
448 {"md5", (test_callback_fn*)pre_md5, 0, tests},
449 {"crc", (test_callback_fn*)pre_crc, 0, tests},
450 {"hsieh", (test_callback_fn*)pre_hsieh, 0, tests},
451 {"jenkins", (test_callback_fn*)pre_jenkins, 0, tests},
452 {"fnv1_64", (test_callback_fn*)pre_hash_fnv1_64, 0, tests},
453 {"fnv1a_64", (test_callback_fn*)pre_hash_fnv1a_64, 0, tests},
454 {"fnv1_32", (test_callback_fn*)pre_hash_fnv1_32, 0, tests},
455 {"fnv1a_32", (test_callback_fn*)pre_hash_fnv1a_32, 0, tests},
456 {"ketama", (test_callback_fn*)pre_behavior_ketama, 0, tests},
457 {"ketama_auto_eject_hosts", (test_callback_fn*)pre_behavior_ketama, 0, ketama_auto_eject_hosts},
458 {"unix_socket", (test_callback_fn*)pre_unix_socket, 0, tests},
459 {"unix_socket_nodelay", (test_callback_fn*)pre_nodelay, 0, tests},
460 {"gets", (test_callback_fn*)enable_cas, 0, tests},
461 {"consistent_crc", (test_callback_fn*)enable_consistent_crc, 0, tests},
462 {"consistent_hsieh", (test_callback_fn*)enable_consistent_hsieh, 0, tests},
463 #ifdef MEMCACHED_ENABLE_DEPRECATED
464 {"deprecated_memory_allocators", (test_callback_fn*)deprecated_set_memory_alloc, 0, tests},
465 #endif
466 {"memory_allocators", (test_callback_fn*)set_memory_alloc, 0, tests},
467 {"namespace", (test_callback_fn*)set_namespace, 0, tests},
468 {"namespace(BINARY)", (test_callback_fn*)set_namespace_and_binary, 0, tests},
469 {"specific namespace", 0, 0, namespace_tests},
470 {"specific namespace(BINARY)", (test_callback_fn*)pre_binary, 0, namespace_tests},
471 {"version_1_2_3", (test_callback_fn*)check_for_1_2_3, 0, version_1_2_3},
472 {"result", 0, 0, result_tests},
473 {"async", (test_callback_fn*)pre_nonblock, 0, async_tests},
474 {"async(BINARY)", (test_callback_fn*)pre_nonblock_binary, 0, async_tests},
475 {"Cal Haldenbrand's tests", 0, 0, haldenbrand_TESTS},
476 {"user written tests", 0, 0, user_tests},
477 {"generate", 0, 0, generate_tests},
478 {"generate MEMCACHED_BEHAVIOR_BUFFER_REQUESTS", (test_callback_fn*)pre_buffer, 0, generate_tests},
479 {"mget generate MEMCACHED_BEHAVIOR_BUFFER_REQUESTS", (test_callback_fn*)pre_buffer, 0, generate_mget_TESTS},
480 {"generate large", 0, 0, generate_large_TESTS},
481 {"generate_hsieh", (test_callback_fn*)pre_hsieh, 0, generate_tests},
482 {"generate_ketama", (test_callback_fn*)pre_behavior_ketama, 0, generate_tests},
483 {"generate_hsieh_consistent", (test_callback_fn*)enable_consistent_hsieh, 0, generate_tests},
484 {"generate_md5", (test_callback_fn*)pre_md5, 0, generate_tests},
485 {"generate_murmur", (test_callback_fn*)pre_murmur, 0, generate_tests},
486 {"generate_jenkins", (test_callback_fn*)pre_jenkins, 0, generate_tests},
487 {"generate_nonblock", (test_callback_fn*)pre_nonblock, 0, generate_tests},
488 {"mget generate_nonblock", (test_callback_fn*)pre_nonblock, 0, generate_mget_TESTS},
489 {"consistent_not", 0, 0, consistent_tests},
490 {"consistent_ketama", (test_callback_fn*)pre_behavior_ketama, 0, consistent_tests},
491 {"consistent_ketama_weighted", (test_callback_fn*)pre_behavior_ketama_weighted, 0, consistent_weighted_tests},
492 {"ketama_compat", 0, 0, ketama_compatibility},
493 {"test_hashes", 0, 0, hash_tests},
494 {"replication", (test_callback_fn*)pre_replication, 0, replication_tests},
495 {"replication_noblock", (test_callback_fn*)pre_replication_noblock, 0, replication_tests},
496 {"regression", 0, 0, regression_tests},
497 {"behaviors", 0, 0, behavior_tests},
498 {"regression_binary_vs_block", (test_callback_fn*)key_setup, (test_callback_fn*)key_teardown, regression_binary_vs_block},
499 {"error_conditions", 0, 0, error_conditions},
500 {"parser", 0, 0, parser_tests},
501 {"virtual buckets", 0, 0, virtual_bucket_tests},
502 {"memcached_server_get_last_disconnect", 0, 0, memcached_server_get_last_disconnect_tests},
503 {"touch", 0, 0, touch_tests},
504 {"touch", (test_callback_fn*)pre_binary, 0, touch_tests},
505 {"memcached_stat()", 0, 0, memcached_stat_tests},
506 {"memcached_pool_create()", 0, 0, pool_TESTS},
507 {"memcached_set_encoding_key()", 0, 0, memcached_set_encoding_key_TESTS},
508 {"kill()", 0, 0, kill_TESTS},
509 {0, 0, 0, 0}
510 };