diff --git a/app/test/test.c b/app/test/test.c
index 72768c8854..fe40a91f97 100644
--- a/app/test/test.c
+++ b/app/test/test.c
@@ -213,24 +213,37 @@ unit_test_suite_count_tcs_on_setup_fail(struct unit_test_suite *suite,
 		unsigned int *failed)
 {
 	struct unit_test_case tc;
-
-	tc = suite->unit_test_cases[*total];
-	while (tc.testcase) {
-		if (!tc.enabled || test_success == TEST_SKIPPED)
-			(*skipped)++;
-		else
-			(*failed)++;
-		(*total)++;
-		tc = suite->unit_test_cases[*total];
+	int i, tc_count = 0;
+
+	if (suite->parent_testsuite) {
+		for (i = 0; suite->unit_test_suites[i].suite_name != NULL; i++)
+			unit_test_suite_count_tcs_on_setup_fail(
+				&suite->unit_test_suites[i],
+				test_success, total,
+				skipped, failed);
+	} else {
+		tc = suite->unit_test_cases[tc_count];
+		while (tc.testcase) {
+			if (!tc.enabled ||
+			test_success == TEST_SKIPPED)
+				(*skipped)++;
+			else
+				(*failed)++;
+			tc_count++;
+			tc = suite->unit_test_cases[tc_count];
+		}
+		*total += tc_count;
 	}
 }
 
 int
 unit_test_suite_runner(struct unit_test_suite *suite)
 {
-	int test_success;
+	int test_success, i, ret;
 	unsigned int total = 0, executed = 0, skipped = 0;
 	unsigned int succeeded = 0, failed = 0, unsupported = 0;
+	unsigned int sub_ts_succeeded = 0, sub_ts_failed = 0;
+	unsigned int sub_ts_skipped = 0, sub_ts_total = 0;
 	const char *status;
 	struct unit_test_case tc;
 
@@ -255,63 +268,80 @@ unit_test_suite_runner(struct unit_test_suite *suite)
 
 	printf(" + ------------------------------------------------------- +\n");
 
-	tc = suite->unit_test_cases[total];
-	while (tc.testcase) {
-		if (!tc.enabled) {
-			skipped++;
-			total++;
-			tc = suite->unit_test_cases[total];
-			continue;
-		} else {
-			executed++;
+	if (suite->parent_testsuite) {
+		for (i = 0; suite->unit_test_suites[i].suite_name != NULL; i++) {
+			ret = unit_test_suite_runner(&suite->unit_test_suites[i]);
+			if (ret == TEST_SUCCESS)
+				sub_ts_succeeded++;
+			else if (ret == TEST_SKIPPED)
+				sub_ts_skipped++;
+			else
+				sub_ts_failed++;
+			sub_ts_total++;
 		}
+	} else {
+		tc = suite->unit_test_cases[total];
+		while (tc.testcase) {
+			if (!tc.enabled) {
+				skipped++;
+				total++;
+				tc = suite->unit_test_cases[total];
+				continue;
+			} else {
+				executed++;
+			}
+
+			/* run test case setup */
+			if (tc.setup)
+				test_success = tc.setup();
+			else
+				test_success = TEST_SUCCESS;
+
+			if (test_success == TEST_SUCCESS) {
+				/* run the test case */
+				test_success = tc.testcase();
+				if (test_success == TEST_SUCCESS)
+					succeeded++;
+				else if (test_success == TEST_SKIPPED)
+					skipped++;
+				else if (test_success == -ENOTSUP)
+					unsupported++;
+				else
+					failed++;
+			} else if (test_success == -ENOTSUP) {
+				unsupported++;
+			} else {
+				failed++;
+			}
 
-		/* run test case setup */
-		if (tc.setup)
-			test_success = tc.setup();
-		else
-			test_success = TEST_SUCCESS;
+			/* run the test case teardown */
+			if (tc.teardown)
+				tc.teardown();
 
-		if (test_success == TEST_SUCCESS) {
-			/* run the test case */
-			test_success = tc.testcase();
 			if (test_success == TEST_SUCCESS)
-				succeeded++;
+				status = "succeeded";
 			else if (test_success == TEST_SKIPPED)
-				skipped++;
+				status = "skipped";
 			else if (test_success == -ENOTSUP)
-				unsupported++;
+				status = "unsupported";
 			else
-				failed++;
-		} else if (test_success == -ENOTSUP) {
-			unsupported++;
-		} else {
-			failed++;
-		}
-
-		/* run the test case teardown */
-		if (tc.teardown)
-			tc.teardown();
-
-		if (test_success == TEST_SUCCESS)
-			status = "succeeded";
-		else if (test_success == TEST_SKIPPED)
-			status = "skipped";
-		else if (test_success == -ENOTSUP)
-			status = "unsupported";
-		else
-			status = "failed";
+				status = "failed";
 
-		printf(" + TestCase [%2d] : %s %s\n", total, tc.name, status);
+			printf(" + TestCase [%2d] : %s %s\n", total,
+					tc.name, status);
 
-		total++;
-		tc = suite->unit_test_cases[total];
+			total++;
+			tc = suite->unit_test_cases[total];
+		}
 	}
 
 	/* Run test suite teardown */
 	if (suite->teardown)
 		suite->teardown();
 
+	if (suite->parent_testsuite)
+		goto parent_suite_summary;
+
 	goto suite_summary;
 
 suite_summary:
@@ -332,4 +362,21 @@ unit_test_suite_runner(struct unit_test_suite *suite)
 	if (total == skipped)
 		return TEST_SKIPPED;
 	return TEST_SUCCESS;
+
+parent_suite_summary:
+	printf(" + ------------------------------------------------------- +\n");
+	printf(" + Parent Test Suite Summary :  %s\n", suite->suite_name);
+	printf(" + Sub Testsuites Total :       %2d\n", sub_ts_total);
+	printf(" + Sub Testsuites Skipped :     %2d\n", sub_ts_skipped);
+	printf(" + Sub Testsuites Passed :      %2d\n", sub_ts_succeeded);
+	printf(" + Sub Testsuites Failed :      %2d\n", sub_ts_failed);
+	printf(" + ------------------------------------------------------- +\n");
+
+	last_test_result = failed;
+
+	if (sub_ts_failed)
+		return TEST_FAILED;
+	if (sub_ts_total == sub_ts_skipped)
+		return TEST_SKIPPED;
+	return TEST_SUCCESS;
 }
diff --git a/app/test/test.h b/app/test/test.h
index b07f6c1ef0..3fdac56631 100644
--- a/app/test/test.h
+++ b/app/test/test.h
@@ -138,7 +138,11 @@ struct unit_test_suite {
 	const char *suite_name;
 	int (*setup)(void);
 	void (*teardown)(void);
-	struct unit_test_case unit_test_cases[];
+	bool parent_testsuite;
+	union {
+		struct unit_test_case *unit_test_cases;
+		struct unit_test_suite *unit_test_suites;
+	};
 };
 
 int unit_test_suite_runner(struct unit_test_suite *suite);
diff --git a/app/test/test_bitratestats.c b/app/test/test_bitratestats.c
index f4a92c9be6..a3fe5e839a 100644
--- a/app/test/test_bitratestats.c
+++ b/app/test/test_bitratestats.c
@@ -189,7 +189,7 @@ unit_test_suite bitratestats_testsuite  = {
 	.suite_name = "BitRate Stats Unit Test Suite",
 	.setup = test_bit_ring_setup,
 	.teardown = test_bit_ring_free,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		/* TEST CASE 1: Test to create bit rate data */
 		TEST_CASE(test_stats_bitrate_create),
 
@@ -231,7 +231,7 @@ unit_test_suite bitratestats_testsuite  = {
 		/* TEST CASE 9: Test to do the cleanup w.r.t create */
 		TEST_CASE(test_stats_bitrate_free),
 		TEST_CASES_END()
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_compressdev.c b/app/test/test_compressdev.c
index 0571c17ecb..7789511bd0 100644
--- a/app/test/test_compressdev.c
+++ b/app/test/test_compressdev.c
@@ -4183,7 +4183,7 @@ static struct unit_test_suite compressdev_testsuite  = {
 	.suite_name = "compressdev unit test suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(NULL, NULL,
 			test_compressdev_invalid_configuration),
 		TEST_CASE_ST(generic_ut_setup, generic_ut_teardown,
@@ -4261,7 +4261,7 @@ static struct unit_test_suite compressdev_testsuite  = {
 		      test_compressdev_deflate_im_buffers_SGL_over_2ops_second),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index f91debc168..bdfb2727dd 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -13247,7 +13247,7 @@ static struct unit_test_suite cryptodev_scheduler_testsuite  = {
 	.suite_name = "Crypto Device Scheduler Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		/* Multi Core */
 		TEST_CASE_ST(NULL, NULL, test_scheduler_attach_slave_op),
 		TEST_CASE_ST(NULL, NULL, test_scheduler_mode_multicore_op),
@@ -13281,7 +13281,7 @@ static struct unit_test_suite cryptodev_scheduler_testsuite  = {
 		TEST_CASE_ST(NULL, NULL, test_scheduler_detach_slave_op),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 #endif /* RTE_CRYPTO_SCHEDULER */
@@ -13290,7 +13290,7 @@ static struct unit_test_suite cryptodev_testsuite  = {
 	.suite_name = "Crypto Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 				test_device_configure_invalid_dev_id),
 		TEST_CASE_ST(ut_setup, ut_teardown,
@@ -13921,25 +13921,25 @@ static struct unit_test_suite cryptodev_testsuite  = {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_enq_callback_setup),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_deq_callback_setup),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static struct unit_test_suite cryptodev_virtio_testsuite = {
 	.suite_name = "Crypto VIRTIO Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_AES_cipheronly_all),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static struct unit_test_suite cryptodev_caam_jr_testsuite  = {
 	.suite_name = "Crypto CAAM JR Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 			     test_device_configure_invalid_dev_id),
 		TEST_CASE_ST(ut_setup, ut_teardown,
@@ -13952,14 +13952,14 @@ static struct unit_test_suite cryptodev_caam_jr_testsuite  = {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_authonly_all),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static struct unit_test_suite cryptodev_mrvl_testsuite  = {
 	.suite_name = "Crypto Device Marvell Component Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_multi_session),
 		TEST_CASE_ST(ut_setup, ut_teardown,
 				test_multi_session_random_usage),
@@ -13980,14 +13980,14 @@ static struct unit_test_suite cryptodev_mrvl_testsuite  = {
 			auth_decryption_AES128CBC_HMAC_SHA1_fail_tag_corrupt),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static struct unit_test_suite cryptodev_ccp_testsuite  = {
 	.suite_name = "Crypto Device CCP Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_multi_session),
 		TEST_CASE_ST(ut_setup, ut_teardown,
 				test_multi_session_random_usage),
@@ -14008,7 +14008,7 @@ static struct unit_test_suite cryptodev_ccp_testsuite  = {
 			auth_decryption_AES128CBC_HMAC_SHA1_fail_tag_corrupt),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
index 85cd076059..4a2c0a310f 100644
--- a/app/test/test_cryptodev_asym.c
+++ b/app/test/test_cryptodev_asym.c
@@ -2288,7 +2288,7 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {
 	.suite_name = "Crypto Device OPENSSL ASYM Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_capability),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_dsa),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_dh_keygenration),
@@ -2300,24 +2300,24 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_mod_exp),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_one_by_one),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static struct unit_test_suite cryptodev_qat_asym_testsuite  = {
 	.suite_name = "Crypto Device QAT ASYM Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_one_by_one),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static struct unit_test_suite cryptodev_octeontx_asym_testsuite  = {
 	.suite_name = "Crypto Device OCTEONTX ASYM Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_capability),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec_crt),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_sign_verify_crt),
@@ -2326,7 +2326,7 @@ static struct unit_test_suite cryptodev_octeontx_asym_testsuite  = {
 			     test_ecdsa_sign_verify_all_curve),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_ecpm_all_curve),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_ethdev_link.c b/app/test/test_ethdev_link.c
index ee11987bae..1f3ac34b5f 100644
--- a/app/test/test_ethdev_link.c
+++ b/app/test/test_ethdev_link.c
@@ -148,13 +148,13 @@ static struct unit_test_suite link_status_testsuite = {
 	.suite_name = "link status formatting",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_link_status_up_default),
 		TEST_CASE(test_link_status_down_default),
 		TEST_CASE(test_link_speed_all_values),
 		TEST_CASE(test_link_status_invalid),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_event_crypto_adapter.c b/app/test/test_event_crypto_adapter.c
index 335211cd8c..722e2f1b7c 100644
--- a/app/test/test_event_crypto_adapter.c
+++ b/app/test/test_event_crypto_adapter.c
@@ -959,7 +959,7 @@ static struct unit_test_suite functional_testsuite = {
 	.suite_name = "Event crypto adapter test suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 
 		TEST_CASE_ST(NULL, test_crypto_adapter_free,
 				test_crypto_adapter_create),
@@ -989,7 +989,7 @@ static struct unit_test_suite functional_testsuite = {
 				test_sessionless_with_op_new_mode),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_event_eth_rx_adapter.c b/app/test/test_event_eth_rx_adapter.c
index 9198767b41..735d5766d6 100644
--- a/app/test/test_event_eth_rx_adapter.c
+++ b/app/test/test_event_eth_rx_adapter.c
@@ -754,7 +754,7 @@ static struct unit_test_suite event_eth_rx_tests = {
 	.suite_name = "rx event eth adapter test suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(NULL, NULL, adapter_create_free),
 		TEST_CASE_ST(adapter_create, adapter_free,
 					adapter_queue_add_del),
@@ -763,18 +763,18 @@ static struct unit_test_suite event_eth_rx_tests = {
 		TEST_CASE_ST(adapter_create, adapter_free, adapter_start_stop),
 		TEST_CASE_ST(adapter_create, adapter_free, adapter_stats),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static struct unit_test_suite event_eth_rx_intr_tests = {
 	.suite_name = "rx event eth adapter test suite",
 	.setup = testsuite_setup_rx_intr,
 	.teardown = testsuite_teardown_rx_intr,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(adapter_create, adapter_free,
 			adapter_intr_queue_add_del),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_event_eth_tx_adapter.c b/app/test/test_event_eth_tx_adapter.c
index 7073030902..bf67afcc69 100644
--- a/app/test/test_event_eth_tx_adapter.c
+++ b/app/test/test_event_eth_tx_adapter.c
@@ -680,7 +680,7 @@ static struct unit_test_suite event_eth_tx_tests = {
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
 	.suite_name = "tx event eth adapter test suite",
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(NULL, NULL, tx_adapter_create_free),
 		TEST_CASE_ST(tx_adapter_create, tx_adapter_free,
 					tx_adapter_queue_add_del),
@@ -690,7 +690,7 @@ static struct unit_test_suite event_eth_tx_tests = {
 					tx_adapter_service),
 		TEST_CASE_ST(NULL, NULL, tx_adapter_dynamic_device),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_event_timer_adapter.c b/app/test/test_event_timer_adapter.c
index ad3f4dcc20..08c3035c7c 100644
--- a/app/test/test_event_timer_adapter.c
+++ b/app/test/test_event_timer_adapter.c
@@ -1779,7 +1779,7 @@ static struct unit_test_suite event_timer_adptr_functional_testsuite  = {
 	.suite_name = "event timer functional test suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(timdev_setup_usec, timdev_teardown,
 				test_timer_state),
 		TEST_CASE_ST(timdev_setup_usec, timdev_teardown,
@@ -1832,7 +1832,7 @@ static struct unit_test_suite event_timer_adptr_functional_testsuite  = {
 				adapter_tick_resolution),
 		TEST_CASE(adapter_create_max),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_eventdev.c b/app/test/test_eventdev.c
index 27ca5a6494..b4b55117b4 100644
--- a/app/test/test_eventdev.c
+++ b/app/test/test_eventdev.c
@@ -934,7 +934,7 @@ static struct unit_test_suite eventdev_common_testsuite  = {
 	.suite_name = "eventdev common code unit test suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(NULL, NULL,
 			test_eventdev_count),
 		TEST_CASE_ST(NULL, NULL,
@@ -984,7 +984,7 @@ static struct unit_test_suite eventdev_common_testsuite  = {
 		TEST_CASE_ST(eventdev_setup_device, NULL,
 			test_eventdev_close),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_fbarray.c b/app/test/test_fbarray.c
index a691bf4458..ff6896d1bc 100644
--- a/app/test/test_fbarray.c
+++ b/app/test/test_fbarray.c
@@ -714,7 +714,7 @@ static struct unit_test_suite fbarray_test_suite = {
 	.suite_name = "fbarray autotest",
 	.setup = autotest_setup,
 	.teardown = autotest_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_invalid),
 		TEST_CASE(test_basic),
 		TEST_CASE_ST(first_msk_test_setup, reset_array, test_find),
@@ -724,7 +724,7 @@ static struct unit_test_suite fbarray_test_suite = {
 		TEST_CASE_ST(full_msk_test_setup, reset_array, test_find),
 		TEST_CASE_ST(empty_msk_test_setup, reset_array, test_empty),
 		TEST_CASES_END()
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_fib.c b/app/test/test_fib.c
index e46b9934fe..fc574bdf0b 100644
--- a/app/test/test_fib.c
+++ b/app/test/test_fib.c
@@ -375,24 +375,24 @@ static struct unit_test_suite fib_fast_tests = {
 	.suite_name = "fib autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 	TEST_CASE(test_create_invalid),
 	TEST_CASE(test_free_null),
 	TEST_CASE(test_add_del_invalid),
 	TEST_CASE(test_get_invalid),
 	TEST_CASE(test_lookup),
 	TEST_CASES_END()
-	}
+	})
 };
 
 static struct unit_test_suite fib_slow_tests = {
 	.suite_name = "fib slow autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 	TEST_CASE(test_multiple_create),
 	TEST_CASES_END()
-	}
+	})
 };
 
 /*
diff --git a/app/test/test_fib6.c b/app/test/test_fib6.c
index 74abfc7a5d..4e36ab795e 100644
--- a/app/test/test_fib6.c
+++ b/app/test/test_fib6.c
@@ -384,24 +384,24 @@ static struct unit_test_suite fib6_fast_tests = {
 	.suite_name = "fib6 autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 	TEST_CASE(test_create_invalid),
 	TEST_CASE(test_free_null),
 	TEST_CASE(test_add_del_invalid),
 	TEST_CASE(test_get_invalid),
 	TEST_CASE(test_lookup),
 	TEST_CASES_END()
-	}
+	})
 };
 
 static struct unit_test_suite fib6_slow_tests = {
 	.suite_name = "fib6 slow autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 	TEST_CASE(test_multiple_create),
 	TEST_CASES_END()
-	}
+	})
 };
 
 /*
diff --git a/app/test/test_graph.c b/app/test/test_graph.c
index 81bdcb9bea..81eef73900 100644
--- a/app/test/test_graph.c
+++ b/app/test/test_graph.c
@@ -815,7 +815,7 @@ static struct unit_test_suite graph_testsuite = {
 	.suite_name = "Graph library test suite",
 	.setup = graph_setup,
 	.teardown = graph_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_update_edges),
 		TEST_CASE(test_lookup_functions),
 		TEST_CASE(test_create_graph),
@@ -823,7 +823,7 @@ static struct unit_test_suite graph_testsuite = {
 		TEST_CASE(test_graph_walk),
 		TEST_CASE(test_print_stats),
 		TEST_CASES_END(), /**< NULL terminate unit test array */
-	},
+	}),
 };
 
 static int
diff --git a/app/test/test_graph_perf.c b/app/test/test_graph_perf.c
index 296d99a9d3..ae30ab3c41 100644
--- a/app/test/test_graph_perf.c
+++ b/app/test/test_graph_perf.c
@@ -1035,7 +1035,7 @@ static struct unit_test_suite graph_perf_testsuite = {
 	.suite_name = "Graph library performance test suite",
 	.setup = graph_perf_setup,
 	.teardown = graph_perf_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(graph_init_hr, graph_fini,
 			     graph_hr_4s_1n_1src_1snk),
 		TEST_CASE_ST(graph_init_hr_brst_one, graph_fini,
@@ -1051,7 +1051,7 @@ static struct unit_test_suite graph_perf_testsuite = {
 		TEST_CASE_ST(graph_init_parallel_tree, graph_fini,
 			     graph_parallel_tree_5s_4n_4src_4snk),
 		TEST_CASES_END(), /**< NULL terminate unit test array */
-	},
+	}),
 };
 
 static int
diff --git a/app/test/test_ipfrag.c b/app/test/test_ipfrag.c
index da8c212f92..b0ac54e422 100644
--- a/app/test/test_ipfrag.c
+++ b/app/test/test_ipfrag.c
@@ -242,12 +242,12 @@ static struct unit_test_suite ipfrag_testsuite  = {
 	.suite_name = "IP Frag Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 			     test_ip_frag),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_ipsec.c b/app/test/test_ipsec.c
index d18220a885..bd9fc3f999 100644
--- a/app/test/test_ipsec.c
+++ b/app/test/test_ipsec.c
@@ -2498,7 +2498,7 @@ static struct unit_test_suite ipsec_testsuite  = {
 	.suite_name = "IPsec NULL Unit Test Suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 			test_ipsec_crypto_inb_burst_null_null_wrapper),
 		TEST_CASE_ST(ut_setup, ut_teardown,
@@ -2528,7 +2528,7 @@ static struct unit_test_suite ipsec_testsuite  = {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 			test_ipsec_crypto_inb_burst_2sa_4grp_null_null_wrapper),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_ipsec_sad.c b/app/test/test_ipsec_sad.c
index 491164689e..874b19a286 100644
--- a/app/test/test_ipsec_sad.c
+++ b/app/test/test_ipsec_sad.c
@@ -864,7 +864,7 @@ static struct unit_test_suite ipsec_sad_tests = {
 	.suite_name = "ipsec sad autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_create_invalid),
 		TEST_CASE(test_find_existing),
 		TEST_CASE(test_multiple_create),
@@ -875,7 +875,7 @@ static struct unit_test_suite ipsec_sad_tests = {
 		TEST_CASE(test_lookup_adv),
 		TEST_CASE(test_lookup_order),
 		TEST_CASES_END()
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_latencystats.c b/app/test/test_latencystats.c
index 427339904d..f72eee98cc 100644
--- a/app/test/test_latencystats.c
+++ b/app/test/test_latencystats.c
@@ -171,7 +171,7 @@ unit_test_suite latencystats_testsuite = {
 	.suite_name = "Latency Stats Unit Test Suite",
 	.setup = test_latency_ring_setup,
 	.teardown = test_latency_ring_free,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 
 		/* Test Case 1: To check latency init with
 		 * metrics init
@@ -198,7 +198,7 @@ unit_test_suite latencystats_testsuite = {
 		TEST_CASE_ST(NULL, NULL, test_latency_uninit),
 
 		TEST_CASES_END()
-	}
+	})
 };
 
 static int test_latencystats(void)
diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index 8a5c8310a8..4fa1e0525c 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -5094,7 +5094,7 @@ static struct unit_test_suite link_bonding_test_suite  = {
 	.suite_name = "Link Bonding Unit Test Suite",
 	.setup = test_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_create_bonded_device),
 		TEST_CASE(test_create_bonded_device_with_invalid_params),
 		TEST_CASE(test_add_slave_to_bonded_device),
@@ -5162,7 +5162,7 @@ static struct unit_test_suite link_bonding_test_suite  = {
 		TEST_CASE(test_close_bonded_device),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 
diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c
index 2c835fa7ad..aafa2236ce 100644
--- a/app/test/test_link_bonding_mode4.c
+++ b/app/test/test_link_bonding_mode4.c
@@ -1653,7 +1653,7 @@ static struct unit_test_suite link_bonding_mode4_test_suite  = {
 	.suite_name = "Link Bonding mode 4 Unit Test Suite",
 	.setup = test_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_NAMED("test_mode4_agg_mode_selection",
 				test_mode4_agg_mode_selection_wrapper),
 		TEST_CASE_NAMED("test_mode4_lacp", test_mode4_lacp_wrapper),
@@ -1667,7 +1667,7 @@ static struct unit_test_suite link_bonding_mode4_test_suite  = {
 				test_mode4_ext_lacp_wrapper),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_link_bonding_rssconf.c b/app/test/test_link_bonding_rssconf.c
index 5dac60ca1e..58ff4a8971 100644
--- a/app/test/test_link_bonding_rssconf.c
+++ b/app/test/test_link_bonding_rssconf.c
@@ -645,13 +645,13 @@ test_rss_lazy_wrapper(void)
 static struct unit_test_suite link_bonding_rssconf_test_suite  = {
 	.suite_name = "RSS Dynamic Configuration for Bonding Unit Test Suite",
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_NAMED("test_setup", test_setup_wrapper),
 		TEST_CASE_NAMED("test_rss", test_rss_wrapper),
 		TEST_CASE_NAMED("test_rss_lazy", test_rss_lazy_wrapper),
 
 		TEST_CASES_END()
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_metrics.c b/app/test/test_metrics.c
index e736019ae4..d80be0e5b4 100644
--- a/app/test/test_metrics.c
+++ b/app/test/test_metrics.c
@@ -275,7 +275,7 @@ static struct unit_test_suite metrics_testsuite  = {
 	.suite_name = "Metrics Unit Test Suite",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		/* Test Case 1: Test to check all metric APIs without
 		 * metrics init
 		 */
@@ -317,7 +317,7 @@ static struct unit_test_suite metrics_testsuite  = {
 		TEST_CASE(test_metrics_deinitialize),
 
 		TEST_CASES_END()
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_pmd_ring.c b/app/test/test_pmd_ring.c
index 86b1db2c1f..9ef667aed7 100644
--- a/app/test/test_pmd_ring.c
+++ b/app/test/test_pmd_ring.c
@@ -576,7 +576,7 @@ unit_test_suite test_pmd_ring_suite  = {
 	.setup = test_pmd_ringcreate_setup,
 	.teardown = test_cleanup_resources,
 	.suite_name = "Test Pmd Ring Unit Test Suite",
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_ethdev_configure_ports),
 		TEST_CASE(test_send_basic_packets),
 		TEST_CASE(test_get_stats_for_port),
@@ -584,7 +584,7 @@ unit_test_suite test_pmd_ring_suite  = {
 		TEST_CASE(test_pmd_ring_pair_create_attach),
 		TEST_CASE(test_command_line_ring_port),
 		TEST_CASES_END()
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_reorder.c b/app/test/test_reorder.c
index 1c4226da65..04bdf4a2d1 100644
--- a/app/test/test_reorder.c
+++ b/app/test/test_reorder.c
@@ -373,7 +373,7 @@ static struct unit_test_suite reorder_test_suite  = {
 	.setup = test_setup,
 	.teardown = test_teardown,
 	.suite_name = "Reorder Unit Test Suite",
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_reorder_create),
 		TEST_CASE(test_reorder_init),
 		TEST_CASE(test_reorder_find_existing),
@@ -381,7 +381,7 @@ static struct unit_test_suite reorder_test_suite  = {
 		TEST_CASE(test_reorder_insert),
 		TEST_CASE(test_reorder_drain),
 		TEST_CASES_END()
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_rib.c b/app/test/test_rib.c
index 3dc48fe1f2..8a2a7d68aa 100644
--- a/app/test/test_rib.c
+++ b/app/test/test_rib.c
@@ -327,7 +327,7 @@ static struct unit_test_suite rib_tests = {
 	.suite_name = "rib autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_create_invalid),
 		TEST_CASE(test_free_null),
 		TEST_CASE(test_insert_invalid),
@@ -335,17 +335,17 @@ static struct unit_test_suite rib_tests = {
 		TEST_CASE(test_basic),
 		TEST_CASE(test_tree_traversal),
 		TEST_CASES_END()
-	}
+	})
 };
 
 static struct unit_test_suite rib_slow_tests = {
 	.suite_name = "rib slow autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_multiple_create),
 		TEST_CASES_END()
-	}
+	})
 };
 
 /*
diff --git a/app/test/test_rib6.c b/app/test/test_rib6.c
index c77df11298..c381c68ce6 100644
--- a/app/test/test_rib6.c
+++ b/app/test/test_rib6.c
@@ -332,7 +332,7 @@ static struct unit_test_suite rib6_tests = {
 	.suite_name = "rib6 autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_create_invalid),
 		TEST_CASE(test_free_null),
 		TEST_CASE(test_insert_invalid),
@@ -340,17 +340,17 @@ static struct unit_test_suite rib6_tests = {
 		TEST_CASE(test_basic),
 		TEST_CASE(test_tree_traversal),
 		TEST_CASES_END()
-	}
+	})
 };
 
 static struct unit_test_suite rib6_slow_tests = {
 	.suite_name = "rib6 slow autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_multiple_create),
 		TEST_CASES_END()
-	}
+	})
 };
 
 /*
diff --git a/app/test/test_security.c b/app/test/test_security.c
index 060cf1ffa8..583a229c0e 100644
--- a/app/test/test_security.c
+++ b/app/test/test_security.c
@@ -2484,7 +2484,7 @@ static struct unit_test_suite security_testsuite  = {
 	.suite_name = "generic security",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(ut_setup, ut_teardown,
 				test_session_create_inv_context),
 		TEST_CASE_ST(ut_setup, ut_teardown,
@@ -2627,7 +2627,7 @@ static struct unit_test_suite security_testsuite  = {
 				test_capability_get_docsis_match),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_service_cores.c b/app/test/test_service_cores.c
index 37d7172d53..ff4d3aa95a 100644
--- a/app/test/test_service_cores.c
+++ b/app/test/test_service_cores.c
@@ -996,7 +996,7 @@ static struct unit_test_suite service_tests  = {
 	.suite_name = "service core test suite",
 	.setup = testsuite_setup,
 	.teardown = testsuite_teardown,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE_ST(dummy_register, NULL, unregister_all),
 		TEST_CASE_ST(dummy_register, NULL, service_name),
 		TEST_CASE_ST(dummy_register, NULL, service_get_by_name),
@@ -1015,7 +1015,7 @@ static struct unit_test_suite service_tests  = {
 		TEST_CASE_ST(dummy_register, NULL, service_may_be_active),
 		TEST_CASE_ST(dummy_register, NULL, service_active_two_cores),
 		TEST_CASES_END() /**< NULL terminate unit test array */
-	}
+	})
 };
 
 static int
diff --git a/app/test/test_trace.c b/app/test/test_trace.c
index 0f9df83c40..d704ceb8c2 100644
--- a/app/test/test_trace.c
+++ b/app/test/test_trace.c
@@ -176,7 +176,7 @@ static struct unit_test_suite trace_tests = {
 	.suite_name = "trace autotest",
 	.setup = NULL,
 	.teardown = NULL,
-	.unit_test_cases = {
+	.unit_test_cases = ((struct unit_test_case []) {
 		TEST_CASE(test_trace_mode),
 		TEST_CASE(test_generic_trace_points),
 		TEST_CASE(test_fp_trace_points),
@@ -185,7 +185,7 @@ static struct unit_test_suite trace_tests = {
 		TEST_CASE(test_trace_point_regex),
 		TEST_CASE(test_trace_points_lookup),
 		TEST_CASES_END()
-	}
+	})
 };
 
 static int
