X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fmesh%2Ftest_mesh_tree_api.c;h=3bdb82e0fc633be7787cd1e5f3b5db49475b308f;hb=d0cf573115d89775e1546996c2e6780cac12a98c;hp=60e31bddeb76b5d48878996a9e6e9e41f27897b9;hpb=71ea5bd2d05058008e604ffd42993be9c7250e04;p=oweals%2Fgnunet.git diff --git a/src/mesh/test_mesh_tree_api.c b/src/mesh/test_mesh_tree_api.c index 60e31bdde..3bdb82e0f 100644 --- a/src/mesh/test_mesh_tree_api.c +++ b/src/mesh/test_mesh_tree_api.c @@ -35,13 +35,32 @@ #define MESH_TUNNEL_TREE_C #endif -#define VERBOSE 1 +static int failed; +static int cb_call; +static struct GNUNET_PeerIdentity *pi[10]; +static struct MeshTunnelTree *tree; -int failed; -int cb_call; -struct GNUNET_PeerIdentity *pi[10]; -struct MeshTunnelTree *tree; +/** + * Whole tree iterator. + * + * @param cls Closure (unused). + * @param peer_id Short ID of the node. + * @param parent_id Short ID of the parent node. + */ +static void +tree_cb (void *cls, GNUNET_PEER_Id peer_id, GNUNET_PEER_Id parent_id) +{ + fprintf (stdout, "%u -> %u\n", peer_id, parent_id);; +} + + +/** + * Node children iterator. + * + * @param cls Closure (unused). + * @param peer_idShort ID of the child. + */ static void cb (void *cls, GNUNET_PEER_Id peer_id) { @@ -55,6 +74,19 @@ cb (void *cls, GNUNET_PEER_Id peer_id) } +/** + * Print debug information about the state of the tree. + * + * @param tree Tree to debug-print. + */ +static void +test_debug (struct MeshTunnelTree *tree) +{ + tree_debug (tree); + tree_iterate_all (tree, &tree_cb, NULL); +} + + /** * Check if a node has all expected properties. * @@ -118,6 +150,9 @@ test_assert (GNUNET_PEER_Id peer_id, enum MeshPeerState status, } +/** + * Clean up and free all memory. + */ static void finish (void) { @@ -155,11 +190,7 @@ main (int argc, char *argv[]) failed = 0; cb_call = 0; GNUNET_log_setup ("test_mesh_api_tree", -#if VERBOSE - "DEBUG", -#else "WARNING", -#endif NULL); for (i = 0; i < 10; i++) { @@ -170,7 +201,7 @@ main (int argc, char *argv[]) } tree = tree_new (1); tree->me = tree->root; - path = path_new (4); + path = path_new (5); path->peers[0] = 1; path->peers[1] = 2; path->peers[2] = 3; @@ -179,7 +210,7 @@ main (int argc, char *argv[]) GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: Adding first path: 1 2 3 4\n"); tree_add_path (tree, path, &cb, NULL); - tree_debug (tree); + test_debug (tree); path1 = tree_get_path_to_peer (tree, 4); if (NULL == path1 || path->length != path1->length || memcmp (path->peers, path1->peers, path->length) != 0) @@ -196,7 +227,7 @@ main (int argc, char *argv[]) GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: Adding second path: 1 2 3\n"); path->length--; tree_add_path (tree, path, &cb, NULL); - tree_debug (tree); + test_debug (tree); test_assert (4, MESH_PEER_SEARCHING, 0, 2); test_assert (3, MESH_PEER_SEARCHING, 1, 2); @@ -207,7 +238,7 @@ main (int argc, char *argv[]) path->length++; path->peers[3] = 5; tree_add_path (tree, path, &cb, NULL); - tree_debug (tree); + test_debug (tree); test_assert (5, MESH_PEER_SEARCHING, 0, 2); test_assert (4, MESH_PEER_SEARCHING, 0, 2); @@ -249,7 +280,7 @@ main (int argc, char *argv[]) tree_set_status (tree, 5, MESH_PEER_READY); cb_call = 1; node = tree_del_path (tree, 5, &cb, NULL); - tree_debug (tree); + test_debug (tree); if (cb_call != 0) { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "%u callbacks missed!\n", cb_call); @@ -276,7 +307,7 @@ main (int argc, char *argv[]) cb_call = 1; tree_find_peer (tree, 4)->status = MESH_PEER_READY; tree_add_path (tree, path, &cb, NULL); - tree_debug (tree); + test_debug (tree); if (cb_call != 0) { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "%u callbacks missed!\n", cb_call); @@ -309,7 +340,7 @@ main (int argc, char *argv[]) GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: Adding first path: 2 1 3\n"); tree_add_path (tree, path, &cb, NULL); - tree_debug (tree); + test_debug (tree); test_assert (3, MESH_PEER_SEARCHING, 0, 3); test_assert (1, MESH_PEER_RELAY, 1, 0); @@ -321,7 +352,7 @@ main (int argc, char *argv[]) path->peers[4] = 3; path->length = 5; tree_add_path (tree, path, &cb, NULL); - tree_debug (tree); + test_debug (tree); test_assert (3, MESH_PEER_SEARCHING, 0, 4); test_assert (5, MESH_PEER_RELAY, 1, 4); @@ -341,7 +372,7 @@ main (int argc, char *argv[]) path->peers[7] = 3; path->length = 8; tree_add_path (tree, path, &cb, NULL); - tree_debug (tree); + test_debug (tree); test_assert (3, MESH_PEER_SEARCHING, 0, 7); test_assert (5, MESH_PEER_RELAY, 1, 7); @@ -357,7 +388,7 @@ main (int argc, char *argv[]) path->peers[2] = 3; path->length = 3; tree_add_path (tree, path, &cb, NULL); - tree_debug (tree); + test_debug (tree); test_assert (3, MESH_PEER_SEARCHING, 0, 3); test_assert (1, MESH_PEER_RELAY, 1, 0);