[dpdk-dev] [PATCH 2/6] test: introduce parent testsuite format

Ciara Power ciara.power at intel.com
Tue Mar 16 15:32:49 CET 2021


The current structure for unit testing only allows for running a
test suite with nested test cases. This means all test cases for an
autotest must be in one suite, which is not ideal.
For example, in some cases we may want to run multiple lists of test
cases that each require different setup, so should be in separate suites.

The unit test suite struct is modified to hold either a pointer to a
list of test cases, or a pointer to a list of sub-testsuites.
A bool value is also introduced here to indicate whether the testsuite
is a parent suite or not.

Signed-off-by: Ciara Power <ciara.power at intel.com>
---
 app/test/test.c                      | 151 ++++++++++++++++++---------
 app/test/test.h                      |   6 +-
 app/test/test_bitratestats.c         |   4 +-
 app/test/test_compressdev.c          |   4 +-
 app/test/test_cryptodev.c            |  24 ++---
 app/test/test_cryptodev_asym.c       |  12 +--
 app/test/test_ethdev_link.c          |   4 +-
 app/test/test_event_crypto_adapter.c |   4 +-
 app/test/test_event_eth_rx_adapter.c |   8 +-
 app/test/test_event_eth_tx_adapter.c |   4 +-
 app/test/test_event_timer_adapter.c  |   4 +-
 app/test/test_eventdev.c             |   4 +-
 app/test/test_fbarray.c              |   4 +-
 app/test/test_fib.c                  |   8 +-
 app/test/test_fib6.c                 |   8 +-
 app/test/test_graph.c                |   4 +-
 app/test/test_graph_perf.c           |   4 +-
 app/test/test_ipfrag.c               |   4 +-
 app/test/test_ipsec.c                |   4 +-
 app/test/test_ipsec_sad.c            |   4 +-
 app/test/test_latencystats.c         |   4 +-
 app/test/test_link_bonding.c         |   4 +-
 app/test/test_link_bonding_mode4.c   |   4 +-
 app/test/test_link_bonding_rssconf.c |   4 +-
 app/test/test_metrics.c              |   4 +-
 app/test/test_pmd_ring.c             |   4 +-
 app/test/test_reorder.c              |   4 +-
 app/test/test_rib.c                  |   8 +-
 app/test/test_rib6.c                 |   8 +-
 app/test/test_security.c             |   4 +-
 app/test/test_service_cores.c        |   4 +-
 app/test/test_trace.c                |   4 +-
 32 files changed, 188 insertions(+), 137 deletions(-)

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
-- 
2.25.1



More information about the dev mailing list