Message ID | 20200515120026.113278-2-yauheni.kaliuta@redhat.com |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
Series | selftests: lib.mk improvements | expand |
On Fri, 15 May 2020 15:00:24 +0300, Yauheni Kaliuta wrote: > Using one shell for the whole recipe with long lists can cause > > make[1]: execvp: /bin/sh: Argument list too long > > with some shells. Triggered by commit 309b81f0fdc4 ("selftests/bpf: > Install generated test progs") > > It requires to change the rule which rely on the one shell > behaviour (run_tests). > > Simplify also INSTALL_SINGLE_RULE, remove extra echo, required to > workaround .ONESHELL. > > Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com> > Cc: Jiri Benc <jbenc@redhat.com> > Cc: Shuah Khan <shuah@kernel.org> Acked-by: Jiri Benc <jbenc@redhat.com>
Hi, Shuah! Any comment on that? The patch is ACKes by Jiri already. >>>>> On Fri, 15 May 2020 15:00:24 +0300, Yauheni Kaliuta wrote: > Using one shell for the whole recipe with long lists can cause > make[1]: execvp: /bin/sh: Argument list too long > with some shells. Triggered by commit 309b81f0fdc4 ("selftests/bpf: > Install generated test progs") > It requires to change the rule which rely on the one shell > behaviour (run_tests). > Simplify also INSTALL_SINGLE_RULE, remove extra echo, required to > workaround .ONESHELL. > Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com> > Cc: Jiri Benc <jbenc@redhat.com> > Cc: Shuah Khan <shuah@kernel.org> > --- > tools/testing/selftests/lib.mk | 20 +++++++++----------- > 1 file changed, 9 insertions(+), 11 deletions(-) > diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk > index b0556c752443..5b82433d88e3 100644 > --- a/tools/testing/selftests/lib.mk > +++ b/tools/testing/selftests/lib.mk > @@ -59,9 +59,8 @@ else > all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) > endif > -.ONESHELL: > define RUN_TESTS > - @BASE_DIR="$(selfdir)"; \ > + BASE_DIR="$(selfdir)"; \ > . $(selfdir)/kselftest/runner.sh; \ > if [ "X$(summary)" != "X" ]; then \ > per_test_logging=1; \ > @@ -71,22 +70,21 @@ endef > run_tests: all > ifdef building_out_of_srctree > - @if [ "X$(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)" != "X" ]; then > - @rsync -aq $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(OUTPUT) > + @if [ "X$(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)" != "X" ]; then \ > + rsync -aq $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(OUTPUT); \ > fi > - @if [ "X$(TEST_PROGS)" != "X" ]; then > - $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(OUTPUT)/$(TEST_PROGS)) > - else > - $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS)) > + @if [ "X$(TEST_PROGS)" != "X" ]; then \ > + $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(OUTPUT)/$(TEST_PROGS)) ; \ > + else \ > + $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS)); \ > fi > else > - $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS)) > + @$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS)) > endif > define INSTALL_SINGLE_RULE > $(if $(INSTALL_LIST),@mkdir -p $(INSTALL_PATH)) > - $(if $(INSTALL_LIST),@echo rsync -a $(INSTALL_LIST) $(INSTALL_PATH)/) > - $(if $(INSTALL_LIST),@rsync -a $(INSTALL_LIST) $(INSTALL_PATH)/) > + $(if $(INSTALL_LIST),rsync -a $(INSTALL_LIST) $(INSTALL_PATH)/) > endef > define INSTALL_RULE > -- > 2.26.2
diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk index b0556c752443..5b82433d88e3 100644 --- a/tools/testing/selftests/lib.mk +++ b/tools/testing/selftests/lib.mk @@ -59,9 +59,8 @@ else all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) endif -.ONESHELL: define RUN_TESTS - @BASE_DIR="$(selfdir)"; \ + BASE_DIR="$(selfdir)"; \ . $(selfdir)/kselftest/runner.sh; \ if [ "X$(summary)" != "X" ]; then \ per_test_logging=1; \ @@ -71,22 +70,21 @@ endef run_tests: all ifdef building_out_of_srctree - @if [ "X$(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)" != "X" ]; then - @rsync -aq $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(OUTPUT) + @if [ "X$(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)" != "X" ]; then \ + rsync -aq $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(OUTPUT); \ fi - @if [ "X$(TEST_PROGS)" != "X" ]; then - $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(OUTPUT)/$(TEST_PROGS)) - else - $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS)) + @if [ "X$(TEST_PROGS)" != "X" ]; then \ + $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(OUTPUT)/$(TEST_PROGS)) ; \ + else \ + $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS)); \ fi else - $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS)) + @$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS)) endif define INSTALL_SINGLE_RULE $(if $(INSTALL_LIST),@mkdir -p $(INSTALL_PATH)) - $(if $(INSTALL_LIST),@echo rsync -a $(INSTALL_LIST) $(INSTALL_PATH)/) - $(if $(INSTALL_LIST),@rsync -a $(INSTALL_LIST) $(INSTALL_PATH)/) + $(if $(INSTALL_LIST),rsync -a $(INSTALL_LIST) $(INSTALL_PATH)/) endef define INSTALL_RULE
Using one shell for the whole recipe with long lists can cause make[1]: execvp: /bin/sh: Argument list too long with some shells. Triggered by commit 309b81f0fdc4 ("selftests/bpf: Install generated test progs") It requires to change the rule which rely on the one shell behaviour (run_tests). Simplify also INSTALL_SINGLE_RULE, remove extra echo, required to workaround .ONESHELL. Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com> Cc: Jiri Benc <jbenc@redhat.com> Cc: Shuah Khan <shuah@kernel.org> --- tools/testing/selftests/lib.mk | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-)