ref: 7059c1de798bbdc1b02eae225d051119ed95fca9
parent: 5e3439bbf7872a03bd3c6d7c2ceca98ade090e64
author: James Zern <[email protected]>
date: Fri May 31 12:08:09 EDT 2013
libs.mk: allow tests to be sharded Creates test_shard.#n [0,9] targets, usable with make -j [jobs] Change-Id: Ied86dcc89ae72d1690564aa0dd86de10e06d25f9
--- a/libs.mk
+++ b/libs.mk
@@ -435,8 +435,7 @@
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 @@
)))\
$(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
##