diff options
| author | Ryan Prichard <ryan.prichard@gmail.com> | 2015-04-17 05:05:22 -0700 |
|---|---|---|
| committer | Ryan Prichard <ryan.prichard@gmail.com> | 2015-04-22 20:26:19 -0700 |
| commit | b7ab2aeebddc927f8e4bc98093db57f2ba56844b (patch) | |
| tree | 4634cf6486b211e2adc038a93283ed1084789bd3 | |
| parent | 7fbedc58e3b0e102ece926a7f99041fc3ad3037a (diff) | |
| download | rust-b7ab2aeebddc927f8e4bc98093db57f2ba56844b.tar.gz rust-b7ab2aeebddc927f8e4bc98093db57f2ba56844b.zip | |
Fix the dependency for the pretty-rpass-full tests
The current code attempts to define the PRETTY_DEPS$(1)_H_$(3)_pretty-rpass-full variable, which does not work, because $(1) and $(3) are not inside a function. Moreover, there is a test (run-pass-fulldeps/compiler-calls.rs) that uses rustc_driver, which is not an indirect dependency of librustc or libsyntax. Listing all the dependencies will be hard to maintain, but there's a better way to do this... As with the rpass-full and cfail-full tests, add dependencies using the $$(CSREQ$(1)_T_$(3)_H_$(3)) variable, which includes the complete set of host and target crates, built for a particular stage and host. We use T_$(3), not T_$(2), because we only build LLVM for host triples (not target triples), so we can only build rustc_llvm for host triples. The fulldeps tests that use plugins need host rustc crates, whereas fulldeps tests that link against rustc and run should be skipped for cross-compilation (such as Android). Fixes #22021
| -rw-r--r-- | mk/tests.mk | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/mk/tests.mk b/mk/tests.mk index a540d2bace4..2d72583e07e 100644 --- a/mk/tests.mk +++ b/mk/tests.mk @@ -753,13 +753,6 @@ PRETTY_DEPS_pretty-rpass-full = $(RPASS_FULL_TESTS) PRETTY_DEPS_pretty-rfail = $(RFAIL_TESTS) PRETTY_DEPS_pretty-bench = $(BENCH_TESTS) PRETTY_DEPS_pretty-pretty = $(PRETTY_TESTS) -# The stage- and host-specific dependencies are for e.g. macro_crate_test which pulls in -# external crates. -PRETTY_DEPS$(1)_H_$(3)_pretty-rpass = -PRETTY_DEPS$(1)_H_$(3)_pretty-rpass-full = $$(HLIB$(1)_H_$(3))/stamp.syntax $$(HLIB$(1)_H_$(3))/stamp.rustc -PRETTY_DEPS$(1)_H_$(3)_pretty-rfail = -PRETTY_DEPS$(1)_H_$(3)_pretty-bench = -PRETTY_DEPS$(1)_H_$(3)_pretty-pretty = PRETTY_DIRNAME_pretty-rpass = run-pass PRETTY_DIRNAME_pretty-rpass-valgrind = run-pass-valgrind PRETTY_DIRNAME_pretty-rpass-full = run-pass-fulldeps @@ -767,6 +760,15 @@ PRETTY_DIRNAME_pretty-rfail = run-fail PRETTY_DIRNAME_pretty-bench = bench PRETTY_DIRNAME_pretty-pretty = pretty +define DEF_PRETTY_FULLDEPS +PRETTY_DEPS$(1)_T_$(2)_H_$(3)_pretty-rpass-full = $$(CSREQ$(1)_T_$(3)_H_$(3)) +endef + +$(foreach host,$(CFG_HOST), \ + $(foreach target,$(CFG_TARGET), \ + $(foreach stage,$(STAGES), \ + $(eval $(call DEF_PRETTY_FULLDEPS,$(stage),$(target),$(host)))))) + define DEF_RUN_PRETTY_TEST PRETTY_ARGS$(1)-T-$(2)-H-$(3)-$(4) := \ @@ -780,7 +782,7 @@ check-stage$(1)-T-$(2)-H-$(3)-$(4)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4 $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)): \ $$(TEST_SREQ$(1)_T_$(2)_H_$(3)) \ $$(PRETTY_DEPS_$(4)) \ - $$(PRETTY_DEPS$(1)_H_$(3)_$(4)) + $$(PRETTY_DEPS$(1)_T_$(2)_H_$(3)_$(4)) @$$(call E, run pretty-rpass [$(2)]: $$<) $$(Q)touch $$@.start_time $$(Q)$$(call CFG_RUN_CTEST_$(2),$(1),$$<,$(3)) \ |
