From: James Zern Date: Fri, 31 May 2013 23:08:09 +0000 (-0700) Subject: libs.mk: allow tests to be sharded X-Git-Tag: v1.3.0~1098^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7059c1de798bbdc1b02eae225d051119ed95fca9;p=libvpx libs.mk: allow tests to be sharded Creates test_shard.#n [0,9] targets, usable with make -j [jobs] Change-Id: Ied86dcc89ae72d1690564aa0dd86de10e06d25f9 --- diff --git a/libs.mk b/libs.mk index 8428f899d..f7ed95bce 100644 --- a/libs.mk +++ b/libs.mk @@ -435,8 +435,7 @@ test_libvpx.$(VCPROJ_SFX): $(LIBVPX_TEST_SRCS) vpx.$(VCPROJ_SFX) gtest.$(VCPROJ_ PROJECTS-$(CONFIG_MSVS) += test_libvpx.$(VCPROJ_SFX) -test:: testdata - @set -e; for t in $(addprefix $(TGT_OS:win64=x64)/Release/,$(notdir $(LIBVPX_TEST_BINS:.cc=.exe))); do $$t; done +LIBVPX_TEST_BINS := $(addprefix $(TGT_OS:win64=x64)/Release/,$(notdir $(LIBVPX_TEST_BINS))) endif else @@ -471,10 +470,24 @@ $(foreach bin,$(LIBVPX_TEST_BINS),\ )))\ $(if $(LIPO_LIBS),$(eval $(call lipo_bin_template,$(bin))))\ -test:: $(LIBVPX_TEST_BINS) testdata - @set -e; for t in $(LIBVPX_TEST_BINS); do $$t; done - endif + +define test_shard_template +test:: test_shard.$(1) +test_shard.$(1): $(LIBVPX_TEST_BINS) testdata + @set -e; \ + for t in $(LIBVPX_TEST_BINS); do \ + export GTEST_SHARD_INDEX=$(1); \ + export GTEST_TOTAL_SHARDS=$(2); \ + $$$$t; \ + done +.PHONY: test_shard.$(1) +endef + +NUM_SHARDS := 10 +SHARDS := 0 1 2 3 4 5 6 7 8 9 +$(foreach s,$(SHARDS),$(eval $(call test_shard_template,$(s),$(NUM_SHARDS)))) + endif ##