Re: [PATCH v3 2/5] selftests/resctrl: Make resctrl_tests run using kselftest framework

Shuah Khan
2022-02-18T20:27:14Z

On 2/15/22 7:26 PM, Shaopeng Tan wrote:
> In kselftest framework, all tests can be build/run at a time,
> and a sub test also can be build/run individually. As follows:
> $ make -C tools/testing/selftests run_tests
> $ make -C tools/testing/selftests TARGETS=ptrace run_tests
>
> However, resctrl_tests cannot be run using kselftest framework,
> users have to change directory to tools/testing/selftests/resctrl/,
> run "make" to build executable file "resctrl_tests",
> and run "sudo ./resctrl_tests" to execute the test.
>
> To build/run resctrl_tests using kselftest framework.
> Modify tools/testing/selftests/Makefile
> and tools/testing/selftests/resctrl/Makefile.
>
> Even after this change, users can still build/run resctrl_tests
> without using framework as before.
>
> Signed-off-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>
> ---
> Some important feedbacks from v1&v2 are addressed as follows:
>
> - The changelog mentions that changes were made to the resctrl
> selftest Makefile but it does not describe what the change accomplish
> or why they are needed.
> => By changing the Makefile, resctrl_tests can use kselftest
> framework like other sub tests. I described this in changelog.
>
> - The changelog did not describe how a user may use the kselftest
> framework to run the resctrl tests nor the requested information
> on how existing workflows are impacted.
> => I described how to build/run resctrl_tests with kselftest framework,
> and described the existing workflows are not impacted that users can
> build/run resctrl_tests without using kselftest framework as before.
>
> - tools/testing/selftests/resctrl/README should be updated.
> => I separate the update of README to a new patch.[patch v3 3/5]
>
> - Why is the meaning of "EXTRA_SOURCES" (i.e. what is "extra"?) and
> why is "SRCS" no longer sufficient?
> => I referred to other Makefiles, and found "SRCS" is better
> than "EXTRA_SOURCES". So, I updated it to use "SRCS".
>
> tools/testing/selftests/Makefile | 1 +
> tools/testing/selftests/resctrl/Makefile | 20 ++++++--------------
> 2 files changed, 7 insertions(+), 14 deletions(-)
>
> diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
> index c852eb40c4f7..7df397c6893c 100644
> --- a/tools/testing/selftests/Makefile
> +++ b/tools/testing/selftests/Makefile
> @@ -51,6 +51,7 @@ TARGETS += proc
> TARGETS += pstore
> TARGETS += ptrace
> TARGETS += openat2
> +TARGETS += resctrl
> TARGETS += rlimits
> TARGETS += rseq
> TARGETS += rtc
> diff --git a/tools/testing/selftests/resctrl/Makefile b/tools/testing/selftests/resctrl/Makefile
> index 6bcee2ec91a9..de26638540ba 100644
> --- a/tools/testing/selftests/resctrl/Makefile
> +++ b/tools/testing/selftests/resctrl/Makefile
> @@ -1,17 +1,9 @@
> -CC = $(CROSS_COMPILE)gcc
> -CFLAGS = -g -Wall -O2 -D_FORTIFY_SOURCE=2
> -SRCS=$(wildcard *.c)
> -OBJS=$(SRCS:.c=.o)
> +CFLAGS += -g -Wall -O2 -D_FORTIFY_SOURCE=2
>
> -all: resctrl_tests
> +TEST_GEN_PROGS := resctrl_tests
> +SRCS := $(wildcard *.c)
>
> -$(OBJS): $(SRCS)
> - $(CC) $(CFLAGS) -c $(SRCS)
> +all: $(TEST_GEN_PROGS)
>
> -resctrl_tests: $(OBJS)
> - $(CC) $(CFLAGS) -o $@ $^
> -
> -.PHONY: clean
> -
> -clean:
> - $(RM) $(OBJS) resctrl_tests
> +$(TEST_GEN_PROGS): $(SRCS)

This patch breaks the test build - the below use-cases fail

make kselftest-all TARGETS=resctrl
make -C tools/testing/selftests/ TARGETS=resctrl

Also a simple make in tools/testing/selftests/resctr

thanks,
-- Shuah