On Wed, Mar 02, 2016 at 08:25:41AM +0300, Ilya Maximets wrote:
>
>
> On 01.03.2016 19:08, Ben Pfaff wrote:
> > On Tue, Mar 01, 2016 at 08:31:43AM +0300, Ilya Maximets wrote:
> >> On 29.02.2016 21:44, Ben Pfaff wrote:
> >>> On Mon, Feb 29, 2016 at 04:06:52PM +0300, Ilya Maximets wrote:
> >>>> 'make check-system-userspace', 'make check-kernel' and 'make check-kmod'
> >>>> work with real environment and can not be run simultaneously.
> >>>>
> >>>> To prevent violation of the system environment strip out options for
> >>>> parallel execution from TESTSUITEFLAGS for this targets.
> >>>>
> >>>> Signed-off-by: Ilya Maximets <[email protected]>
> >>>
> >>> TESTSUITEFLAGS_WITHOUT_JOBS can be more simply defined as just
> >>> $(filter-out -j% --jobs=%, $(TESTSUITEFLAGS))
> >>
> >> This can't filter out something like '-j 8' because of whitespaces inside
> >> the pattern. Anyway, unfortunately, I found that this all is a GNU
> >> extensions for make and we can't use them for portability reasons.
> >> '$(filter-out', '$(shell' and even 'define' should be replaced with
> >> another portable implementation.
> >
> > OVS requires GNU make, see INSTALL.md.
>
> Sorry, I forgot about it.
>
> >
> >>> Do you think it's really worth warning about this?
> >>
> >> It's very confusing that I can use usual 'make check' in parallel mode,
> >> but can't do the same with other testsuites. In addition, this
> >> behaviour isn't documented at all.
> >
> > I think it's worth disabling parallelism, I'm just not sure it's worth
> > warning.
>
> Thanks for clarifying.
> May be it isn't. I'll prepare v4 without warning.
>
> About filtering method:
> As I already told, 'filter-out' can't remove parameters with whitespaces
> inside (Ex. '-j 8').
> So, there are 2 options:
> 1. TESTSUITEFLAGS_WITHOUT_JOBS = $(shell echo '$(TESTSUITEFLAGS)' | sed -r
> 's/(^| )(-j|--jobs=) *[0-9]+//g')
> 2. TESTSUITEFLAGS_WITHOUT_JOBS = `echo '$(TESTSUITEFLAGS)' | sed -r 's/(^|
> )(-j|--jobs=) *[0-9]+//g'`
>
> In second case will be printed full command line with 'echo' and 'sed' like
> this:
> /bin/sh './tests/system-userspace-testsuite' -C tests AUTOTEST_PATH='...'
> `echo '-j8' | sed -r 's/(^| )(-j|--jobs=) *[0-9]+//g'`
> In first case result of filtering will be displayed.
>
> Which one is better in your opinion? Another solutions are welcome.
How about this:
diff --git a/tests/automake.mk b/tests/automake.mk
index 592f648..3c5c848 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -209,7 +209,7 @@ EXTRA_DIST += tests/run-ryu
# Run kmod tests. Assume kernel modules has been installed or linked into the
kernel
check-kernel: all tests/atconfig tests/atlocal $(SYSTEM_KMOD_TESTSUITE)
- $(SHELL) '$(SYSTEM_KMOD_TESTSUITE)' -C tests
AUTOTEST_PATH='$(AUTOTEST_PATH)' -d $(TESTSUITEFLAGS)
+ $(SHELL) '$(SYSTEM_KMOD_TESTSUITE)' -C tests
AUTOTEST_PATH='$(AUTOTEST_PATH)' -d $(TESTSUITEFLAGS) -j1
# Testing the out of tree Kernel module
check-kmod: all tests/atconfig tests/atlocal $(SYSTEM_KMOD_TESTSUITE)
@@ -218,7 +218,7 @@ check-kmod: all tests/atconfig tests/atlocal
$(SYSTEM_KMOD_TESTSUITE)
$(MAKE) check-kernel
check-system-userspace: all tests/atconfig tests/atlocal
$(SYSTEM_USERSPACE_TESTSUITE)
- $(SHELL) '$(SYSTEM_USERSPACE_TESTSUITE)' -C tests
AUTOTEST_PATH='$(AUTOTEST_PATH)' $(TESTSUITEFLAGS)
+ $(SHELL) '$(SYSTEM_USERSPACE_TESTSUITE)' -C tests
AUTOTEST_PATH='$(AUTOTEST_PATH)' $(TESTSUITEFLAGS) -j1
clean-local:
test ! -f '$(TESTSUITE)' || $(SHELL) '$(TESTSUITE)' -C tests --clean
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev