Added test for get_by_key, set_by_key C++ tests
[m6w6/libmemcached] / tests / plus.cpp
1 /*
2 C++ interface test
3 */
4 #include <assert.h>
5 #include <memcached.hh>
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <string.h>
9 #include <sys/time.h>
10 #include <sys/types.h>
11 #include <sys/stat.h>
12 #include <unistd.h>
13 #include <time.h>
14 #include "server.h"
15
16 #include "test.h"
17
18 uint8_t basic_test(memcached_st *memc)
19 {
20 Memcached foo;
21 char *value_set= "This is some data";
22 char *value;
23 size_t value_length;
24
25 foo.set("mine", value_set, strlen(value_set));
26 value= foo.get("mine", &value_length);
27
28 assert((memcmp(value, value_set, value_length) == 0));
29
30 return 0;
31 }
32 uint8_t basic_master_key_test(memcached_st *memc)
33 {
34 Memcached foo;
35 char *value_set= "Data for server A";
36 char *master_key_a= "server-a";
37 char *master_key_b= "server-b";
38 char *key= "xyz";
39 char *value;
40 size_t value_length;
41
42 foo.set_by_key(master_key_a, key, value_set, strlen(value_set));
43 value= foo.get_by_key(master_key_a, key, &value_length);
44
45 assert((memcmp(value, value_set, value_length) == 0));
46
47 value= foo.get_by_key(master_key_b, key, &value_length);
48 assert((memcmp(value, value_set, value_length) == 0));
49
50 return 0;
51 }
52
53
54 test_st tests[] ={
55 {"basic", 0, basic_test },
56 {"basic_master_key", 0, basic_master_key_test },
57 {0, 0, 0}
58 };
59
60 collection_st collection[] ={
61 {"block", 0, 0, tests},
62 {0, 0, 0, 0}
63 };
64
65 #define SERVERS_TO_CREATE 1
66
67 void *world_create(void)
68 {
69 unsigned int x;
70 memcached_server_st *servers;
71 server_startup_st *construct;
72
73 construct= (server_startup_st *)malloc(sizeof(server_startup_st));
74 memset(construct, 0, sizeof(server_startup_st));
75
76 construct->count= SERVERS_TO_CREATE;
77 server_startup(construct);
78
79 return construct;
80 }
81
82 void world_destroy(void *p)
83 {
84 server_startup_st *construct= (server_startup_st *)p;
85 memcached_server_st *servers= (memcached_server_st *)construct->servers;
86 memcached_server_list_free(servers);
87
88 server_shutdown(construct);
89 free(construct);
90 }
91
92 void get_world(world_st *world)
93 {
94 world->collections= collection;
95 world->create= world_create;
96 world->destroy= world_destroy;
97 }