37ed800bce55415cefe62927c74daad19c80c88a
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
);
210 size_t value_length
= 8191;
212 size_t string_length
;
216 value
= (char*)malloc(value_length
);
219 for (x
= 0; x
< value_length
; x
++)
220 value
[x
] = (char) (x
% 127);
222 memc
= memcached_create(NULL
);
224 rc
= memcached_server_add(memc
, "localhost", 0);
225 assert(rc
== MEMCACHED_SUCCESS
);
227 rc
= memcached_set(memc
, key
, strlen(key
),
229 (time_t)0, (uint16_t)0);
230 assert(rc
== MEMCACHED_SUCCESS
);
232 string
= memcached_get(memc
, key
, strlen(key
),
233 &string_length
, &flags
, &rc
);
235 assert(rc
== MEMCACHED_SUCCESS
);
237 assert(string_length
== value_length
);
238 assert(!memcmp(string
, value
, string_length
));
243 memcached_free(memc
);
252 size_t value_length
= 8191;
254 size_t string_length
;
258 value
= (char*)malloc(value_length
);
261 for (x
= 0; x
< value_length
; x
++)
262 value
[x
] = (char) (x
% 127);
264 memc
= memcached_create(NULL
);
266 rc
= memcached_server_add(memc
, "localhost", 0);
267 assert(rc
== MEMCACHED_SUCCESS
);
269 rc
= memcached_set(memc
, key
, strlen(key
),
271 (time_t)0, (uint16_t)0);
272 assert(rc
== MEMCACHED_SUCCESS
);
274 for (x
= 0; x
< 10; x
++)
276 string
= memcached_get(memc
, key
, strlen(key
),
277 &string_length
, &flags
, &rc
);
279 assert(rc
== MEMCACHED_SUCCESS
);
281 assert(string_length
== value_length
);
282 assert(!memcmp(string
, value
, string_length
));
288 memcached_free(memc
);
291 void stats_servername_test(void)
294 memcached_stat_st stat
;
295 rc
= memcached_stat_servername(&stat
, NULL
,
297 MEMCACHED_DEFAULT_PORT
);
300 void increment_test(void)
303 unsigned int new_number
;
308 memc
= memcached_create(NULL
);
310 rc
= memcached_server_add(memc
, "localhost", 0);
311 assert(rc
== MEMCACHED_SUCCESS
);
313 rc
= memcached_set(memc
, key
, strlen(key
),
314 value
, strlen(value
),
315 (time_t)0, (uint16_t)0);
316 assert(rc
== MEMCACHED_SUCCESS
);
318 rc
= memcached_increment(memc
, key
, strlen(key
),
320 assert(rc
== MEMCACHED_SUCCESS
);
321 assert(new_number
== 1);
323 rc
= memcached_increment(memc
, key
, strlen(key
),
325 assert(rc
== MEMCACHED_SUCCESS
);
326 assert(new_number
== 2);
328 memcached_free(memc
);
331 void decrement_test(void)
334 unsigned int new_number
;
339 memc
= memcached_create(NULL
);
341 rc
= memcached_server_add(memc
, "localhost", 0);
342 assert(rc
== MEMCACHED_SUCCESS
);
344 rc
= memcached_set(memc
, key
, strlen(key
),
345 value
, strlen(value
),
346 (time_t)0, (uint16_t)0);
347 assert(rc
== MEMCACHED_SUCCESS
);
349 rc
= memcached_decrement(memc
, key
, strlen(key
),
351 assert(rc
== MEMCACHED_SUCCESS
);
352 assert(new_number
== 2);
354 rc
= memcached_decrement(memc
, key
, strlen(key
),
356 assert(rc
== MEMCACHED_SUCCESS
);
357 assert(new_number
== 1);
359 memcached_free(memc
);
367 char *value
= "sanford and sun";
369 memc
= memcached_create(NULL
);
371 rc
= memcached_server_add(memc
, "localhost", 0);
372 assert(rc
== MEMCACHED_SUCCESS
);
374 rc
= memcached_set(memc
, key
, strlen(key
),
375 value
, strlen(value
),
376 (time_t)10, (uint16_t)3);
377 assert(rc
== MEMCACHED_SUCCESS
);
378 memcached_quit(memc
);
380 rc
= memcached_set(memc
, key
, strlen(key
),
381 value
, strlen(value
),
382 (time_t)50, (uint16_t)9);
383 assert(rc
== MEMCACHED_SUCCESS
);
385 memcached_free(memc
);
392 char *keys
[]= {"fudge", "son", "food"};
393 size_t key_length
[]= {5, 3, 4};
397 char return_key
[MEMCACHED_MAX_KEY
];
398 size_t return_key_length
;
400 size_t return_value_length
;
402 memc
= memcached_create(NULL
);
404 rc
= memcached_server_add(memc
, "localhost", 0);
405 assert(rc
== MEMCACHED_SUCCESS
);
407 /* We need to empty the server before continueing test */
408 rc
= memcached_flush(memc
, 0);
409 assert(rc
== MEMCACHED_SUCCESS
);
411 rc
= memcached_mget(memc
, keys
, key_length
, 3);
412 assert(rc
== MEMCACHED_SUCCESS
);
414 while ((return_value
= memcached_fetch(memc
, return_key
, &return_key_length
,
415 &return_value_length
, &flags
, &rc
)) != NULL
)
417 assert(return_value
);
419 assert(!return_value
);
420 assert(return_value_length
== 0);
421 assert(rc
== MEMCACHED_NOTFOUND
);
423 for (x
= 0; x
< 3; x
++)
425 rc
= memcached_set(memc
, keys
[x
], key_length
[x
],
426 keys
[x
], key_length
[x
],
427 (time_t)50, (uint16_t)9);
428 assert(rc
== MEMCACHED_SUCCESS
);
431 rc
= memcached_mget(memc
, keys
, key_length
, 3);
432 assert(rc
== MEMCACHED_SUCCESS
);
435 while ((return_value
= memcached_fetch(memc
, return_key
, &return_key_length
,
436 &return_value_length
, &flags
, &rc
)))
438 assert(return_value
);
439 assert(rc
== MEMCACHED_SUCCESS
);
440 assert(key_length
[x
] == return_value_length
);
441 assert(!memcmp(return_value
, keys
[x
], return_value_length
));
446 memcached_free(memc
);
449 void get_stats_keys(void)
454 memcached_stat_st stat
;
457 memc
= memcached_create(NULL
);
460 list
= memcached_stat_get_keys(memc
, &stat
, &rc
);
461 assert(rc
== MEMCACHED_SUCCESS
);
462 for (ptr
= list
; *ptr
; ptr
++)
463 printf("Found key %s\n", *ptr
);
466 memcached_free(memc
);
476 memcached_stat_st
*stat
;
478 memc
= memcached_create(NULL
);
480 rc
= memcached_server_add(memc
, "localhost", 0);
481 assert(rc
== MEMCACHED_SUCCESS
);
483 stat
= memcached_stat(memc
, NULL
, &rc
);
484 assert(rc
== MEMCACHED_SUCCESS
);
486 assert(rc
== MEMCACHED_SUCCESS
);
489 for (x
= 0; x
< memcached_server_count(memc
); x
++)
491 list
= memcached_stat_get_keys(memc
, &stat
[x
], &rc
);
492 assert(rc
== MEMCACHED_SUCCESS
);
493 for (ptr
= list
; *ptr
; ptr
++)
494 printf("Found key %s\n", *ptr
);
500 memcached_free(memc
);
503 void get_stats_multiple(void)
510 memcached_stat_st
*stat
;
512 memc
= memcached_create(NULL
);
514 rc
= memcached_server_add(memc
, "localhost", 0);
515 assert(rc
== MEMCACHED_SUCCESS
);
516 rc
= memcached_server_add(memc
, "localhost", 5555);
517 assert(rc
== MEMCACHED_SUCCESS
);
519 stat
= memcached_stat(memc
, NULL
, &rc
);
520 assert(rc
== MEMCACHED_SUCCESS
);
522 assert(rc
== MEMCACHED_SUCCESS
);
525 for (x
= 0; x
< memcached_server_count(memc
); x
++)
527 list
= memcached_stat_get_keys(memc
, &stat
[x
], &rc
);
528 assert(rc
== MEMCACHED_SUCCESS
);
529 for (ptr
= list
; *ptr
; ptr
++)
530 printf("Found key %s\n", *ptr
);
536 memcached_free(memc
);
539 void add_host_test(void)
543 memcached_server_st
*servers
;
545 char servername
[]= "0.example.com";
547 memc
= memcached_create(NULL
);
549 rc
= memcached_server_add(memc
, "localhost", 0);
550 assert(rc
== MEMCACHED_SUCCESS
);
552 servers
= memcached_server_list_append(NULL
, servername
, 400, &rc
);
554 assert(1 == memcached_server_list_count(servers
));
556 for (x
= 2; x
< 20; x
++)
558 char buffer
[SMALL_STRING_LEN
];
560 snprintf(buffer
, SMALL_STRING_LEN
, "%u.example.com", 400+x
);
561 servers
= memcached_server_list_append(servers
, buffer
, 401,
563 assert(rc
== MEMCACHED_SUCCESS
);
564 assert(x
== memcached_server_list_count(servers
));
567 rc
= memcached_server_push(memc
, servers
);
568 assert(rc
== MEMCACHED_SUCCESS
);
569 rc
= memcached_server_push(memc
, servers
);
570 assert(rc
== MEMCACHED_SUCCESS
);
572 memcached_server_list_free(servers
);
573 memcached_free(memc
);
576 void add_host_test1(void)
580 memcached_server_st
*servers
;
582 char servername
[]= "0.example.com";
584 memc
= memcached_create(NULL
);
587 servers
= memcached_server_list_append(NULL
, servername
, 400, &rc
);
589 assert(1 == memcached_server_list_count(servers
));
591 for (x
= 2; x
< 20; x
++)
593 char buffer
[SMALL_STRING_LEN
];
595 snprintf(buffer
, SMALL_STRING_LEN
, "%u.example.com", 400+x
);
596 servers
= memcached_server_list_append(servers
, buffer
, 401,
598 assert(rc
== MEMCACHED_SUCCESS
);
599 assert(x
== memcached_server_list_count(servers
));
602 rc
= memcached_server_push(memc
, servers
);
603 assert(rc
== MEMCACHED_SUCCESS
);
604 rc
= memcached_server_push(memc
, servers
);
605 assert(rc
== MEMCACHED_SUCCESS
);
607 memcached_server_list_free(servers
);
608 memcached_free(memc
);
612 int main(int argc
, char *argv
[])
614 /* Clean the server before beginning testing */
630 stats_servername_test();
639 /* The multiple tests */
642 get_stats_multiple();
646 /* Clean up whatever we might have left */