X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=test%2Fchannels-no-partial.c;h=43792be39ec7a671034995cdef47a94e61777457;hb=bc2e55e940e45748a49f1a7eb44b156917fca469;hp=8216a5568bb9260f4b9e862fba3478732f82983b;hpb=83c20878a6ef6e1e3a1abad17961e02137f16ab5;p=meshlink diff --git a/test/channels-no-partial.c b/test/channels-no-partial.c index 8216a556..43792be3 100644 --- a/test/channels-no-partial.c +++ b/test/channels-no-partial.c @@ -1,3 +1,7 @@ +#ifdef NDEBUG +#undef NDEBUG +#endif + #include #include #include @@ -22,6 +26,8 @@ int main(int argc, char *argv[]) { (void)argc; (void)argv; + meshlink_set_log_cb(NULL, MESHLINK_DEBUG, log_cb); + // Start two new meshlink instance. meshlink_handle_t *mesh_a; @@ -62,14 +68,25 @@ int main(int argc, char *argv[]) { // Restart a to ensure it gets to flush the channel send queue. - meshlink_start(mesh_a); + assert(meshlink_start(mesh_a)); assert_after(!meshlink_channel_get_sendq(mesh_a, channel), 30); assert(meshlink_channel_send(mesh_a, channel, buf, 512) == 512); - // Clean up. + // Check that we can change the NO_PARTIAL flag + + assert_after(!meshlink_channel_get_sendq(mesh_a, channel), 30); + meshlink_set_channel_sndbuf(mesh_a, channel, 256); + assert(meshlink_channel_send(mesh_a, channel, buf, 257) == -1); + meshlink_set_channel_flags(mesh_a, channel, 0); + assert(meshlink_channel_send(mesh_a, channel, buf, 257) == 256); + + assert_after(!meshlink_channel_get_sendq(mesh_a, channel), 30); + meshlink_set_channel_flags(mesh_a, channel, MESHLINK_CHANNEL_NO_PARTIAL); + assert(meshlink_channel_send(mesh_a, channel, buf, 257) == -1); + assert(meshlink_channel_send(mesh_a, channel, buf, 256) == 256); - close_meshlink_pair(mesh_a, mesh_b, "channels_no_partial"); + // Clean up. - return 0; + close_meshlink_pair(mesh_a, mesh_b); }