X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=test%2Fchannels-fork.c;h=9168168c8db54ab237d0ed0c992c582e7e2cee24;hb=fe5563f92021618b4a8b41e412c73d8364fcaf6e;hp=e0db621aee94b55ab2472c87a39ddce6dc1d1821;hpb=9a2520c36431a8a5fd90451e97f488c22f4decc5;p=meshlink diff --git a/test/channels-fork.c b/test/channels-fork.c index e0db621a..9168168c 100644 --- a/test/channels-fork.c +++ b/test/channels-fork.c @@ -1,4 +1,9 @@ #define _GNU_SOURCE 1 + +#ifdef NDEBUG +#undef NDEBUG +#endif + #include #include #include @@ -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_add_address(mesh, "localhost")); 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_add_address(mesh, "localhost")); 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);