This fixes 'RECHECK=yes' functionality in case of configured test
range. For example, before the patch following cmdline will result in
running all of the 1000 tests re-checking in case of any failure:

  make -j8 check TESTSUITEFLAGS='1000-1999' RECHECK=yes

This happens because ranges and pattern matching options has higher
priority than the '--recheck'.
With patch, only failed tests from the range will be re-checked.

With this patch applied we're dropping support of '--verbose' and
'--trace' options while re-check, but, IMHO, these options makes
sense mostly while debugging individual tests and not much usable
while running recheck of a whole testsuite.
'--jobs' we're resetting each time anyway.

Not sure if someone overrides default '--directory'. For me it looks
not very useful. Changing the color mode also looks not much
profitable.

OTOH, re-checking the ranges or keyword matched tests is very useful,
for example, if you're trying to split up single testsuite check in
a few independent CI jobs.

Signed-off-by: Ilya Maximets <[email protected]>
---
 tests/automake.mk | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/tests/automake.mk b/tests/automake.mk
index 97312cf2c..366de0b1e 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -183,8 +183,8 @@ DISTCLEANFILES += tests/atconfig tests/atlocal
 AUTOTEST_PATH = 
utilities:vswitchd:ovsdb:vtep:tests:$(PTHREAD_WIN32_DIR_DLL):$(SSL_DIR):ovn/controller-vtep:ovn/northd:ovn/utilities:ovn/controller
 
 check-local:
-       set $(SHELL) '$(TESTSUITE)' -C tests AUTOTEST_PATH=$(AUTOTEST_PATH) 
$(TESTSUITEFLAGS); \
-       "$$@" || (test X'$(RECHECK)' = Xyes && "$$@" -j1 --recheck)
+       set $(SHELL) '$(TESTSUITE)' -C tests AUTOTEST_PATH=$(AUTOTEST_PATH); \
+       "$$@" $(TESTSUITEFLAGS) || (test X'$(RECHECK)' = Xyes && "$$@" 
--recheck)
 
 # Python Coverage support.
 # Requires coverage.py http://nedbatchelder.com/code/coverage/.
@@ -211,8 +211,8 @@ LCOV_OPTS = -b $(abs_top_builddir) -d $(abs_top_builddir) 
-q -c --rc lcov_branch
 GENHTML_OPTS = -q --branch-coverage --num-spaces 4
 check-lcov: all $(check_DATA) clean-lcov
        find . -name '*.gcda' | xargs -n1 rm -f
-       -set $(SHELL) '$(TESTSUITE)' -C tests AUTOTEST_PATH=$(AUTOTEST_PATH) 
$(TESTSUITEFLAGS); \
-       "$$@" || (test X'$(RECHECK)' = Xyes && "$$@" -j1 --recheck)
+       -set $(SHELL) '$(TESTSUITE)' -C tests AUTOTEST_PATH=$(AUTOTEST_PATH); \
+       "$$@" $(TESTSUITEFLAGS) || (test X'$(RECHECK)' = Xyes && "$$@" 
--recheck)
        $(MKDIR_P) tests/lcov
        lcov $(LCOV_OPTS) -o tests/lcov/coverage.info
        genhtml $(GENHTML_OPTS) -o tests/lcov tests/lcov/coverage.info
@@ -261,15 +261,15 @@ check-valgrind: all $(valgrind_wrappers) $(check_DATA)
        @echo 'Valgrind output can be found in tests/testsuite.dir/*/valgrind.*'
        @echo 
'----------------------------------------------------------------------'
 check-kernel-valgrind: all $(valgrind_wrappers) $(check_DATA)
-       set $(SHELL) '$(SYSTEM_KMOD_TESTSUITE)' -C tests VALGRIND='$(VALGRIND)' 
AUTOTEST_PATH='tests/valgrind:$(AUTOTEST_PATH)' -d $(TESTSUITEFLAGS) -j1; \
-       "$$@" || (test X'$(RECHECK)' = Xyes && "$$@" --recheck)
+       set $(SHELL) '$(SYSTEM_KMOD_TESTSUITE)' -C tests VALGRIND='$(VALGRIND)' 
AUTOTEST_PATH='tests/valgrind:$(AUTOTEST_PATH)' -d; \
+       "$$@" $(TESTSUITEFLAGS) -j1 || (test X'$(RECHECK)' = Xyes && "$$@" 
--recheck)
        @echo
        @echo 
