]> git.meshlink.io Git - meshlink/blobdiff - test/utils.h
Add reset_sync_flag().
[meshlink] / test / utils.h
index 488721dd37af86748e9642879cad1da8588725d9..2a56ed83a0b24dedaf59340cb66719ef28cbfe91 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef MESHLINK_TEST_UTILS_H
 #define MESHLINK_TEST_UTILS_H
 
+#include <assert.h>
+#include <time.h>
+
 #include "../src/meshlink.h"
 
 // Simple synchronisation between threads
@@ -10,7 +13,10 @@ struct sync_flag {
        bool flag;
 };
 
-extern void set_sync_flag(struct sync_flag *s);
+extern void init_sync_flag(struct sync_flag *s);
+extern void set_sync_flag(struct sync_flag *s, bool value);
+extern void reset_sync_flag(struct sync_flag *s);
+extern bool check_sync_flag(struct sync_flag *s);
 extern bool wait_sync_flag(struct sync_flag *s, int seconds);
 
 /// Create a pair of meshlink instances that are already joined together.
@@ -23,16 +29,32 @@ extern void start_meshlink_pair(meshlink_handle_t *a, meshlink_handle_t *b);
 extern void stop_meshlink_pair(meshlink_handle_t *a, meshlink_handle_t *b);
 
 /// Stop and cleanup a pair of meshlink instances.
-extern void close_meshlink_pair(meshlink_handle_t *a, meshlink_handle_t *b, const char *prefix);
-
-#define assert_after(cond, timeout) do {\
-       for(int i = 0; i++ <= timeout;) {\
-               if(cond)\
-                       break;\
-               if(i == timeout)\
-                       assert(cond);\
-               sleep(1);\
-       }\
-} while(0);
+extern void close_meshlink_pair(meshlink_handle_t *a, meshlink_handle_t *b);
+
+/// Link two meshlink instances.
+extern void link_meshlink_pair(meshlink_handle_t *a, meshlink_handle_t *b);
+
+/// Default log callback
+extern void log_cb(meshlink_handle_t *mesh, meshlink_log_level_t level, const char *text);
+
+#define assert_after(cond, timeout)\
+       do {\
+               for(int i = 0; i++ <= timeout;) {\
+                       if(cond)\
+                               break;\
+                       if(i == timeout)\
+                               assert(cond);\
+                       sleep(1);\
+               }\
+       } while(0)
 
 #endif
+
+/// Compare two timespec values.
+static inline bool timespec_lt(const struct timespec *a, const struct timespec *b) {
+       if(a->tv_sec == b->tv_sec) {
+               return a->tv_nsec < b->tv_nsec;
+       } else {
+               return a->tv_sec < b->tv_sec;
+       }
+}