]> git.meshlink.io Git - meshlink/blobdiff - test/channels-fork.c
Add meshlink_add_invitation_address(), deprecate meshlink_add_address().
[meshlink] / test / channels-fork.c
index e0db621aee94b55ab2472c87a39ddce6dc1d1821..f331d0d2d4407c478cb7c5f2f81001e32bb2a7dd 100644 (file)
@@ -1,4 +1,9 @@
 #define _GNU_SOURCE 1
+
+#ifdef NDEBUG
+#undef NDEBUG
+#endif
+
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
@@ -16,6 +21,7 @@
 #include "../src/meshlink.h"
 
 static struct sync_flag bar_responded;
+static struct sync_flag foo_connected;
 static struct sync_flag foo_gone;
 
 static void foo_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
@@ -39,7 +45,7 @@ static void bar_status_cb(meshlink_handle_t *mesh, meshlink_node_t *node, bool r
 static void bar_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
        // Echo the data back.
        if(len) {
-               meshlink_channel_send(mesh, channel, data, len);
+               assert(meshlink_channel_send(mesh, channel, data, len) == (ssize_t)len);
        } else {
                meshlink_channel_close(mesh, channel);
        }
@@ -62,6 +68,7 @@ static bool accept_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, uint
 
        meshlink_set_node_status_cb(mesh, bar_status_cb);
        meshlink_set_channel_receive_cb(mesh, channel, bar_receive_cb);
+       set_sync_flag(&foo_connected, true);
 
        if(data) {
                bar_receive_cb(mesh, channel, data, len);
@@ -89,7 +96,7 @@ static int main1(int rfd, int wfd) {
 
        meshlink_enable_discovery(mesh, false);
 
-       meshlink_add_address(mesh, "localhost");
+       assert(meshlink_set_canonical_address(mesh, meshlink_get_self(mesh), "localhost", NULL));
 
        char *data = meshlink_export(mesh);
        assert(data);
@@ -145,7 +152,7 @@ static int main2(int rfd, int wfd) {
 
        meshlink_enable_discovery(mesh, false);
 
-       meshlink_add_address(mesh, "localhost");
+       assert(meshlink_set_canonical_address(mesh, meshlink_get_self(mesh), "localhost", NULL));
 
        char *data = meshlink_export(mesh);
        assert(data);
@@ -166,6 +173,7 @@ static int main2(int rfd, int wfd) {
 
        assert(meshlink_start(mesh));
 
+       assert(wait_sync_flag(&foo_connected, 20));
        assert(wait_sync_flag(&foo_gone, 20));
 
        meshlink_close(mesh);