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 <i.maxim...@samsung.com> > >>> > >>> 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 dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev