X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=test%2Fchannels-udp-cornercases.c;h=0ae3755833f365ad7381958998b82c37754c44af;hb=d65d4f25019af86563cc10d00fecce82e861e0a1;hp=d70a6cd590a8c829ddf1f44951779a931f25fea7;hpb=f84fc9da827afbc7bc7bd14fa94b84ee9922e575;p=meshlink diff --git a/test/channels-udp-cornercases.c b/test/channels-udp-cornercases.c index d70a6cd5..0ae37558 100644 --- a/test/channels-udp-cornercases.c +++ b/test/channels-udp-cornercases.c @@ -40,16 +40,6 @@ static void b_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, c meshlink_channel_close(mesh, channel); } -static bool reject_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, uint16_t port, const void *data, size_t len) { - (void)mesh; - (void)channel; - (void)port; - (void)data; - (void)len; - - return false; -} - static bool accept_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, uint16_t port, const void *data, size_t len) { (void)port; @@ -89,7 +79,6 @@ int main(void) { // Set the callbacks. - meshlink_set_channel_accept_cb(a, reject_cb); meshlink_set_channel_accept_cb(b, accept_cb); // Open a channel from a to b before starting the mesh. @@ -112,7 +101,7 @@ int main(void) { // Start MeshLink and wait for the channel to become connected. start_meshlink_pair(a, b); - assert(wait_sync_flag(&channel_opened, 5)); + assert(wait_sync_flag(&channel_opened, 15)); // Re-initialize everything meshlink_channel_close(a, channel); @@ -122,7 +111,6 @@ int main(void) { reset_sync_flag(&b_closed); open_meshlink_pair(&a, &b, "channels-udp-cornercases"); - meshlink_set_channel_accept_cb(a, reject_cb); meshlink_set_channel_accept_cb(b, accept_cb); start_meshlink_pair(a, b); @@ -135,7 +123,7 @@ int main(void) { assert(channel); meshlink_set_channel_poll_cb(a, channel, poll_cb); - assert(wait_sync_flag(&channel_opened, 5)); + assert(wait_sync_flag(&channel_opened, 15)); // Send a message to b @@ -156,6 +144,17 @@ int main(void) { wait_sync_flag(&b_responded, 1); wait_sync_flag(&b_closed, 1); + // Try to send data on a closed channel + + for(int i = 0; i < 10; i++) { + if(meshlink_channel_send(a, channel, "Hello", 5) == -1) { + break; + } + + assert(i != 9); + usleep(10000); + } + // Try to create a second channel struct sync_flag channel_polled;