RE: [PATCH v3 5/5] selftests/resctrl: Remove duplicate codes that clear each test result file

From: Shaopeng Tan (Fujitsu)
Date: Tue Nov 08 2022 - 03:33:46 EST


Hi Shuah and Reinette,

> On 11/1/2022 2:43 AM, Shaopeng Tan wrote:
> > Before exiting each test function(run_cmt/cat/mbm/mba_test()),
> > test results("ok","not ok") are printed by ksft_test_result() and then
> > temporary result files are cleaned by function
> > cmt/cat/mbm/mba_test_cleanup().
> > However, before running ksft_test_result(), function
> > cmt/cat/mbm/mba_test_cleanup() has been run in each test function as
> > follows:
> > cmt_resctrl_val()
> > cat_perf_miss_val()
> > mba_schemata_change()
> > mbm_bw_change()
> >
> > Remove duplicate codes that clear each test result file.
>
> This isn't making much sense to me. Please include test report before and after
> this change in the change log.

With or without this patch, there is no effect on the result message.
These functions were executed twice, in brief, it runs as follows:
- cmt/cat/mbm/mba_test_cleanup()
- ksft_test_result()
- cmt/cat/mbm/mba_test_cleanup()
So, I deleted once.

> From what I can tell this still seem to suffer from the problem where the test
> files may not be cleaned. With the removal of mbm_test_cleanup() the cleanup
> is now expected to be done in mbm_bw_change().
>
> Note that:
>
> mbm_bw_change()
> {
> ...
>
> ret = resctrl_val(benchmark_cmd, &param);
> if (ret)
> return ret;
>
> /* Test results stored in file */
>
> ret = check_results(span);
> if (ret)
> return ret; <== Return without cleaning test result file
>
> mbm_test_cleanup(); <== Test result file cleaned only when test
> passed.
>
> return 0;
> }

I intend to avoid this problem through the following codes.

mbm_bw_change()
{
ret = resctrl_val(benchmark_cmd, &param);
if (ret)
- return ret;
+ goto out;

ret = check_results(span);
if (ret)
- return ret;
+ goto out;

+out:
mbm_test_cleanup();

- return 0;
+ return ret;
}


Best regards,
Shaopeng Tan