All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] testsuite: Handle large number of kernel options
@ 2018-08-22  8:31 Stefan Bader
  2018-08-22 11:02 ` Luca Boccassi
  0 siblings, 1 reply; 2+ messages in thread
From: Stefan Bader @ 2018-08-22  8:31 UTC (permalink / raw)
  To: net-devel; +Cc: Stephen Hemminger, Christian Ehrhardt, Luca

Once there are more than a certain number of kernel config options
set (this happened for us with kernel 4.17), the method of passing
those as command line arguments exceeds the maximum number of
arguments the shell supports. This causes the whole testsuite to
fail.
Instead, create a temporary file and modify its contents so that
the config option variables are exported. Then this file can be
sourced in before running the tests.

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
---
 testsuite/Makefile | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/testsuite/Makefile b/testsuite/Makefile
index 8fcbc55..f9f3b19 100644
--- a/testsuite/Makefile
+++ b/testsuite/Makefile
@@ -14,15 +14,13 @@ TESTS_DIR := $(dir $(TESTS))
 
 IPVERS := $(filter-out iproute2/Makefile,$(wildcard iproute2/*))
 
+KENVFN := $(shell mktemp /tmp/tc_testkenv.XXXXXX)
 ifneq (,$(wildcard /proc/config.gz))
-	KENV := $(shell cat /proc/config.gz | gunzip | grep ^CONFIG)
+	KCPATH := /proc/config.gz
 else
 KVER := $(shell uname -r)
 KCPATHS := /lib/modules/$(KVER)/config /boot/config-$(KVER)
 KCPATH := $(firstword $(wildcard $(KCPATHS)))
-ifneq (,$(KCPATH))
-	KENV := $(shell cat ${KCPATH} | grep ^CONFIG)
-endif
 endif
 
 .PHONY: compile listtests alltests configure $(TESTS)
@@ -59,14 +57,22 @@ endif
 	    mkdir -p $(RESULTS_DIR)/$$d; \
 	done
 	
+	@if [ "$(KCPATH)" = "/proc/config.gz" ]; then \
+		gunzip -c $(KCPATH) >$(KENVFN); \
+	elif [ "$(KCPATH)" != "" ]; then \
+               cat $(KCPATH) >$(KENVFN); \
+	fi
+	@sed -i -e 's/^CONFIG_/export CONFIG_/' $(KENVFN)
+
 	@for i in $(IPVERS); do \
 		o=`echo $$i | sed -e 's/iproute2\///'`; \
 		echo -n "Running $@ [$$o/`uname -r`]: "; \
 		TMP_ERR=`mktemp /tmp/tc_testsuite.XXXXXX`; \
 		TMP_OUT=`mktemp /tmp/tc_testsuite.XXXXXX`; \
+		. $(KENVFN); \
 		STD_ERR="$$TMP_ERR" STD_OUT="$$TMP_OUT" \
 		TC="$$i/tc/tc" IP="$$i/ip/ip" SS=$$i/misc/ss DEV="$(DEV)" IPVER="$@" SNAME="$$i" \
-		ERRF="$(RESULTS_DIR)/$@.$$o.err" $(KENV) $(PREFIX) tests/$@ > $(RESULTS_DIR)/$@.$$o.out; \
+		ERRF="$(RESULTS_DIR)/$@.$$o.err" $(PREFIX) tests/$@ > $(RESULTS_DIR)/$@.$$o.out; \
 		if [ "$$?" = "127" ]; then \
 			echo "SKIPPED"; \
 		elif [ -e "$(RESULTS_DIR)/$@.$$o.err" ]; then \
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] testsuite: Handle large number of kernel options
  2018-08-22  8:31 [PATCH] testsuite: Handle large number of kernel options Stefan Bader
@ 2018-08-22 11:02 ` Luca Boccassi
  0 siblings, 0 replies; 2+ messages in thread
From: Luca Boccassi @ 2018-08-22 11:02 UTC (permalink / raw)
  To: Stefan Bader, net-devel; +Cc: Stephen Hemminger, Christian Ehrhardt

[-- Attachment #1: Type: text/plain, Size: 887 bytes --]

On Wed, 2018-08-22 at 10:31 +0200, Stefan Bader wrote:
> Once there are more than a certain number of kernel config options
> set (this happened for us with kernel 4.17), the method of passing
> those as command line arguments exceeds the maximum number of
> arguments the shell supports. This causes the whole testsuite to
> fail.
> Instead, create a temporary file and modify its contents so that
> the config option variables are exported. Then this file can be
> sourced in before running the tests.
> 
> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
> ---
>  testsuite/Makefile | 16 +++++++++++-----
>  1 file changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/testsuite/Makefile b/testsuite/Makefile
> index 8fcbc55..f9f3b19 100644

Acked-by: Luca Boccassi <bluca@debian.org>

Looks good to me, thanks.

-- 
Kind regards,
Luca Boccassi

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-08-22 14:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-22  8:31 [PATCH] testsuite: Handle large number of kernel options Stefan Bader
2018-08-22 11:02 ` Luca Boccassi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.