diff --git a/common.mk b/common.mk index d031ab2886..6aea69e9e0 100644 --- a/common.mk +++ b/common.mk @@ -883,10 +883,12 @@ test-sample: test-basic # backward compatibility for mswin-build test-short: btest-ruby $(DOT_WAIT) test-knownbug $(DOT_WAIT) test-basic test: test-short +yes-test-all-precheck: programs encs exts PHONY $(DOT_WAIT) + # $ make test-all TESTOPTS="--help" displays more detail # for example, make test-all TESTOPTS="-j2 -v -n test-name -- test-file-name" test-all: $(TEST_RUNNABLE)-test-all -yes-test-all: programs PHONY +yes-test-all: yes-test-all-precheck $(ACTIONS_GROUP) $(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(TESTSDIR)/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) $(TESTS) $(ACTIONS_ENDGROUP) @@ -928,10 +930,10 @@ $(RBCONFIG): $(tooldir)/mkconfig.rb config.status $(srcdir)/version.h $(srcdir)/ test-rubyspec: test-spec yes-test-rubyspec: yes-test-spec -test-spec-precheck: programs yes-fake +yes-test-spec-precheck: yes-test-all-precheck yes-fake test-spec: $(TEST_RUNNABLE)-test-spec -yes-test-spec: test-spec-precheck +yes-test-spec: yes-test-spec-precheck $(ACTIONS_GROUP) $(gnumake_recursive)$(Q) \ $(RUNRUBY) -r./$(arch)-fake -r$(tooldir)/rubyspec_temp \ @@ -1544,6 +1546,7 @@ check: $(DOT_WAIT) $(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest test-bundler-precheck: $(TEST_RUNNABLE)-test-bundler-precheck no-test-bundler-precheck: yes-test-bundler-precheck: main $(arch)-fake.rb +yes-test-bundler-parallel-precheck: yes-test-bundler-precheck test-bundler-prepare: $(TEST_RUNNABLE)-test-bundler-prepare no-test-bundler-prepare: no-test-bundler-precheck diff --git a/defs/gmake.mk b/defs/gmake.mk index db622db257..9042b8ad12 100644 --- a/defs/gmake.mk +++ b/defs/gmake.mk @@ -38,6 +38,7 @@ TEST_DEPENDS := $(filter-out test-all $(TEST_TARGETS),$(TEST_DEPENDS)) TEST_TARGETS := $(patsubst test,test-short,$(TEST_TARGETS)) TEST_DEPENDS := $(filter-out test $(TEST_TARGETS),$(TEST_DEPENDS)) TEST_TARGETS := $(patsubst test-short,btest-ruby test-knownbug test-basic,$(TEST_TARGETS)) +TEST_TARGETS := $(patsubst test-basic,test-basic test-leaked-globals,$(TEST_TARGETS)) TEST_TARGETS := $(patsubst test-bundled-gems,test-bundled-gems-run,$(TEST_TARGETS)) TEST_TARGETS := $(patsubst test-bundled-gems-run,test-bundled-gems-run $(PREPARE_BUNDLED_GEMS),$(TEST_TARGETS)) TEST_TARGETS := $(patsubst test-bundled-gems-prepare,test-bundled-gems-prepare $(PRECHECK_BUNDLED_GEMS) test-bundled-gems-fetch,$(TEST_TARGETS)) @@ -92,16 +93,31 @@ $(addprefix yes-,$(TEST_TARGETS)): $(TEST_DEPENDS) endif ORDERED_TEST_TARGETS := $(filter $(TEST_TARGETS), \ - btest-ruby test-knownbug test-basic \ + btest-ruby test-knownbug test-leaked-globals test-basic \ test-testframework test-tool test-ruby test-all \ test-spec test-syntax-suggest-prepare test-syntax-suggest \ test-bundler-prepare test-bundler test-bundler-parallel \ test-bundled-gems-precheck test-bundled-gems-fetch \ test-bundled-gems-prepare test-bundled-gems-run \ ) -prev_test := $(if $(filter test-spec,$(ORDERED_TEST_TARGETS)),test-spec-precheck) + +# grep ^yes-test-.*-precheck: template/Makefile.in defs/gmake.mk common.mk +test_prechecks := $(filter $(ORDERED_TEST_TARGETS),\ + test-leaked-globals \ + test-all \ + test-spec \ + test-syntax-suggest \ + test-bundler \ + test-bundler-parallel \ + test-bundled-gems\ + ) +prev_test := $(subst test-bundler-parallel,test-bundler,$(test_prechecks)) +prev_test := $(addsuffix -precheck,$(prev_test)) +first_test_prechecks := $(prev_test) + $(foreach test,$(ORDERED_TEST_TARGETS), \ - $(eval yes-$(value test) no-$(value test): $(value prev_test)); \ + $(eval yes-$(value test): $(addprefix yes-,$(value prev_test))); \ + $(eval no-$(value test): $(addprefix no-,$(value prev_test))); \ $(eval prev_test := $(value test))) endif diff --git a/template/Makefile.in b/template/Makefile.in index 5e7edc2f18..4a19a3cec6 100644 --- a/template/Makefile.in +++ b/template/Makefile.in @@ -637,8 +637,11 @@ un-runnable: $(Q) exit 1 LIBRUBY_FOR_LEAKED_GLOBALS = $(enable_shared:no=) -yes-test-basic: $(DOT_WAIT) leaked-globals -leaked-globals: $(COMMONOBJS) prog $(tooldir)/leaked-globals +yes-test-basic: $(DOT_WAIT) test-leaked-globals +leaked-globals: test-leaked-globals +yes-test-leaked-globals-precheck: $(COMMONOBJS) prog $(tooldir)/leaked-globals +test-leaked-globals: yes-test-leaked-globals +yes-test-leaked-globals: yes-test-leaked-globals-precheck $(ACTIONS_GROUP) $(Q) $(XRUBY) $(tooldir)/leaked-globals \ SOEXT=$(SOEXT) NM="$(NM) -Pgp" SYMBOL_PREFIX=$(SYMBOL_PREFIX) \