+#ifdef NDEBUG
+#undef NDEBUG
+#endif
+
#include <assert.h>
#include <stdio.h>
#include <unistd.h>
(void)argc;
(void)argv;
+ meshlink_set_log_cb(NULL, MESHLINK_DEBUG, log_cb);
+
// Start two new meshlink instance.
meshlink_handle_t *mesh_a;
// 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);
}