forked from Imagelibrary/binutils-gdb
New TESTS variable to run a subset of tests in parallel.
* Makefile.in (TESTS): New variable. (expanded_tests, expanded_tests_or_none): New variables (check-single): Pass $(expanded_tests_or_none) to runtest. (check-parallel): Only run tests in $(TESTS) if non-empty. (check/no-matching-tests-found): New rule. * README: Document TESTS makefile variable.
This commit is contained in:
@@ -1,3 +1,12 @@
|
|||||||
|
2014-02-18 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
|
* Makefile.in (TESTS): New variable.
|
||||||
|
(expanded_tests, expanded_tests_or_none): New variables
|
||||||
|
(check-single): Pass $(expanded_tests_or_none) to runtest.
|
||||||
|
(check-parallel): Only run tests in $(TESTS) if non-empty.
|
||||||
|
(check/no-matching-tests-found): New rule.
|
||||||
|
* README: Document TESTS makefile variable.
|
||||||
|
|
||||||
2014-02-18 Doug Evans <dje@google.com>
|
2014-02-18 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
* Makefile.in (check-parallel): rm -rf outputs temp.
|
* Makefile.in (check-parallel): rm -rf outputs temp.
|
||||||
|
|||||||
@@ -160,8 +160,25 @@ DO_RUNTEST = \
|
|||||||
export TCL_LIBRARY ; fi ; \
|
export TCL_LIBRARY ; fi ; \
|
||||||
$(RUNTEST)
|
$(RUNTEST)
|
||||||
|
|
||||||
|
# TESTS exists for the user to pass on the command line to easily
|
||||||
|
# say "Only run these tests." With check-single it's not necessary, but
|
||||||
|
# with check-parallel there's no other way to (easily) specify a subset
|
||||||
|
# of tests. For consistency we support it for check-single as well.
|
||||||
|
# To specify all tests in a subdirectory, use TESTS=gdb.subdir/*.exp.
|
||||||
|
# E.g., make check TESTS="gdb.server/*.exp gdb.threads/*.exp".
|
||||||
|
@GMAKE_TRUE@TESTS :=
|
||||||
|
@GMAKE_FALSE@TESTS =
|
||||||
|
|
||||||
|
@GMAKE_TRUE@ifeq ($(strip $(TESTS)),)
|
||||||
|
@GMAKE_TRUE@expanded_tests_or_none :=
|
||||||
|
@GMAKE_TRUE@else
|
||||||
|
@GMAKE_TRUE@expanded_tests := $(patsubst $(srcdir)/%,%,$(wildcard $(addprefix $(srcdir)/,$(TESTS))))
|
||||||
|
@GMAKE_TRUE@expanded_tests_or_none := $(or $(expanded_tests),no-matching-tests-found)
|
||||||
|
@GMAKE_TRUE@endif
|
||||||
|
@GMAKE_FALSE@expanded_tests_or_none = $(TESTS)
|
||||||
|
|
||||||
check-single:
|
check-single:
|
||||||
$(DO_RUNTEST) $(RUNTESTFLAGS)
|
$(DO_RUNTEST) $(RUNTESTFLAGS) $(expanded_tests_or_none)
|
||||||
|
|
||||||
check-parallel:
|
check-parallel:
|
||||||
-rm -rf cache outputs temp
|
-rm -rf cache outputs temp
|
||||||
@@ -180,11 +197,15 @@ check-parallel:
|
|||||||
# them to the front of the list to try to lessen the overall time
|
# them to the front of the list to try to lessen the overall time
|
||||||
# taken by the test suite -- if one of these tests happens to be run
|
# taken by the test suite -- if one of these tests happens to be run
|
||||||
# late, it will cause the overall time to increase.
|
# late, it will cause the overall time to increase.
|
||||||
|
@GMAKE_TRUE@ifeq ($(strip $(TESTS)),)
|
||||||
slow_tests = gdb.base/break-interp.exp gdb.base/interp.exp \
|
slow_tests = gdb.base/break-interp.exp gdb.base/interp.exp \
|
||||||
gdb.base/multi-forks.exp
|
gdb.base/multi-forks.exp
|
||||||
@GMAKE_TRUE@all_tests := $(shell cd $(srcdir) && find gdb.* -name '*.exp' -print)
|
@GMAKE_TRUE@all_tests := $(shell cd $(srcdir) && find gdb.* -name '*.exp' -print)
|
||||||
@GMAKE_TRUE@reordered_tests := $(slow_tests) $(filter-out $(slow_tests),$(all_tests))
|
@GMAKE_TRUE@reordered_tests := $(slow_tests) $(filter-out $(slow_tests),$(all_tests))
|
||||||
@GMAKE_TRUE@TEST_TARGETS := $(addprefix check/,$(reordered_tests))
|
@GMAKE_TRUE@TEST_TARGETS := $(addprefix check/,$(reordered_tests))
|
||||||
|
@GMAKE_TRUE@else
|
||||||
|
@GMAKE_TRUE@TEST_TARGETS := $(addprefix check/,$(expanded_tests_or_none))
|
||||||
|
@GMAKE_TRUE@endif
|
||||||
|
|
||||||
do-check-parallel: $(TEST_TARGETS)
|
do-check-parallel: $(TEST_TARGETS)
|
||||||
@:
|
@:
|
||||||
@@ -193,6 +214,11 @@ do-check-parallel: $(TEST_TARGETS)
|
|||||||
@GMAKE_TRUE@ -mkdir -p outputs/$*
|
@GMAKE_TRUE@ -mkdir -p outputs/$*
|
||||||
@GMAKE_TRUE@ @$(DO_RUNTEST) GDB_PARALLEL=yes --outdir=outputs/$* $*.exp $(RUNTESTFLAGS)
|
@GMAKE_TRUE@ @$(DO_RUNTEST) GDB_PARALLEL=yes --outdir=outputs/$* $*.exp $(RUNTESTFLAGS)
|
||||||
|
|
||||||
|
check/no-matching-tests-found:
|
||||||
|
@echo ""
|
||||||
|
@echo "No matching tests found."
|
||||||
|
@echo ""
|
||||||
|
|
||||||
check-perf: all $(abs_builddir)/site.exp
|
check-perf: all $(abs_builddir)/site.exp
|
||||||
@if test ! -d gdb.perf; then mkdir gdb.perf; fi
|
@if test ! -d gdb.perf; then mkdir gdb.perf; fi
|
||||||
$(DO_RUNTEST) --directory=gdb.perf --outdir gdb.perf GDB_PERFTEST_MODE=both $(RUNTESTFLAGS)
|
$(DO_RUNTEST) --directory=gdb.perf --outdir gdb.perf GDB_PERFTEST_MODE=both $(RUNTESTFLAGS)
|
||||||
|
|||||||
@@ -151,6 +151,30 @@ them, both to stdout and in the test suite log file.
|
|||||||
|
|
||||||
This setting is only meaningful in conjunction with GDB_PARALLEL.
|
This setting is only meaningful in conjunction with GDB_PARALLEL.
|
||||||
|
|
||||||
|
TESTS
|
||||||
|
|
||||||
|
This variable is used to specify which set of tests to run.
|
||||||
|
It is passed to make (not runtest) and its contents are a space separated
|
||||||
|
list of tests to run.
|
||||||
|
|
||||||
|
If using GNU make then the contents are wildcard-expanded using
|
||||||
|
GNU make's $(wildcard) function. Test paths must be fully specified,
|
||||||
|
relative to the "testsuite" subdirectory. This allows one to run all
|
||||||
|
tests in a subdirectory by passing "gdb.subdir/*.exp".
|
||||||
|
If for some strange reason one wanted to run all tests that begin with
|
||||||
|
the letter "d" that is also possible: TESTS="*/d*.exp".
|
||||||
|
|
||||||
|
Do not write */*.exp to specify all tests (assuming all tests are only
|
||||||
|
nested one level deep, which is not necessarily true). This will pick up
|
||||||
|
.exp files in ancillary directories like "lib" and "config".
|
||||||
|
Instead write gdb.*/*.exp.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
make -j10 check TESTS="gdb.server/[s-w]*.exp */x*.exp"
|
||||||
|
|
||||||
|
If not using GNU make then the value is passed directly to runtest.
|
||||||
|
If not specified, all tests are run.
|
||||||
|
|
||||||
Testsuite Configuration
|
Testsuite Configuration
|
||||||
***********************
|
***********************
|
||||||
|
|||||||
Reference in New Issue
Block a user