selftests/resctrl: Add cleanup function to test framework
authorMaciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
Tue, 27 Feb 2024 07:21:41 +0000 (08:21 +0100)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 6 May 2024 19:57:19 +0000 (13:57 -0600)
Resctrl selftests use very similar functions to cleanup after
themselves. This creates a lot of code duplication. Also not being
hooked to the test framework means that ctrl-c handler isn't aware of
what test is currently running and executes all cleanups even though
only one is needed.

Add a function pointer to the resctrl_test struct and attach to it
cleanup functions from individual tests.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/resctrl/cat_test.c
tools/testing/selftests/resctrl/cmt_test.c
tools/testing/selftests/resctrl/mba_test.c
tools/testing/selftests/resctrl/mbm_test.c
tools/testing/selftests/resctrl/resctrl.h

index 4cb991be8e31be37032d9811a070fc68dce27f66..8fa4348ab4611d492da2cb609c8c11cbbe0e676b 100644 (file)
@@ -373,6 +373,7 @@ struct resctrl_test l3_cat_test = {
        .resource = "L3",
        .feature_check = test_resource_feature_check,
        .run_test = cat_run_test,
+       .cleanup = cat_test_cleanup,
 };
 
 struct resctrl_test l3_noncont_cat_test = {
index a81f91222a89a820b14117e133fc6b5d596d7b72..a01ccf86e6ced8e5ae27a9712cb341fa30ea5f4c 100644 (file)
@@ -178,4 +178,5 @@ struct resctrl_test cmt_test = {
        .resource = "L3",
        .feature_check = cmt_feature_check,
        .run_test = cmt_run_test,
+       .cleanup = cmt_test_cleanup,
 };
index 7946e32e85c83fb9422caf1ab3168f4994f21048..189fbe20dc7bc5917b979c8f46fbf376d6ec7e7d 100644 (file)
@@ -180,4 +180,5 @@ struct resctrl_test mba_test = {
        .vendor_specific = ARCH_INTEL,
        .feature_check = mba_feature_check,
        .run_test = mba_run_test,
+       .cleanup = mba_test_cleanup,
 };
index d67ffa3ec63a321416855d2405f06c3e2c16af05..73d6a8b989f571a172f8295b7a779f63a8747615 100644 (file)
@@ -150,4 +150,5 @@ struct resctrl_test mbm_test = {
        .vendor_specific = ARCH_INTEL,
        .feature_check = mbm_feature_check,
        .run_test = mbm_run_test,
+       .cleanup = mbm_test_cleanup,
 };
index 2051bd135e0d04d0d403e28b3c9b393a7d043926..221c94532733103cf1c01ea0e951db29d5a07214 100644 (file)
@@ -72,6 +72,7 @@ struct user_params {
  * @disabled:          Test is disabled
  * @feature_check:     Callback to check required resctrl features
  * @run_test:          Callback to run the test
+ * @cleanup:           Callback to cleanup after the test
  */
 struct resctrl_test {
        const char      *name;
@@ -82,6 +83,7 @@ struct resctrl_test {
        bool            (*feature_check)(const struct resctrl_test *test);
        int             (*run_test)(const struct resctrl_test *test,
                                    const struct user_params *uparams);
+       void            (*cleanup)(void);
 };
 
 /*