* [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.