'----------------------------------------------------------------------'
        @echo 'Valgrind output can be found in 
tests/system-kmod-testsuite.dir/*/valgrind.*'
        @echo 
'----------------------------------------------------------------------'
 check-userspace-valgrind: all $(valgrind_wrappers) $(check_DATA)
-       set $(SHELL) '$(SYSTEM_USERSPACE_TESTSUITE)' -C tests 
VALGRIND='$(VALGRIND)' AUTOTEST_PATH='tests/valgrind:$(AUTOTEST_PATH)' -d 
$(TESTSUITEFLAGS) -j1; \
-       "$$@" || (test X'$(RECHECK)' = Xyes && "$$@" --recheck)
+       set $(SHELL) '$(SYSTEM_USERSPACE_TESTSUITE)' -C tests 
VALGRIND='$(VALGRIND)' AUTOTEST_PATH='tests/valgrind:$(AUTOTEST_PATH)' -d; \
+       "$$@" $(TESTSUITEFLAGS) -j1 || (test X'$(RECHECK)' = Xyes && "$$@" 
--recheck)
        @echo
        @echo 
'----------------------------------------------------------------------'
        @echo 'Valgrind output can be found in 
tests/system-userspace-testsuite.dir/*/valgrind.*'
@@ -291,8 +291,8 @@ EXTRA_DIST += tests/run-ryu
 
 # Run kmod tests. Assume kernel modules has been installed or linked into the 
kernel
 check-kernel: all
-       set $(SHELL) '$(SYSTEM_KMOD_TESTSUITE)' -C tests  
AUTOTEST_PATH='$(AUTOTEST_PATH)' $(TESTSUITEFLAGS) -j1; \
-       "$$@" || (test X'$(RECHECK)' = Xyes && "$$@" --recheck)
+       set $(SHELL) '$(SYSTEM_KMOD_TESTSUITE)' -C tests  
AUTOTEST_PATH='$(AUTOTEST_PATH)'; \
+       "$$@" $(TESTSUITEFLAGS) -j1 || (test X'$(RECHECK)' = Xyes && "$$@" 
--recheck)
 
 # Testing the out of tree Kernel module
 check-kmod: all
@@ -301,16 +301,16 @@ check-kmod: all
        $(MAKE) check-kernel
 
 check-system-userspace: all
-       set $(SHELL) '$(SYSTEM_USERSPACE_TESTSUITE)' -C tests  
AUTOTEST_PATH='$(AUTOTEST_PATH)' $(TESTSUITEFLAGS) -j1; \
-       "$$@" || (test X'$(RECHECK)' = Xyes && "$$@" --recheck)
+       set $(SHELL) '$(SYSTEM_USERSPACE_TESTSUITE)' -C tests  
AUTOTEST_PATH='$(AUTOTEST_PATH)'; \
+       "$$@" $(TESTSUITEFLAGS) -j1 || (test X'$(RECHECK)' = Xyes && "$$@" 
--recheck)
 
 check-offloads: all
-       set $(SHELL) '$(SYSTEM_OFFLOADS_TESTSUITE)' -C tests  
AUTOTEST_PATH='$(AUTOTEST_PATH)' $(TESTSUITEFLAGS) -j1; \
-       "$$@" || (test X'$(RECHECK)' = Xyes && "$$@" --recheck)
+       set $(SHELL) '$(SYSTEM_OFFLOADS_TESTSUITE)' -C tests  
AUTOTEST_PATH='$(AUTOTEST_PATH)'; \
+       "$$@" $(TESTSUITEFLAGS) -j1 || (test X'$(RECHECK)' = Xyes && "$$@" 
--recheck)
 
 check-dpdk: all
-       set $(SHELL) '$(SYSTEM_DPDK_TESTSUITE)' -C tests  
AUTOTEST_PATH='$(AUTOTEST_PATH)' $(TESTSUITEFLAGS) -j1; \
-       "$$@" || (test X'$(RECHECK)' = Xyes && "$$@" --recheck)
+       set $(SHELL) '$(SYSTEM_DPDK_TESTSUITE)' -C tests  
AUTOTEST_PATH='$(AUTOTEST_PATH)'; \
+       "$$@" $(TESTSUITEFLAGS) -j1 || (test X'$(RECHECK)' = Xyes && "$$@" 
--recheck)
 
 clean-local:
        test ! -f '$(TESTSUITE)' || $(SHELL) '$(TESTSUITE)' -C tests --clean
-- 
2.17.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to