]> git.meshlink.io Git - meshlink/blobdiff - test/utils.h
Add reset_sync_flag().
[meshlink] / test / utils.h
index 9fb9b8d264459aac4f552e9129ee34e14552a364..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,7 +29,13 @@ 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);
+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 {\
@@ -35,4 +47,14 @@ extern void close_meshlink_pair(meshlink_handle_t *a, meshlink_handle_t *b, cons
                        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;
+       }
+}