tests.mk 14.8 KB
Newer Older
G
Graydon Hoare 已提交
1 2 3 4 5 6 7 8
######################################################################
# Testing variables
######################################################################

ALL_TEST_INPUTS = $(wildcard $(S)src/test/*/*.rs   \
                              $(S)src/test/*/*/*.rs \
                              $(S)src/test/*/*.rc)

9
RPASS_RC := $(wildcard $(S)src/test/run-pass/*.rc)
B
Brian Anderson 已提交
10
RPASS_RS := $(wildcard $(S)src/test/run-pass/*.rs)
11 12 13 14
RFAIL_RC := $(wildcard $(S)src/test/run-fail/*.rc)
RFAIL_RS := $(wildcard $(S)src/test/run-fail/*.rs)
CFAIL_RC := $(wildcard $(S)src/test/compile-fail/*.rc)
CFAIL_RS := $(wildcard $(S)src/test/compile-fail/*.rs)
15 16
BENCH_RS := $(wildcard $(S)src/test/bench/*.rs)
PRETTY_RS := $(wildcard $(S)src/test/pretty/*.rs)
G
Graydon Hoare 已提交
17

18 19 20 21
# perf tests are the same as bench tests only they run under
# a performance monitor.
PERF_RS := $(wildcard $(S)src/test/bench/*.rs)

B
Brian Anderson 已提交
22 23 24
RPASS_TESTS := $(RPASS_RC) $(RPASS_RS)
RFAIL_TESTS := $(RFAIL_RC) $(RFAIL_RS)
CFAIL_TESTS := $(CFAIL_RC) $(CFAIL_RS)
25
BENCH_TESTS := $(BENCH_RS)
26
PERF_TESTS := $(PERF_RS)
27
PRETTY_TESTS := $(PRETTY_RS)
G
Graydon Hoare 已提交
28

29 30 31 32
FT := run_pass_stage2
FT_LIB := $(call CFG_LIB_NAME,$(FT))
FT_DRIVER := $(FT)_driver

B
Brian Anderson 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45
# The arguments to all test runners
ifdef TESTNAME
  TESTARGS += $(TESTNAME)
endif

ifdef CHECK_XFAILS
  TESTARGS += --ignored
endif

# Arguments to the cfail/rfail/rpass/bench tests
ifdef CFG_VALGRIND
  CTEST_RUNTOOL = --runtool "$(CFG_VALGRIND)"
endif
46

47 48 49 50 51
# Arguments to the perf tests
ifdef CFG_PERF_TOOL
  CTEST_PERF_RUNTOOL = --runtool "$(CFG_PERF_TOOL)"
endif

B
Brian Anderson 已提交
52
CTEST_TESTARGS := $(TESTARGS)
G
Graydon Hoare 已提交
53

B
Brian Anderson 已提交
54 55 56
ifdef VERBOSE
  CTEST_TESTARGS += --verbose
endif
57

B
Brian Anderson 已提交
58 59 60
# The standard library test crate
STDTEST_CRATE := $(S)src/test/stdtest/stdtest.rc
STDTEST_INPUTS := $(wildcard $(S)src/test/stdtest/*rs)
61

62 63
# Run the compiletest runner itself under valgrind
ifdef CTEST_VALGRIND
64
  CFG_RUN_CTEST=$(call CFG_RUN_TEST,$(2),$(3))
65
else
N
Niko Matsakis 已提交
66
  CFG_RUN_CTEST=$(call CFG_RUN,$(TLIB$(1)_T_$(3)_H_$(3)),$(2))
67
endif
68

B
Brian Anderson 已提交
69 70 71 72
######################################################################
# Main test targets
######################################################################

N
Niko Matsakis 已提交
73
check: tidy check-stage3 \
74

B
Brian Anderson 已提交
75
check-full: tidy check-stage1 check-stage2 check-stage3 \
76

77
# Run the tidy script in multiple parts to avoid huge 'echo' commands
78
ifdef CFG_NOTIDY
B
Brian Anderson 已提交
79
tidy:
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
else
tidy:
		@$(call E, check: formatting)
		$(Q)echo \
	  	  $(addprefix $(S)src/, $(RUSTLLVM_LIB_CS) $(RUSTLLVM_OBJS_CS) \
	    	  $(RUSTLLVM_HDR) \
                $(RUNTIME_CS) $(RUNTIME_HDR) $(RUNTIME_S)) \
              $(wildcard $(S)src/etc/*.py)  \
              $(COMPILER_CRATE) \
              $(COMPILER_INPUTS) \
              $(STDLIB_CRATE) \
              $(STDLIB_INPUTS) \
              $(COMPILETEST_CRATE) \
              $(COMPILETEST_INPUTS) \
		  | xargs -n 10 python $(S)src/etc/tidy.py
		$(Q)echo \
              $(ALL_TEST_INPUTS) \
	  	| xargs -n 10 python $(S)src/etc/tidy.py
endif
99 100

######################################################################
B
Brian Anderson 已提交
101
# Rules for the test runners
102 103
######################################################################

B
Brian Anderson 已提交
104
define TEST_STAGEN
105

B
Brian Anderson 已提交
106
# All the per-stage build rules you might want to call from the
107 108 109
# command line.
#
# $(1) is the stage number
N
Niko Matsakis 已提交
110 111
# $(2) is the target triple to test
# $(3) is the host triple to test
112

N
Niko Matsakis 已提交
113 114 115 116 117 118 119 120
check-stage$(1)-T-$(2)-H-$(3): tidy				\
	check-stage$(1)-T-$(2)-H-$(3)-rustc			\
	check-stage$(1)-T-$(2)-H-$(3)-std			\
	check-stage$(1)-T-$(2)-H-$(3)-rpass			\
	check-stage$(1)-T-$(2)-H-$(3)-rfail			\
	check-stage$(1)-T-$(2)-H-$(3)-cfail			\
	check-stage$(1)-T-$(2)-H-$(3)-bench			\
	check-stage$(1)-T-$(2)-H-$(3)-pretty
121

N
Niko Matsakis 已提交
122 123
check-stage$(1)-T-$(2)-H-$(3)-std:				\
	check-stage$(1)-T-$(2)-H-$(3)-std-dummy
124

N
Niko Matsakis 已提交
125 126
check-stage$(1)-T-$(2)-H-$(3)-rustc:				\
	check-stage$(1)-T-$(2)-H-$(3)-rustc-dummy
127

N
Niko Matsakis 已提交
128 129
check-stage$(1)-T-$(2)-H-$(3)-cfail:				\
	check-stage$(1)-T-$(2)-H-$(3)-cfail-dummy
G
Graydon Hoare 已提交
130

N
Niko Matsakis 已提交
131 132
check-stage$(1)-T-$(2)-H-$(3)-rfail:				\
	check-stage$(1)-T-$(2)-H-$(3)-rfail-dummy
133

N
Niko Matsakis 已提交
134 135
check-stage$(1)-T-$(2)-H-$(3)-rpass:				\
	check-stage$(1)-T-$(2)-H-$(3)-rpass-dummy
136

N
Niko Matsakis 已提交
137 138
check-stage$(1)-T-$(2)-H-$(3)-bench:				\
	check-stage$(1)-T-$(2)-H-$(3)-bench-dummy
139

N
Niko Matsakis 已提交
140 141
check-stage$(1)-T-$(2)-H-$(3)-perf:				\
	check-stage$(1)-T-$(2)-H-$(3)-perf-dummy
142

N
Niko Matsakis 已提交
143 144 145 146 147
check-stage$(1)-T-$(2)-H-$(3)-pretty:			\
	check-stage$(1)-T-$(2)-H-$(3)-pretty-rpass	\
    check-stage$(1)-T-$(2)-H-$(3)-pretty-rfail	\
    check-stage$(1)-T-$(2)-H-$(3)-pretty-bench	\
    check-stage$(1)-T-$(2)-H-$(3)-pretty-pretty
G
Graydon Hoare 已提交
148

N
Niko Matsakis 已提交
149 150
check-stage$(1)-T-$(2)-H-$(3)-pretty-rpass:			\
	check-stage$(1)-T-$(2)-H-$(3)-pretty-rpass-dummy
G
Graydon Hoare 已提交
151

N
Niko Matsakis 已提交
152 153
check-stage$(1)-T-$(2)-H-$(3)-pretty-rfail:			\
	check-stage$(1)-T-$(2)-H-$(3)-pretty-rfail-dummy
G
Graydon Hoare 已提交
154

N
Niko Matsakis 已提交
155 156
check-stage$(1)-T-$(2)-H-$(3)-pretty-bench:			\
	check-stage$(1)-T-$(2)-H-$(3)-pretty-bench-dummy
G
Graydon Hoare 已提交
157

N
Niko Matsakis 已提交
158 159
check-stage$(1)-T-$(2)-H-$(3)-pretty-pretty:				\
	check-stage$(1)-T-$(2)-H-$(3)-pretty-pretty-dummy
160

B
Brian Anderson 已提交
161
# Rules for the standard library test runner
162

N
Niko Matsakis 已提交
163 164 165
$(3)/test/stdtest.stage$(1)-$(2)$$(X):			\
		$$(STDTEST_CRATE) $$(STDTEST_INPUTS)	\
        $$(SREQ$(1)_T_$(2)_H_$(3))
B
Brian Anderson 已提交
166
	@$$(call E, compile_and_link: $$@)
N
Niko Matsakis 已提交
167
	$$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test
168

N
Niko Matsakis 已提交
169
check-stage$(1)-T-$(2)-H-$(3)-std-dummy:			\
N
Niko Matsakis 已提交
170
		$(3)/test/stdtest.stage$(1)-$(2)$$(X)
B
Brian Anderson 已提交
171
	@$$(call E, run: $$<)
172
	$$(Q)$$(call CFG_RUN_TEST,$$<,$(2),$(3)) $$(TESTARGS)
173

B
Brian Anderson 已提交
174
# Rules for the rustc test runner
175

N
Niko Matsakis 已提交
176 177 178 179
$(3)/test/rustctest.stage$(1)-$(2)$$(X):					\
		$$(COMPILER_CRATE)									\
		$$(COMPILER_INPUTS)									\
		$$(SREQ$(1)_T_$(2)_H_$(3))							\
N
Niko Matsakis 已提交
180
		$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM)
B
Brian Anderson 已提交
181
	@$$(call E, compile_and_link: $$@)
N
Niko Matsakis 已提交
182
	$$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test
183

N
Niko Matsakis 已提交
184
check-stage$(1)-T-$(2)-H-$(3)-rustc-dummy:		\
N
Niko Matsakis 已提交
185
		$(3)/test/rustctest.stage$(1)-$(2)$$(X)
B
Brian Anderson 已提交
186
	@$$(call E, run: $$<)
187
	$$(Q)$$(call CFG_RUN_TEST,$$<,$(2),$(3)) $$(TESTARGS)
188

B
Brian Anderson 已提交
189
# Rules for the cfail/rfail/rpass/bench/perf test runner
190

N
Niko Matsakis 已提交
191
CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) :=						\
N
Niko Matsakis 已提交
192 193 194 195 196 197 198
		--compile-lib-path $$(HLIB$(1)_H_$(3))				\
        --run-lib-path $$(TLIB$(1)_T_$(2)_H_$(3))			\
        --rustc-path $$(HBIN$(1)_H_$(3))/rustc$$(X)			\
        --stage-id stage$(1)-$(2)							\
        --rustcflags "$$(CFG_RUSTC_FLAGS) --target=$(2)"	\
        $$(CTEST_TESTARGS)

199
CFAIL_ARGS$(1)-T-$(2)-H-$(3) :=					\
N
Niko Matsakis 已提交
200 201
		$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3))	\
        --src-base $$(S)src/test/compile-fail/	\
202
        --build-base $(3)/test/compile-fail/	\
N
Niko Matsakis 已提交
203 204
        --mode compile-fail

205
RFAIL_ARGS$(1)-T-$(2)-H-$(3) :=					\
N
Niko Matsakis 已提交
206 207
		$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3))	\
        --src-base $$(S)src/test/run-fail/		\
208
        --build-base $(3)/test/run-fail/		\
N
Niko Matsakis 已提交
209
        --mode run-fail							\
N
Niko Matsakis 已提交
210 211
        $$(CTEST_RUNTOOL)

N
Niko Matsakis 已提交
212
RPASS_ARGS$(1)-T-$(2)-H-$(3) :=				\
N
Niko Matsakis 已提交
213 214
		$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3))	\
        --src-base $$(S)src/test/run-pass/		\
215
        --build-base $(3)/test/run-pass/		\
N
Niko Matsakis 已提交
216
        --mode run-pass					\
N
Niko Matsakis 已提交
217 218
        $$(CTEST_RUNTOOL)

N
Niko Matsakis 已提交
219
BENCH_ARGS$(1)-T-$(2)-H-$(3) :=				\
N
Niko Matsakis 已提交
220 221
		$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3))	\
        --src-base $$(S)src/test/bench/			\
222
        --build-base $(3)/test/bench/			\
N
Niko Matsakis 已提交
223
        --mode run-pass					\
N
Niko Matsakis 已提交
224 225
        $$(CTEST_RUNTOOL)

226
PERF_ARGS$(1)-T-$(2)-H-$(3) :=					\
N
Niko Matsakis 已提交
227 228
		$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3))	\
        --src-base $$(S)src/test/bench/			\
229
        --build-base $(3)/test/perf/			\
N
Niko Matsakis 已提交
230
        --mode run-pass							\
N
Niko Matsakis 已提交
231 232
        $$(CTEST_PERF_RUNTOOL)

233
PRETTY_RPASS_ARGS$(1)-T-$(2)-H-$(3) :=			\
N
Niko Matsakis 已提交
234 235
		$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3))	\
        --src-base $$(S)src/test/run-pass/		\
236
        --build-base $(3)/test/run-pass/		\
N
Niko Matsakis 已提交
237 238
        --mode pretty

239
PRETTY_RFAIL_ARGS$(1)-T-$(2)-H-$(3) :=			\
N
Niko Matsakis 已提交
240 241
		$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3))	\
        --src-base $$(S)src/test/run-fail/		\
242
        --build-base $(3)/test/run-fail/		\
N
Niko Matsakis 已提交
243 244
        --mode pretty

245
PRETTY_BENCH_ARGS$(1)-T-$(2)-H-$(3) :=			\
N
Niko Matsakis 已提交
246 247
		$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3))	\
        --src-base $$(S)src/test/bench/			\
248
        --build-base $(3)/test/bench/			\
N
Niko Matsakis 已提交
249 250
        --mode pretty

251
PRETTY_PRETTY_ARGS$(1)-T-$(2)-H-$(3) :=			\
N
Niko Matsakis 已提交
252 253
		$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3))	\
        --src-base $$(S)src/test/pretty/		\
254
        --build-base $(3)/test/pretty/			\
N
Niko Matsakis 已提交
255 256
        --mode pretty

N
Niko Matsakis 已提交
257
check-stage$(1)-T-$(2)-H-$(3)-cfail-dummy:		\
N
Niko Matsakis 已提交
258
		$$(HBIN$(1)_H_$(3))/compiletest$$(X)	\
N
Niko Matsakis 已提交
259 260
		$$(SREQ$(1)_T_$(2)_H_$(3))		\
	        $$(CFAIL_TESTS)
N
Niko Matsakis 已提交
261 262 263
	@$$(call E, run cfail: $$<)
	$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \
		$$(CFAIL_ARGS$(1)-T-$(2)-H-$(3))
264

N
Niko Matsakis 已提交
265
check-stage$(1)-T-$(2)-H-$(3)-rfail-dummy:		\
N
Niko Matsakis 已提交
266
		$$(HBIN$(1)_H_$(3))/compiletest$$(X)	\
N
Niko Matsakis 已提交
267 268
		$$(SREQ$(1)_T_$(2)_H_$(3))		\
		$$(RFAIL_TESTS)
N
Niko Matsakis 已提交
269 270 271
	@$$(call E, run rfail: $$<)
	$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \
		$$(RFAIL_ARGS$(1)-T-$(2)-H-$(3))
B
Brian Anderson 已提交
272

N
Niko Matsakis 已提交
273
check-stage$(1)-T-$(2)-H-$(3)-rpass-dummy:		\
N
Niko Matsakis 已提交
274
		$$(HBIN$(1)_H_$(3))/compiletest$$(X)	\
N
Niko Matsakis 已提交
275 276
		$$(SREQ$(1)_T_$(2)_H_$(3))		\
	        $$(RPASS_TESTS)
N
Niko Matsakis 已提交
277 278 279
	@$$(call E, run rpass: $$<)
	$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \
		$$(RPASS_ARGS$(1)-T-$(2)-H-$(3))
B
Brian Anderson 已提交
280

N
Niko Matsakis 已提交
281
check-stage$(1)-T-$(2)-H-$(3)-bench-dummy:		\
N
Niko Matsakis 已提交
282
		$$(HBIN$(1)_H_$(3))/compiletest$$(X)	\
N
Niko Matsakis 已提交
283 284
		$$(SREQ$(1)_T_$(2)_H_$(3))		\
		$$(BENCH_TESTS)
N
Niko Matsakis 已提交
285 286 287
	@$$(call E, run bench: $$<)
	$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \
		$$(BENCH_ARGS$(1)-T-$(2)-H-$(3))
288

N
Niko Matsakis 已提交
289
check-stage$(1)-T-$(2)-H-$(3)-perf-dummy:		\
N
Niko Matsakis 已提交
290
		$$(HBIN$(1)_H_$(3))/compiletest$$(X)	\
N
Niko Matsakis 已提交
291 292
	        $$(SREQ$(1)_T_$(2)_H_$(3))		\
	        $$(BENCH_TESTS)
293
	@$$(call E, perf: $$<)
N
Niko Matsakis 已提交
294 295
	$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \
		$$(PERF_ARGS$(1)-T-$(2)-H-$(3))
296

N
Niko Matsakis 已提交
297
check-stage$(1)-T-$(2)-H-$(3)-pretty-rpass-dummy:	\
N
Niko Matsakis 已提交
298 299 300
		$$(HBIN$(1)_H_$(3))/compiletest$$(X)	\
	        $$(SREQ$(1)_T_$(2)_H_$(3))		\
	        $$(RPASS_TESTS)
N
Niko Matsakis 已提交
301 302 303
	@$$(call E, run pretty-rpass: $$<)
	$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \
		$$(PRETTY_RPASS_ARGS$(1)-T-$(2)-H-$(3))
304

N
Niko Matsakis 已提交
305
check-stage$(1)-T-$(2)-H-$(3)-pretty-rfail-dummy:	\
N
Niko Matsakis 已提交
306 307 308
		$$(HBIN$(1)_H_$(3))/compiletest$$(X)	\
	        $$(SREQ$(1)_T_$(2)_H_$(3))		\
	        $$(RFAIL_TESTS)
N
Niko Matsakis 已提交
309 310 311
	@$$(call E, run pretty-rfail: $$<)
	$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \
		$$(PRETTY_RFAIL_ARGS$(1)-T-$(2)-H-$(3))
312

N
Niko Matsakis 已提交
313
check-stage$(1)-T-$(2)-H-$(3)-pretty-bench-dummy:	\
N
Niko Matsakis 已提交
314 315 316
		$$(HBIN$(1)_H_$(3))/compiletest$$(X)	\
		$$(SREQ$(1)_T_$(2)_H_$(3))		\
	        $$(BENCH_TESTS)
N
Niko Matsakis 已提交
317 318 319
	@$$(call E, run pretty-bench: $$<)
	$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \
		$$(PRETTY_BENCH_ARGS$(1)-T-$(2)-H-$(3))
320

N
Niko Matsakis 已提交
321
check-stage$(1)-T-$(2)-H-$(3)-pretty-pretty-dummy:	\
N
Niko Matsakis 已提交
322 323 324
		$$(HBIN$(1)_H_$(3))/compiletest$$(X)	\
	        $$(SREQ$(1)_T_$(2)_H_$(3))		\
	        $$(PRETTY_TESTS)
N
Niko Matsakis 已提交
325 326 327
	@$$(call E, run pretty-pretty: $$<)
	$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \
		$$(PRETTY_PRETTY_ARGS$(1)-T-$(2)-H-$(3))
328

B
Brian Anderson 已提交
329
endef
330

331
# Instantiate the template for stage 0, 1, 2, 3
332

N
Niko Matsakis 已提交
333 334 335 336
$(foreach host,$(CFG_TARGET_TRIPLES), \
 $(eval $(foreach target,$(CFG_TARGET_TRIPLES), \
  $(eval $(foreach stage,$(STAGES), \
   $(eval $(call TEST_STAGEN,$(stage),$(target),$(host))))))))
B
Brian Anderson 已提交
337

N
Niko Matsakis 已提交
338 339 340
######################################################################
# Fast-test rules
######################################################################
341

N
Niko Matsakis 已提交
342 343
GENERATED += tmp/$$(FT).rc tmp/$$(FT_DRIVER).rs

N
Niko Matsakis 已提交
344 345 346 347 348
tmp/$(FT).rc tmp/$(FT_DRIVER).rs: \
		$(TEST_RPASS_SOURCES_STAGE2) \
		$(S)src/etc/combine-tests.py
	@$(call E, check: building combined stage2 test runner)
	$(Q)$(S)src/etc/combine-tests.py
N
Niko Matsakis 已提交
349 350 351 352 353 354 355 356 357 358

define DEF_CHECK_FAST_FOR_T_H
# $(1) unused
# $(2) target triple
# $(3) host triple

$$(TLIB2_T_$(2)_H_$(3))/$$(FT_LIB): \
		tmp/$$(FT).rc \
		$$(SREQ2_T_$(2)_H_$(3))
	@$$(call E, compile_and_link: $$@)
N
Niko Matsakis 已提交
359
	$$(STAGE2_T_$(2)_H_$(3)) --lib -o $$@ $$<
N
Niko Matsakis 已提交
360

N
Niko Matsakis 已提交
361 362 363 364 365 366
$(3)/test/$$(FT_DRIVER)-$(2)$$(X): \
		tmp/$$(FT_DRIVER).rs \
		$$(TLIB2_T_$(2)_H_$(3))/$$(FT_LIB) \
		$$(SREQ2_T_$(2)_H_$(3))
	@$$(call E, compile_and_link: $$@ $$<)
	$$(STAGE2_T_$(2)_H_$(3)) -L $$(TLIB2_T_$(2)_H_$(3)) -o $$@ $$<
N
Niko Matsakis 已提交
367

N
Niko Matsakis 已提交
368 369 370 371
$(3)/test/$$(FT_DRIVER)-$(2).out: \
		$(3)/test/$$(FT_DRIVER)-$(2)$$(X) \
		$$(SREQ2_T_$(2)_H_$(3))
	$$(Q)$$(call CFG_RUN_TEST,$$<,$(2),$(3))
N
Niko Matsakis 已提交
372 373 374 375

check-fast-T-$(2)-H-$(3): tidy			\
	check-stage2-T-$(2)-H-$(3)-rustc	\
	check-stage2-T-$(2)-H-$(3)-std		\
N
Niko Matsakis 已提交
376
	$(3)/test/$$(FT_DRIVER)-$(2).out
N
Niko Matsakis 已提交
377 378 379 380 381 382 383 384 385 386 387 388

endef

$(foreach host,$(CFG_TARGET_TRIPLES), \
 $(eval $(foreach target,$(CFG_TARGET_TRIPLES), \
   $(eval $(call DEF_CHECK_FAST_FOR_T_H,,$(target),$(host))))))

######################################################################
# Shortcut rules
######################################################################

define DEF_CHECK_FOR_STAGE_H
389

390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413
check-stage$(1)-H-$(2):					\
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-T-$$(target)-H-$(2))
check-stage$(1)-H-$(2)-perf:					\
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-T-$$(target)-H-$(2)-perf)
check-stage$(1)-H-$(2)-rustc:					\
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-T-$$(target)-H-$(2)-rustc)
check-stage$(1)-H-$(2)-std:					\
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-T-$$(target)-H-$(2)-std)
check-stage$(1)-H-$(2)-rpass:					\
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-T-$$(target)-H-$(2)-rpass)
check-stage$(1)-H-$(2)-rfail:					\
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-T-$$(target)-H-$(2)-rfail)
check-stage$(1)-H-$(2)-cfail:					\
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-T-$$(target)-H-$(2)-cfail)
check-stage$(1)-H-$(2)-bench:					\
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-T-$$(target)-H-$(2)-bench)
414 415 416

endef

N
Niko Matsakis 已提交
417
$(foreach stage,$(STAGES),					\
N
Niko Matsakis 已提交
418
 $(eval $(foreach target,$(CFG_TARGET_TRIPLES),			\
N
Niko Matsakis 已提交
419 420 421 422 423 424 425
  $(eval $(call DEF_CHECK_FOR_STAGE_H,$(stage),$(target))))))

define DEF_CHECK_FAST_FOR_H

check-fast-H-$(1): 		check-fast-T-$(1)-H-$(1)

endef
N
Niko Matsakis 已提交
426

N
Niko Matsakis 已提交
427 428 429
$(foreach target,$(CFG_TARGET_TRIPLES),			\
 $(eval $(call DEF_CHECK_FAST_FOR_H,$(target))))

430
define DEF_CHECK_ALL_FOR_STAGE
N
Niko Matsakis 已提交
431

432
check-stage$(1)-H-all: \
433 434
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-H-$$(target))
435
check-stage$(1)-H-all-perf: \
436 437
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-H-$$(target)-perf)
438
check-stage$(1)-H-all-rustc: \
439 440
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-H-$$(target)-rustc)
441
check-stage$(1)-H-all-std: \
442 443
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-H-$$(target)-std)
444
check-stage$(1)-H-all-rpass: \
445 446
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-H-$$(target)-rpass)
447
check-stage$(1)-H-all-rfail: \
448 449
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-H-$$(target)-rfail)
450
check-stage$(1)-H-all-cfail: \
451 452
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-H-$$(target)-cfail)
453
check-stage$(1)-H-all-bench: \
454 455
	$$(foreach target,$$(CFG_TARGET_TRIPLES),	\
	 check-stage$(1)-H-$$(target)-bench)
N
Niko Matsakis 已提交
456 457

endef
458

459
$(foreach stage,$(STAGES),						\
460
 $(eval $(call DEF_CHECK_ALL_FOR_STAGE,$(stage))))
461 462 463 464 465 466 467 468 469 470 471 472 473 474

define DEF_CHECK_FOR_STAGE

check-stage$(1): check-stage$(1)-H-$$(CFG_HOST_TRIPLE)
check-stage$(1)-perf: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-perf
check-stage$(1)-rustc: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-rustc
check-stage$(1)-std: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-std
check-stage$(1)-rpass: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-rpass
check-stage$(1)-rfail: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-rfail
check-stage$(1)-cfail: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-cfail
check-stage$(1)-bench: check-stage$(1)-H-$$(CFG_HOST_TRIPLE)-bench

endef

N
Niko Matsakis 已提交
475
$(foreach stage,$(STAGES),						\
N
Niko Matsakis 已提交
476
 $(eval $(call DEF_CHECK_FOR_STAGE,$(stage))))
B
Brian Anderson 已提交
477

N
Niko Matsakis 已提交
478
check-fast: check-fast-H-$(CFG_HOST_TRIPLE)