test/metrics: fix second run
authorHarman Kalra <hkalra@marvell.com>
Thu, 11 Jul 2019 09:26:12 +0000 (09:26 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 16 Jul 2019 10:46:07 +0000 (12:46 +0200)
Issue is observed while running 'metrics_autotest' continuously
without quiting. During first execution all test cases pass but
second run onwards first test case fails as library is already
initialized.

To resolve, introduced a new API to deinitialise the library
after all test cases are executed.

Fixes: cd3804242901 ("test/metrics: add unit tests for metrics library")

Signed-off-by: Harman Kalra <hkalra@marvell.com>
Acked-by: Remy Horton <remy.horton@intel.com>
Tested-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
app/test/test_metrics.c

index 3c2f36b..78b3936 100644 (file)
@@ -28,6 +28,19 @@ test_metrics_init(void)
        return TEST_SUCCESS;
 }
 
+/* Deinitialize metric module. This function must be called
+ * from a primary process after metrics usage is over
+ */
+static int
+test_metrics_deinitialize(void)
+{
+       int err = 0;
+       err = rte_metrics_deinit();
+       TEST_ASSERT(err == 0, "%s, %d", __func__, __LINE__);
+
+       return TEST_SUCCESS;
+}
+
  /* Test Case to check failures when memzone init is not done */
 static int
 test_metrics_without_init(void)
@@ -300,6 +313,10 @@ static struct unit_test_suite metrics_testsuite  = {
                 * arraylist, count size
                 */
                TEST_CASE(test_metrics_get_values),
+
+               /* TEST CASE 8: Test to unregister metrics*/
+               TEST_CASE(test_metrics_deinitialize),
+
                TEST_CASES_END()
        }
 };