about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-12-22 13:46:06 -0800
committerAlex Crichton <alex@alexcrichton.com>2013-12-23 09:10:37 -0800
commitfe8b360c9dd1c18c788660a58cba65fccdb8cc46 (patch)
treeed7f6932e0711589d276580f73039aca1516d491
parentd882b1d4f94336c5f64fd3891ee74c0b579dd395 (diff)
downloadrust-fe8b360c9dd1c18c788660a58cba65fccdb8cc46.tar.gz
rust-fe8b360c9dd1c18c788660a58cba65fccdb8cc46.zip
mk: Run doc tests as part of 'make check'
Don't run doc tests during make check-fast because it involves spawning lots of
processes.
-rw-r--r--mk/tests.mk27
1 files changed, 27 insertions, 0 deletions
diff --git a/mk/tests.mk b/mk/tests.mk
index 4dd87b99441..1a56c008ccb 100644
--- a/mk/tests.mk
+++ b/mk/tests.mk
@@ -15,6 +15,7 @@
 
 # The names of crates that must be tested
 TEST_TARGET_CRATES = std extra rustuv
+TEST_DOC_CRATES = std extra
 TEST_HOST_CRATES = rustpkg rustc rustdoc syntax
 TEST_CRATES = $(TEST_TARGET_CRATES) $(TEST_HOST_CRATES)
 
@@ -281,6 +282,7 @@ check-stage$(1)-T-$(2)-H-$(3)-exec:     				\
 	check-stage$(1)-T-$(2)-H-$(3)-rpass-full-exec			\
 	check-stage$(1)-T-$(2)-H-$(3)-rmake-exec			\
         check-stage$(1)-T-$(2)-H-$(3)-crates-exec                       \
+        check-stage$(1)-T-$(2)-H-$(3)-doc-crates-exec                   \
 	check-stage$(1)-T-$(2)-H-$(3)-bench-exec			\
 	check-stage$(1)-T-$(2)-H-$(3)-debuginfo-exec \
 	check-stage$(1)-T-$(2)-H-$(3)-codegen-exec \
@@ -303,6 +305,10 @@ check-stage$(1)-T-$(2)-H-$(3)-crates-exec: \
 
 endif
 
+check-stage$(1)-T-$(2)-H-$(3)-doc-crates-exec: \
+        $$(foreach crate,$$(TEST_DOC_CRATES), \
+           check-stage$(1)-T-$(2)-H-$(3)-doc-$$(crate)-exec)
+
 check-stage$(1)-T-$(2)-H-$(3)-doc-exec: \
         $$(foreach docname,$$(DOC_TEST_NAMES), \
            check-stage$(1)-T-$(2)-H-$(3)-doc-$$(docname)-exec)
@@ -734,6 +740,26 @@ $(foreach host,$(CFG_HOST), \
    $(foreach docname,$(DOC_TEST_NAMES), \
     $(eval $(call DEF_RUN_DOC_TEST,$(stage),$(target),$(host),$(docname)))))))
 
+CRATE_DOC_LIB-std = $(STDLIB_CRATE)
+CRATE_DOC_LIB-extra = $(EXTRALIB_CRATE)
+
+define DEF_CRATE_DOC_TEST
+
+check-stage$(1)-T-$(2)-H-$(2)-doc-$(3)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(2),doc-$(3))
+
+$$(call TEST_OK_FILE,$(1),$(2),$(2),doc-$(3)):		\
+	        $$(TEST_SREQ$(1)_T_$(2)_H_$(2))		\
+		$$(HBIN$(1)_H_$(2))/rustdoc$$(X_$(2))
+	@$$(call E, run doc-$(3) [$(2)])
+	$$(Q)$$(HBIN$(1)_H_$(2))/rustdoc$$(X_$(2)) --test \
+	    $$(CRATE_DOC_LIB-$(3)) && touch $$@
+
+endef
+
+$(foreach host,$(CFG_HOST), \
+ $(foreach stage,$(STAGES), \
+  $(foreach crate,$(TEST_DOC_CRATES), \
+   $(eval $(call DEF_CRATE_DOC_TEST,$(stage),$(host),$(crate))))))
 
 ######################################################################
 # Extracting tests for docs
@@ -762,6 +788,7 @@ $(foreach host,$(CFG_HOST), \
 TEST_GROUPS = \
 	crates \
 	$(foreach crate,$(TEST_CRATES),$(crate)) \
+	$(foreach crate,$(TEST_DOC_CRATES),doc-$(crate)) \
 	rpass \
 	rpass-full \
 	rfail \