ICU-10351 add "pcheck", parallel check

X-SVN-Rev: 34177
This commit is contained in:
Steven R. Loomis 2013-09-04 02:09:29 +00:00
parent 003c35c1d9
commit 6fdda37087
2 changed files with 48 additions and 1 deletions

View file

@ -90,6 +90,9 @@ xcheck: all xcheck-recursive
xperf: all xperf-recursive
check-exhaustive: all check-exhaustive-recursive
pcheck: all tests
@$(MAKE) -C test pcheck
check-exhaustive-local: check-local
xcheck-recursive: all xcheck-local

View file

@ -20,7 +20,7 @@ STATUS_TMP = tmp
STATUS_FULL = $(shell pwd)/$(STATUS_TMP)
## Files to remove for 'make clean'
CLEANFILES = *~
CLEANFILES = *~ $(STATUS_TMP)
SUBDIRS = testdata intltest $(IOTEST) cintltst
@ -108,6 +108,50 @@ xcheck-recursive check-recursive check-exhaustive-recursive:
echo "All tests OK: $$goods"; \
fi
# pcheck = parallel check. We don't care about the output interleaving,
# just run it as fast as possible.
# todo would be to merge this code into the above non-parallel check.
STATUS_NUM:=$(shell echo $$$$)
MYSTATUS_R=$(STATUS_FULL)/status.$(STATUS_NUM).deleteme
STATUS_FILES=$(SUBDIRS:%=$(MYSTATUS_R).%)
pcheck_setup: testdata
@$(MKINSTALLDIRS) $(STATUS_TMP)
$(RMV) "$(MYSTATUS_R)".*
@echo Beginning parallel make. Output may be interleaved!
$(STATUS_FULL)/status.$(STATUS_NUM).deleteme.%: pcheck_setup
@$(MAKE) -C $* TEST_STATUS_FILE=$@ check || ( echo "FAILED: $* (other tests may still be running..)" ; touch $@.FAIL ; false )
-@touch $@.PASS
-@echo "PASSED: $* (other tests may still be running..)"
# print out status
pcheck: $(STATUS_FILES)
@goods= ; \
bads= ; \
echo "---------------"; \
for subdir in $(SUBDIRS); do \
if [ -f "$(MYSTATUS_R).$$subdir.FAIL" ]; \
then \
bads="$$bads $$subdir" ; \
elif [ -f "$(MYSTATUS_R).$$subdir.PASS" ]; \
then \
goods="$$goods $$subdir" ; \
else \
echo "*** subtest did not complete - $$subdir" ; \
bads="$$bads $$subdir" ; \
fi ; \
done ; \
echo "ALL TESTS SUMMARY:"; \
if test ! "x$$bads" = "x"; then \
echo "(to get non-interleaved err output, use \"$(MAKE) check\" instead.)" ; \
echo "ok: $$goods"; \
echo "===== ERRS: $$bads"; exit 1; \
else \
echo "All tests OK: $$goods"; \
fi
-@$(RMV) "$(MYSTATUS_R)".*
all-local:
install-local: