Merge.
[awesomized/libmemcached] / tests / test.h
index 4e695d26ca468ca637f596155b0de1571ef0613b..77adaf539c21a06ce085bdf66cbd9b4962e34d34 100644 (file)
@@ -1,16 +1,28 @@
 /*
   Structures for generic tests.
 */
-#include <memcached.h>
-#include "../lib/common.h"
+#ifdef __cplusplus
+extern "C" {
 
+#endif
+#include <libmemcached/memcached.h>
+#include "../libmemcached/common.h"
+
+typedef struct world_st world_st;
 typedef struct collection_st collection_st;
 typedef struct test_st test_st;
 
+typedef enum {
+  TEST_SUCCESS= 0, /* Backwards compatibility */
+  TEST_FAILURE,
+  TEST_MEMORY_ALLOCATION_FAILURE,
+  TEST_MAXIMUM_RETURN /* Always add new error code before */
+} test_return;
+
 struct test_st {
   char *name;
   unsigned int requires_flush;
-  uint8_t (*function)(memcached_st *memc);
+  test_return (*function)(memcached_st *memc);
 };
 
 struct collection_st {
@@ -20,5 +32,15 @@ struct collection_st {
   test_st *tests;
 };
 
+struct world_st {
+  collection_st *collections;
+  void *(*create)(void);
+  void (*destroy)(void *collection_object);
+};
+
 /* How we make all of this work :) */
-collection_st *gets_collections(void);
+void get_world(world_st *world);
+
+#ifdef __cplusplus
+}
+#endif