X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=test%2Fblacklist.c;fp=test%2Fblacklist.c;h=5fa0f98deebd442c825eb384e3dbe7a14a53de7f;hb=a23ddd4f4e273b2ed68fe173b4faa69aadc98756;hp=585c1526cc123c5c23b067ca4d8b3b733e61c429;hpb=8ccad64979db3f96e935c6fbfaf9733dafe2ee66;p=meshlink diff --git a/test/blacklist.c b/test/blacklist.c index 585c1526..5fa0f98d 100644 --- a/test/blacklist.c +++ b/test/blacklist.c @@ -19,6 +19,7 @@ static struct sync_flag bar_connected; static struct sync_flag bar_disconnected; +static struct sync_flag bar_blacklisted; static struct sync_flag baz_connected; static void foo_status_cb(meshlink_handle_t *mesh, meshlink_node_t *node, bool reachable) { @@ -45,6 +46,14 @@ static void baz_status_cb(meshlink_handle_t *mesh, meshlink_node_t *node, bool r } } +static void bar_blacklisted_cb(meshlink_handle_t *mesh, meshlink_node_t *node) { + (void)mesh; + + if(!strcmp(node->name, "foo")) { + set_sync_flag(&bar_blacklisted, true); + } +} + int main(void) { init_sync_flag(&bar_connected); init_sync_flag(&bar_disconnected); @@ -166,11 +175,15 @@ int main(void) { // Blacklist bar + meshlink_set_blacklisted_cb(mesh[1], bar_blacklisted_cb); + set_sync_flag(&bar_disconnected, false); assert(meshlink_blacklist(mesh[0], meshlink_get_node(mesh[0], name[1]))); assert(wait_sync_flag(&bar_disconnected, 5)); assert(meshlink_get_node_blacklisted(mesh[0], meshlink_get_node(mesh[0], name[1]))); + assert(wait_sync_flag(&bar_blacklisted, 10)); + // Whitelist bar set_sync_flag(&bar_connected, false);