]> granicus.if.org Git - libvpx/commitdiff
libs.mk: allow tests to be sharded
authorJames Zern <jzern@google.com>
Fri, 31 May 2013 23:08:09 +0000 (16:08 -0700)
committerJames Zern <jzern@google.com>
Thu, 13 Jun 2013 22:31:30 +0000 (15:31 -0700)
Creates test_shard.#n [0,9] targets, usable with make -j [jobs]

Change-Id: Ied86dcc89ae72d1690564aa0dd86de10e06d25f9

libs.mk

diff --git a/libs.mk b/libs.mk
index 8428f899d2d17fee2165d75cb2f4548f0a82728e..f7ed95bce5c3887bedd145f20f07cc4011ce3ca4 100644 (file)
--- 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
 
 ##