]> git.meshlink.io Git - meshlink/blobdiff - test/blackbox/run_blackbox_tests/test_cases.c
Add meshlink_get_all_nodes_by_last_reachable API, meshlink_get_node_reachability...
[meshlink] / test / blackbox / run_blackbox_tests / test_cases.c
index 942c72c60fcbadd8a2a43fd68aef66b04f6f1736..c07edec6978114a478e71e2ea22cc10e597a1ec1 100644 (file)
     with this program; if not, write to the Free Software Foundation, Inc.,
     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
+
+#ifdef NDEBUG
+#undef NDEBUG
+#endif
+
 #include <stdlib.h>
 #include <stdarg.h>
 #include <setjmp.h>
@@ -85,6 +90,8 @@ static black_box_state_t test_meta_conn_5_state = {
 };
 
 int black_box_group0_setup(void **state) {
+       (void)state;
+
        const char *nodes[] = { "peer", "relay", "nut"};
        int num_nodes = sizeof(nodes) / sizeof(nodes[0]);
 
@@ -96,6 +103,8 @@ int black_box_group0_setup(void **state) {
 }
 
 int black_box_group0_teardown(void **state) {
+       (void)state;
+
        PRINT_TEST_CASE_MSG("Destroying Containers\n");
        destroy_containers();
 
@@ -103,6 +112,8 @@ int black_box_group0_teardown(void **state) {
 }
 
 int black_box_all_nodes_setup(void **state) {
+       (void)state;
+
        const char *nodes[] = { "peer" };
        int num_nodes = sizeof(nodes) / sizeof(nodes[0]);
 
@@ -117,7 +128,7 @@ static bool meta_conn01_conn;
 static bool meta_conn01_closed;
 static bool meta_conn01_reconn;
 
-static void meta_conn01_cb(mesh_event_payload_t payload) {
+static bool meta_conn01_cb(mesh_event_payload_t payload) {
        char event_node_name[][10] = {"RELAY", "PEER", "NUT"};
        fprintf(stderr, "%s : ", event_node_name[payload.client_id]);
 
@@ -137,7 +148,12 @@ static void meta_conn01_cb(mesh_event_payload_t payload) {
        case META_RECONN_SUCCESSFUL :
                meta_conn01_reconn = true;
                break;
+
+       default:
+               break;
        }
+
+       return true;
 }
 
 /* Execute Meta-connections Test Case # 1 - re-connection to peer after disconnection when
@@ -159,8 +175,6 @@ static void test_case_meta_conn_01(void **state) {
 */
 static bool test_steps_meta_conn_01(void) {
        char *invite_peer, *invite_nut;
-       bool result = false;
-       int i;
        char *import;
 
        import = mesh_event_sock_create(eth_if_name);
@@ -188,18 +202,19 @@ static bool test_steps_meta_conn_01(void) {
        PRINT_TEST_CASE_MSG("Waiting for peer to be re-connected\n");
        wait_for_event(meta_conn01_cb, 60);
 
-       assert_int_equal(meta_conn01_reconn, true);
-
+       mesh_event_destroy();
        free(invite_peer);
        free(invite_nut);
 
+       assert_int_equal(meta_conn01_reconn, true);
+
        return true;
 }
 
 
 static bool meta_conn02_conn;
 
-static void meta_conn02_cb(mesh_event_payload_t payload) {
+static bool meta_conn02_cb(mesh_event_payload_t payload) {
        char event_node_name[][10] = {"RELAY", "PEER", "NUT"};
        fprintf(stderr, "%s : ", event_node_name[payload.client_id]);
 
@@ -212,11 +227,12 @@ static void meta_conn02_cb(mesh_event_payload_t payload) {
        case NODE_STARTED           :
                fprintf(stderr, "Node started\n");
                break;
-       }
 
-       if(payload.payload_length) {
-               fprintf(stderr, " %s\n", (char *)payload.payload);
+       default:
+               break;
        }
+
+       return true;
 }
 /* Execute Meta-connections Test Case # 2 - re-connection to peer via third node
     after changing IP of NUT and peer */
@@ -235,8 +251,6 @@ static void test_case_meta_conn_02(void **state) {
 */
 static bool test_steps_meta_conn_02(void) {
        char *invite_peer, *invite_nut;
-       bool result = false;
-       int i;
        char *import;
 
        import = mesh_event_sock_create(eth_if_name);
@@ -260,23 +274,21 @@ static bool test_steps_meta_conn_02(void) {
        wait_for_event(meta_conn02_cb, 5);
 
        PRINT_TEST_CASE_MSG("Waiting for peer to be connected with NUT\n");
+       wait_for_event(meta_conn02_cb, 60);
 
-       if(!wait_for_event(meta_conn02_cb, 60)) {
-               return false;
-       }
-
-       result = meta_conn02_conn;
-
+       mesh_event_destroy();
        free(invite_peer);
        free(invite_nut);
 
-       return result;
+       assert_int_equal(meta_conn02_conn, true);
+
+       return true;
 }
 
 static bool meta_conn03_result;
 static bool meta_conn03_conn;
 
-static void meta_conn03_cb(mesh_event_payload_t payload) {
+static bool meta_conn03_cb(mesh_event_payload_t payload) {
        char event_node_name[][10] = {"RELAY", "PEER", "NUT"};
        fprintf(stderr, "%s : ", event_node_name[payload.client_id]);
 
@@ -299,7 +311,12 @@ static void meta_conn03_cb(mesh_event_payload_t payload) {
                fprintf(stderr, "Reconnected\n");
                meta_conn03_result = true;
                break;
+
+       default:
+               break;
        }
+
+       return true;
 }
 /* Execute Meta-connections Test Case # 3 - re-connection to peer via third node
     after changing IP of peer */
@@ -318,8 +335,6 @@ static void test_case_meta_conn_03(void **state) {
 */
 static bool test_steps_meta_conn_03(void) {
        char *invite_peer, *invite_nut;
-       bool result = false;
-       int i;
        char *import;
 
        import = mesh_event_sock_create(eth_if_name);
@@ -338,21 +353,25 @@ static bool test_steps_meta_conn_03(void) {
 
        PRINT_TEST_CASE_MSG("Changing IP address of PEER container\n");
        change_ip(1);
+       sleep(3);
        node_sim_in_container_event("peer", "1", NULL, PEER_ID, import);
        wait_for_event(meta_conn03_cb, 5);
        PRINT_TEST_CASE_MSG("Waiting for peer to be re-connected\n");
        wait_for_event(meta_conn03_cb, 5);
-       result = meta_conn03_result;
+
+       mesh_event_destroy();
        free(invite_peer);
        free(invite_nut);
 
-       return result;
+       assert_int_equal(meta_conn03_result, true);
+
+       return true;
 }
 
 static char *invite_peer = NULL;
 static bool meta_conn04 = false;
 
-static void meta_conn04_cb(mesh_event_payload_t payload) {
+static bool meta_conn04_cb(mesh_event_payload_t payload) {
        char event_node_name[][10] = {"PEER", "NUT"};
        fprintf(stderr, "%s : ", event_node_name[payload.client_id]);
 
@@ -371,7 +390,13 @@ static void meta_conn04_cb(mesh_event_payload_t payload) {
        case NODE_STARTED           :
                fprintf(stderr, "Node started\n");
                break;
+
+       default                     :
+               fprintf(stderr, "Undefined mesh event\n");
+               break;
        }
+
+       return true;
 }
 
 /* Execute Meta-connections Test Case # 4 - re-connection to peer after changing IP of
@@ -391,7 +416,6 @@ static void test_case_meta_conn_04(void **state) {
     NUT is first disconnected from peer then automatically re-connected to peer
 */
 static bool test_steps_meta_conn_04(void) {
-       bool result = false;
        char *import;
 
        import = mesh_event_sock_create(eth_if_name);
@@ -401,18 +425,15 @@ static bool test_steps_meta_conn_04(void) {
        PRINT_TEST_CASE_MSG("Waiting for NUT to generate invitation to PEER\n");
        wait_for_event(meta_conn04_cb, 5);
 
-       if(!invite_peer) {
-               return false;
-       }
+       assert(invite_peer);
 
        PRINT_TEST_CASE_MSG("Running PEER node in the container\n");
+       fprintf(stderr, "inv: %s\n", invite_peer);
        node_sim_in_container_event("peer", "1", invite_peer, "0", import);
        wait_for_event(meta_conn04_cb, 5);
        PRINT_TEST_CASE_MSG("Waiting for peer to be connected with NUT\n");
 
-       if(!wait_for_event(meta_conn04_cb, 60)) {
-               return false;
-       }
+       assert(wait_for_event(meta_conn04_cb, 60));
 
        PRINT_TEST_CASE_MSG("Changing IP address of NUT container\n");
        change_ip(1);
@@ -426,18 +447,21 @@ static bool test_steps_meta_conn_04(void) {
 
        PRINT_TEST_CASE_MSG("Waiting for peer to be re-connected\n");
        wait_for_event(meta_conn04_cb, 5);
-       result = meta_conn04;
 
+       mesh_event_destroy();
        free(invite_peer);
        free(import);
-       return result;
+
+       assert_int_equal(meta_conn04, true);
+
+       return true;
 }
 
 static char *invitation = NULL;
 
 static bool meta_conn05 = false;
 
-static void meta_conn05_cb(mesh_event_payload_t payload) {
+static bool meta_conn05_cb(mesh_event_payload_t payload) {
        char event_node_name[][10] = {"PEER", "NUT"};
        fprintf(stderr, "%s : ", event_node_name[payload.client_id]);
 
@@ -454,7 +478,12 @@ static void meta_conn05_cb(mesh_event_payload_t payload) {
        case NODE_STARTED           :
                fprintf(stderr, "Node started\n");
                break;
+
+       default:
+               break;
        }
+
+       return true;
 }
 
 /* Execute Meta-connections Test Case # 5 - re-connection to peer after changing IP of peer */
@@ -472,7 +501,6 @@ static void test_case_meta_conn_05(void **state) {
     NUT is first disconnected from peer then automatically re-connected to peer
 */
 static bool test_steps_meta_conn_05(void) {
-       bool result = false;
        char *import;
 
        import = mesh_event_sock_create(eth_if_name);
@@ -481,16 +509,12 @@ static bool test_steps_meta_conn_05(void) {
 
        wait_for_event(meta_conn05_cb, 5);
 
-       if(!invitation) {
-               return false;
-       }
+       assert(invitation);
 
        node_sim_in_container_event("peer", "1", invitation, "0", import);
        wait_for_event(meta_conn05_cb, 5);
 
-       if(!wait_for_event(meta_conn05_cb, 5)) {
-               return false;
-       }
+       assert(wait_for_event(meta_conn05_cb, 5));
 
        change_ip(0);
        meta_conn05 = false;
@@ -498,11 +522,14 @@ static bool test_steps_meta_conn_05(void) {
        wait_for_event(meta_conn05_cb, 5);
        PRINT_TEST_CASE_MSG("Waiting for peer to be re-connected\n");
        wait_for_event(meta_conn05_cb, 5);
-       result = meta_conn05;
 
+       mesh_event_destroy();
        free(invitation);
        free(import);
-       return result;
+
+       assert_int_equal(meta_conn05, true);
+
+       return true;
 }
 
 int test_meta_conn(void) {