Updated test harness, merged Trond's fix for OSX hang.
[awesomized/libmemcached] / tests / test.h
index 4e695d26ca468ca637f596155b0de1571ef0613b..28d29a41c79d118e47ab741c3f198baf6776b2ae 100644 (file)
@@ -1,24 +1,47 @@
 /*
   Structures for generic tests.
 */
-#include <memcached.h>
-#include "../lib/common.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
 
+#include <libmemcached/memcached.h>
+#include <stdio.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_SKIPPED,
+  TEST_MAXIMUM_RETURN /* Always add new error code before */
+} test_return_t;
+
 struct test_st {
-  char *name;
+  const char *name;
   unsigned int requires_flush;
-  uint8_t (*function)(memcached_st *memc);
+  test_return_t (*function)(memcached_st *memc);
 };
 
 struct collection_st {
-  char *name;
+  const char *name;
   memcached_return (*pre)(memcached_st *memc);
   memcached_return (*post)(memcached_st *memc);
   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