7a3b86291e354bdeb8f13c4fe3cfdf94736404b8
2 Sample test application.
14 (void)memcached_create(&memc
);
15 memcached_free(&memc
);
18 void allocation_test(void)
21 memc
= memcached_create(NULL
);
26 void connection_test(void)
30 memc
= memcached_create(NULL
);
32 rc
= memcached_server_add(memc
, "localhost", 0);
33 assert(rc
== MEMCACHED_SUCCESS
);
41 memc
= memcached_create(NULL
);
44 for (rc
= MEMCACHED_SUCCESS
; rc
< MEMCACHED_MAXIMUM_RETURN
; rc
++)
46 printf("Error %d -> %s\n", rc
, memcached_strerror(memc
, rc
));
58 char *value
= "when we sanitize";
60 memc
= memcached_create(NULL
);
62 rc
= memcached_server_add(memc
, "localhost", 0);
63 assert(rc
== MEMCACHED_SUCCESS
);
64 rc
= memcached_set(memc
, key
, strlen(key
),
66 (time_t)0, (uint16_t)0);
67 assert(rc
== MEMCACHED_SUCCESS
);
77 char *value
= "when we sanitize";
79 memc
= memcached_create(NULL
);
81 rc
= memcached_server_add(memc
, "localhost", 0);
82 assert(rc
== MEMCACHED_SUCCESS
);
83 rc
= memcached_add(memc
, key
, strlen(key
),
85 (time_t)0, (uint16_t)0);
86 assert(rc
== MEMCACHED_NOTSTORED
);
91 void replace_test(void)
96 char *value
= "when we sanitize";
98 memc
= memcached_create(NULL
);
100 rc
= memcached_server_add(memc
, "localhost", 0);
101 assert(rc
== MEMCACHED_SUCCESS
);
102 rc
= memcached_replace(memc
, key
, strlen(key
),
103 value
, strlen(value
),
104 (time_t)0, (uint16_t)0);
105 assert(rc
== MEMCACHED_SUCCESS
);
107 memcached_free(memc
);
110 void delete_test(void)
115 char *value
= "when we sanitize";
117 memc
= memcached_create(NULL
);
119 rc
= memcached_server_add(memc
, "localhost", 0);
120 assert(rc
== MEMCACHED_SUCCESS
);
121 rc
= memcached_set(memc
, key
, strlen(key
),
122 value
, strlen(value
),
123 (time_t)0, (uint16_t)0);
124 assert(rc
== MEMCACHED_SUCCESS
);
126 rc
= memcached_delete(memc
, key
, strlen(key
), (time_t)0);
127 assert(rc
== MEMCACHED_SUCCESS
);
129 memcached_free(memc
);
132 void flush_test(void)
137 memc
= memcached_create(NULL
);
139 rc
= memcached_server_add(memc
, "localhost", 0);
140 assert(rc
== MEMCACHED_SUCCESS
);
141 rc
= memcached_flush(memc
, 0);
142 assert(rc
== MEMCACHED_SUCCESS
);
144 memcached_free(memc
);
153 size_t string_length
;
156 memc
= memcached_create(NULL
);
158 rc
= memcached_server_add(memc
, "localhost", 0);
159 assert(rc
== MEMCACHED_SUCCESS
);
161 string
= memcached_get(memc
, key
, strlen(key
),
162 &string_length
, &flags
, &rc
);
164 assert(rc
== MEMCACHED_NOTFOUND
);
165 assert(string_length
== 0);
168 memcached_free(memc
);
176 char *value
= "when we sanitize";
178 size_t string_length
;
181 memc
= memcached_create(NULL
);
183 rc
= memcached_server_add(memc
, "localhost", 0);
184 assert(rc
== MEMCACHED_SUCCESS
);
186 rc
= memcached_set(memc
, key
, strlen(key
),
187 value
, strlen(value
),
188 (time_t)0, (uint16_t)0);
189 assert(rc
== MEMCACHED_SUCCESS
);
191 string
= memcached_get(memc
, key
, strlen(key
),
192 &string_length
, &flags
, &rc
);
195 assert(rc
== MEMCACHED_SUCCESS
);
196 assert(string_length
== strlen(value
));
197 assert(!memcmp(string
, value
, string_length
));
201 memcached_free(memc
);
209 char *value
= "train in the brain";
210 size_t value_length
= strlen(value
);
213 memc
= memcached_create(NULL
);
215 rc
= memcached_server_add(memc
, "localhost", 0);
216 assert(rc
== MEMCACHED_SUCCESS
);
218 for (x
= 0; x
< 10; x
++)
220 rc
= memcached_set(memc
, key
, strlen(key
),
222 (time_t)0, (uint16_t)0);
223 assert(rc
== MEMCACHED_SUCCESS
);
226 memcached_free(memc
);
235 size_t value_length
= 8191;
238 value
= (char*)malloc(value_length
);
241 for (x
= 0; x
< value_length
; x
++)
242 value
[x
] = (char) (x
% 127);
244 memc
= memcached_create(NULL
);
246 rc
= memcached_server_add(memc
, "localhost", 0);
247 assert(rc
== MEMCACHED_SUCCESS
);
249 for (x
= 0; x
< 1; x
++)
251 rc
= memcached_set(memc
, key
, strlen(key
),
253 (time_t)0, (uint16_t)0);
254 assert(rc
== MEMCACHED_SUCCESS
);
259 memcached_free(memc
);
268 size_t value_length
= 8191;
270 size_t string_length
;
274 value
= (char*)malloc(value_length
);
277 for (x
= 0; x
< value_length
; x
++)
278 value
[x
] = (char) (x
% 127);
280 memc
= memcached_create(NULL
);
282 rc
= memcached_server_add(memc
, "localhost", 0);
283 assert(rc
== MEMCACHED_SUCCESS
);
285 rc
= memcached_set(memc
, key
, strlen(key
),
287 (time_t)0, (uint16_t)0);
288 assert(rc
== MEMCACHED_SUCCESS
);
290 string
= memcached_get(memc
, key
, strlen(key
),
291 &string_length
, &flags
, &rc
);
293 assert(rc
== MEMCACHED_SUCCESS
);
295 assert(string_length
== value_length
);
296 assert(!memcmp(string
, value
, string_length
));
301 memcached_free(memc
);
310 size_t value_length
= 8191;
312 size_t string_length
;
316 value
= (char*)malloc(value_length
);
319 for (x
= 0; x
< value_length
; x
++)
320 value
[x
] = (char) (x
% 127);
322 memc
= memcached_create(NULL
);
324 rc
= memcached_server_add(memc
, "localhost", 0);
325 assert(rc
== MEMCACHED_SUCCESS
);
327 rc
= memcached_set(memc
, key
, strlen(key
),
329 (time_t)0, (uint16_t)0);
330 assert(rc
== MEMCACHED_SUCCESS
);
332 for (x
= 0; x
< 10; x
++)
334 string
= memcached_get(memc
, key
, strlen(key
),
335 &string_length
, &flags
, &rc
);
337 assert(rc
== MEMCACHED_SUCCESS
);
339 assert(string_length
== value_length
);
340 assert(!memcmp(string
, value
, string_length
));
346 memcached_free(memc
);
349 void stats_servername_test(void)
352 memcached_stat_st stat
;
353 rc
= memcached_stat_servername(&stat
, NULL
,
355 MEMCACHED_DEFAULT_PORT
);
358 void increment_test(void)
361 unsigned int new_number
;
366 memc
= memcached_create(NULL
);
368 rc
= memcached_server_add(memc
, "localhost", 0);
369 assert(rc
== MEMCACHED_SUCCESS
);
371 rc
= memcached_set(memc
, key
, strlen(key
),
372 value
, strlen(value
),
373 (time_t)0, (uint16_t)0);
374 assert(rc
== MEMCACHED_SUCCESS
);
376 rc
= memcached_increment(memc
, key
, strlen(key
),
378 assert(rc
== MEMCACHED_SUCCESS
);
379 assert(new_number
== 1);
381 rc
= memcached_increment(memc
, key
, strlen(key
),
383 assert(rc
== MEMCACHED_SUCCESS
);
384 assert(new_number
== 2);
386 memcached_free(memc
);
389 void decrement_test(void)
392 unsigned int new_number
;
397 memc
= memcached_create(NULL
);
399 rc
= memcached_server_add(memc
, "localhost", 0);
400 assert(rc
== MEMCACHED_SUCCESS
);
402 rc
= memcached_set(memc
, key
, strlen(key
),
403 value
, strlen(value
),
404 (time_t)0, (uint16_t)0);
405 assert(rc
== MEMCACHED_SUCCESS
);
407 rc
= memcached_decrement(memc
, key
, strlen(key
),
409 assert(rc
== MEMCACHED_SUCCESS
);
410 assert(new_number
== 2);
412 rc
= memcached_decrement(memc
, key
, strlen(key
),
414 assert(rc
== MEMCACHED_SUCCESS
);
415 assert(new_number
== 1);
417 memcached_free(memc
);
425 char *value
= "sanford and sun";
427 memc
= memcached_create(NULL
);
429 rc
= memcached_server_add(memc
, "localhost", 0);
430 assert(rc
== MEMCACHED_SUCCESS
);
432 rc
= memcached_set(memc
, key
, strlen(key
),
433 value
, strlen(value
),
434 (time_t)10, (uint16_t)3);
435 assert(rc
== MEMCACHED_SUCCESS
);
436 memcached_quit(memc
);
438 rc
= memcached_set(memc
, key
, strlen(key
),
439 value
, strlen(value
),
440 (time_t)50, (uint16_t)9);
441 assert(rc
== MEMCACHED_SUCCESS
);
443 memcached_free(memc
);
450 char *keys
[]= {"fudge", "son", "food"};
451 size_t key_length
[]= {5, 3, 4};
455 char return_key
[MEMCACHED_MAX_KEY
];
456 size_t return_key_length
;
458 size_t return_value_length
;
460 memc
= memcached_create(NULL
);
462 rc
= memcached_server_add(memc
, "localhost", 0);
463 assert(rc
== MEMCACHED_SUCCESS
);
465 /* We need to empty the server before continueing test */
466 rc
= memcached_flush(memc
, 0);
467 assert(rc
== MEMCACHED_SUCCESS
);
469 rc
= memcached_mget(memc
, keys
, key_length
, 3);
470 assert(rc
== MEMCACHED_SUCCESS
);
472 while ((return_value
= memcached_fetch(memc
, return_key
, &return_key_length
,
473 &return_value_length
, &flags
, &rc
)) != NULL
)
475 assert(return_value
);
477 assert(!return_value
);
478 assert(return_value_length
== 0);
479 assert(rc
== MEMCACHED_NOTFOUND
);
481 for (x
= 0; x
< 3; x
++)
483 rc
= memcached_set(memc
, keys
[x
], key_length
[x
],
484 keys
[x
], key_length
[x
],
485 (time_t)50, (uint16_t)9);
486 assert(rc
== MEMCACHED_SUCCESS
);
489 rc
= memcached_mget(memc
, keys
, key_length
, 3);
490 assert(rc
== MEMCACHED_SUCCESS
);
493 while ((return_value
= memcached_fetch(memc
, return_key
, &return_key_length
,
494 &return_value_length
, &flags
, &rc
)))
496 assert(return_value
);
497 assert(rc
== MEMCACHED_SUCCESS
);
498 assert(key_length
[x
] == return_value_length
);
499 assert(!memcmp(return_value
, keys
[x
], return_value_length
));
504 memcached_free(memc
);
507 void get_stats_keys(void)
512 memcached_stat_st stat
;
515 memc
= memcached_create(NULL
);
518 list
= memcached_stat_get_keys(memc
, &stat
, &rc
);
519 assert(rc
== MEMCACHED_SUCCESS
);
520 for (ptr
= list
; *ptr
; ptr
++)
521 printf("Found key %s\n", *ptr
);
524 memcached_free(memc
);
534 memcached_stat_st
*stat
;
536 memc
= memcached_create(NULL
);
538 rc
= memcached_server_add(memc
, "localhost", 0);
539 assert(rc
== MEMCACHED_SUCCESS
);
541 stat
= memcached_stat(memc
, NULL
, &rc
);
542 assert(rc
== MEMCACHED_SUCCESS
);
544 assert(rc
== MEMCACHED_SUCCESS
);
547 for (x
= 0; x
< memcached_server_count(memc
); x
++)
549 list
= memcached_stat_get_keys(memc
, &stat
[x
], &rc
);
550 assert(rc
== MEMCACHED_SUCCESS
);
551 for (ptr
= list
; *ptr
; ptr
++)
552 printf("Found key %s\n", *ptr
);
558 memcached_free(memc
);
561 void get_stats_multiple(void)
568 memcached_stat_st
*stat
;
570 memc
= memcached_create(NULL
);
572 rc
= memcached_server_add(memc
, "localhost", 0);
573 assert(rc
== MEMCACHED_SUCCESS
);
574 rc
= memcached_server_add(memc
, "localhost", 5555);
575 assert(rc
== MEMCACHED_SUCCESS
);
577 stat
= memcached_stat(memc
, NULL
, &rc
);
578 assert(rc
== MEMCACHED_SUCCESS
);
580 assert(rc
== MEMCACHED_SUCCESS
);
583 for (x
= 0; x
< memcached_server_count(memc
); x
++)
585 list
= memcached_stat_get_keys(memc
, &stat
[x
], &rc
);
586 assert(rc
== MEMCACHED_SUCCESS
);
587 for (ptr
= list
; *ptr
; ptr
++)
588 printf("Found key %s\n", *ptr
);
594 memcached_free(memc
);
597 void add_host_test(void)
601 memcached_server_st
*servers
;
603 char servername
[]= "0.example.com";
605 memc
= memcached_create(NULL
);
607 rc
= memcached_server_add(memc
, "localhost", 0);
608 assert(rc
== MEMCACHED_SUCCESS
);
610 servers
= memcached_server_list_append(NULL
, servername
, 400, &rc
);
612 assert(1 == memcached_server_list_count(servers
));
614 for (x
= 2; x
< 20; x
++)
616 char buffer
[SMALL_STRING_LEN
];
618 snprintf(buffer
, SMALL_STRING_LEN
, "%u.example.com", 400+x
);
619 servers
= memcached_server_list_append(servers
, buffer
, 401,
621 assert(rc
== MEMCACHED_SUCCESS
);
622 assert(x
== memcached_server_list_count(servers
));
625 rc
= memcached_server_push(memc
, servers
);
626 assert(rc
== MEMCACHED_SUCCESS
);
627 rc
= memcached_server_push(memc
, servers
);
628 assert(rc
== MEMCACHED_SUCCESS
);
630 memcached_server_list_free(servers
);
631 memcached_free(memc
);
634 void add_host_test1(void)
638 memcached_server_st
*servers
;
640 char servername
[]= "0.example.com";
642 memc
= memcached_create(NULL
);
645 servers
= memcached_server_list_append(NULL
, servername
, 400, &rc
);
647 assert(1 == memcached_server_list_count(servers
));
649 for (x
= 2; x
< 20; x
++)
651 char buffer
[SMALL_STRING_LEN
];
653 snprintf(buffer
, SMALL_STRING_LEN
, "%u.example.com", 400+x
);
654 servers
= memcached_server_list_append(servers
, buffer
, 401,
656 assert(rc
== MEMCACHED_SUCCESS
);
657 assert(x
== memcached_server_list_count(servers
));
660 rc
= memcached_server_push(memc
, servers
);
661 assert(rc
== MEMCACHED_SUCCESS
);
662 rc
= memcached_server_push(memc
, servers
);
663 assert(rc
== MEMCACHED_SUCCESS
);
665 memcached_server_list_free(servers
);
666 memcached_free(memc
);
670 int main(int argc
, char *argv
[])
672 /* Clean the server before beginning testing */
690 stats_servername_test();
699 /* The multiple tests */
702 get_stats_multiple();
706 /* Clean up whatever we might have left */