Hi Ilpo, On 10/24/2023 2:26 AM, Ilpo Järvinen wrote: ... > diff --git a/tools/testing/selftests/resctrl/resctrl.h b/tools/testing/selftests/resctrl/resctrl.h > index ec6efd36f60a..e017adf1390d 100644 > --- a/tools/testing/selftests/resctrl/resctrl.h > +++ b/tools/testing/selftests/resctrl/resctrl.h > @@ -37,6 +37,8 @@ > > #define DEFAULT_SPAN (250 * MB) > > +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) > + Shuah worked hard to remove all these copies within kselftest. Please use the one in kselftest.h instead. > #define PARENT_EXIT(err_msg) \ > do { \ > perror(err_msg); \ ... > @@ -233,25 +183,26 @@ int main(int argc, char **argv) > case 't': > token = strtok(optarg, ","); > > - mbm_test = false; > - mba_test = false; > - cmt_test = false; > - cat_test = false; > + if (!test_param_seen) { > + for (i = 0; i < ARRAY_SIZE(resctrl_tests); i++) > + resctrl_tests[i]->disabled = true; > + tests = 0; > + test_param_seen = true; > + } > while (token) { > - if (!strncmp(token, MBM_STR, sizeof(MBM_STR))) { > - mbm_test = true; > - tests++; > - } else if (!strncmp(token, MBA_STR, sizeof(MBA_STR))) { > - mba_test = true; > - tests++; > - } else if (!strncmp(token, CMT_STR, sizeof(CMT_STR))) { > - cmt_test = true; > - tests++; > - } else if (!strncmp(token, CAT_STR, sizeof(CAT_STR))) { > - cat_test = true; > - tests++; > - } else { > - printf("invalid argument\n"); > + bool found = false; > + > + for (i = 0; i < ARRAY_SIZE(resctrl_tests); i++) { > + if (!strcasecmp(token, resctrl_tests[i]->name)) { > + if (resctrl_tests[i]->disabled) > + tests++; > + resctrl_tests[i]->disabled = false; > + found = true; > + } > + } Could providing multiple "-t" result in the test count not matching the number of tests run? > + > + if (!found) { > + printf("invalid test: %s\n", token); > > return -1; > } A great improvement, thanks. Reinette