X-Git-Url: http://git.meshlink.io/?p=meshlink;a=blobdiff_plain;f=test%2Fimport-export.c;h=5d37146fd09502d8711f70a592033124462c8879;hp=b3d52da674599bbec7da4122a6770e800018ec41;hb=3febbb4453f5c6b0286e7e3c68a5dbcec975b6fd;hpb=9a2520c36431a8a5fd90451e97f488c22f4decc5 diff --git a/test/import-export.c b/test/import-export.c index b3d52da6..5d37146f 100644 --- a/test/import-export.c +++ b/test/import-export.c @@ -1,3 +1,7 @@ +#ifdef NDEBUG +#undef NDEBUG +#endif + #include #include #include @@ -39,8 +43,8 @@ int main() { // Import and export both side's data - meshlink_add_address(mesh1, "localhost"); - meshlink_add_address(mesh2, "localhost"); + assert(meshlink_set_canonical_address(mesh1, meshlink_get_self(mesh1), "localhost", NULL)); + assert(meshlink_set_canonical_address(mesh2, meshlink_get_self(mesh2), "localhost", NULL)); char *data = meshlink_export(mesh1); assert(data); @@ -51,9 +55,25 @@ int main() { data = meshlink_export(mesh2); assert(data); + assert(meshlink_import(mesh1, data)); + + // Check that importing twice is fine assert(meshlink_import(mesh1, data)); free(data); + // Check that importing garbage is not fine + assert(!meshlink_import(mesh1, "Garbage\n")); + + // Check that foo knows bar, but that it is not reachable. + + time_t last_reachable; + time_t last_unreachable; + meshlink_node_t *bar = meshlink_get_node(mesh1, "bar"); + assert(bar); + assert(!meshlink_get_node_reachability(mesh1, bar, &last_reachable, &last_unreachable)); + assert(!last_reachable); + assert(!last_unreachable); + // Start both instances meshlink_set_node_status_cb(mesh1, status_cb); @@ -76,6 +96,24 @@ int main() { assert(pmtu); + // Check that we now have reachability information + + assert(meshlink_get_node_reachability(mesh1, bar, &last_reachable, &last_unreachable)); + assert(last_reachable); + assert(!last_unreachable); + + // Stop the meshes. + + meshlink_stop(mesh1); + meshlink_stop(mesh2); + + // Check that bar is no longer reachable + + assert(!meshlink_get_node_reachability(mesh1, bar, &last_reachable, &last_unreachable)); + assert(last_reachable); + assert(last_unreachable); + assert(last_reachable <= last_unreachable); + // Clean up. meshlink_close(mesh2);