Updated tests to use new macro (less assert()).
[m6w6/libmemcached] / tests / test.h
index 8bc4d7a9ab1e329d1650bb720e389dbea4759ff1..e786e9eae35fb321e8415d3977107d1226ef2297 100644 (file)
@@ -3,29 +3,48 @@
 */
 #ifdef __cplusplus
 extern "C" {
-
 #endif
-#include <memcached.h>
-#include "../lib/common.h"
 
+#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);
+
+#define test_truth(A) if (! (A)) {fprintf(stderr, "%d", __LINE__); return TEST_FAILURE;}
+#define test_false(A) if ((A)) {fprintf(stderr, "%d", __LINE__); return TEST_FAILURE;}
+#define test_strcmp(A,B) if (strcmp((A), (B))) {fprintf(stderr, "%d", __LINE__); return TEST_FAILURE;}
 
 #ifdef __cplusplus
 }