From fbc5bb4c0ae10ef159d1c06a40fdf2b7883083d3 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Sat, 6 Jul 2013 01:03:03 -0700 Subject: [PATCH] wire up makefile to run codegen tests and add one to start --- configure | 1 + mk/tests.mk | 19 ++++++++++++++++++- src/test/codegen/hello.cc | 12 ++++++++++++ src/test/codegen/hello.rs | 4 ++++ 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/test/codegen/hello.cc create mode 100644 src/test/codegen/hello.rs diff --git a/configure b/configure index 12782fa9fdb6..8f757a0715f8 100755 --- a/configure +++ b/configure @@ -731,6 +731,7 @@ do make_dir $h/test/perf make_dir $h/test/pretty make_dir $h/test/debug-info + make_dir $h/test/codegen make_dir $h/test/doc-tutorial make_dir $h/test/doc-tutorial-ffi make_dir $h/test/doc-tutorial-macros diff --git a/mk/tests.mk b/mk/tests.mk index 6b6f515ce2b5..7a5a5dc15c30 100644 --- a/mk/tests.mk +++ b/mk/tests.mk @@ -246,6 +246,7 @@ check-stage$(1)-T-$(2)-H-$(3)-exec: \ check-stage$(1)-T-$(2)-H-$(3)-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 \ check-stage$(1)-T-$(2)-H-$(3)-doc-exec \ check-stage$(1)-T-$(2)-H-$(3)-pretty-exec @@ -430,6 +431,8 @@ CFAIL_RS := $(wildcard $(S)src/test/compile-fail/*.rs) BENCH_RS := $(wildcard $(S)src/test/bench/*.rs) PRETTY_RS := $(wildcard $(S)src/test/pretty/*.rs) DEBUGINFO_RS := $(wildcard $(S)src/test/debug-info/*.rs) +CODEGEN_RS := $(wildcard $(S)src/test/codegen/*.rs) +CODEGEN_CC := $(wildcard $(S)src/test/codegen/*.cc) # perf tests are the same as bench tests only they run under # a performance monitor. @@ -443,6 +446,7 @@ BENCH_TESTS := $(BENCH_RS) PERF_TESTS := $(PERF_RS) PRETTY_TESTS := $(PRETTY_RS) DEBUGINFO_TESTS := $(DEBUGINFO_RS) +CODEGEN_TESTS := $(CODEGEN_RS) $(CODEGEN_CC) CTEST_SRC_BASE_rpass = run-pass CTEST_BUILD_BASE_rpass = run-pass @@ -479,10 +483,19 @@ CTEST_BUILD_BASE_debuginfo = debug-info CTEST_MODE_debuginfo = debug-info CTEST_RUNTOOL_debuginfo = $(CTEST_RUNTOOL) +CTEST_SRC_BASE_codegen = codegen +CTEST_BUILD_BASE_codegen = codegen +CTEST_MODE_codegen = codegen +CTEST_RUNTOOL_codegen = $(CTEST_RUNTOOL) + ifeq ($(CFG_GDB),) CTEST_DISABLE_debuginfo = "no gdb found" endif +ifeq ($(CFG_CLANG),) +CTEST_DISABLE_codegen = "no clang found" +endif + ifeq ($(CFG_OSTYPE),apple-darwin) CTEST_DISABLE_debuginfo = "gdb on darwing needs root" endif @@ -507,6 +520,8 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \ --compile-lib-path $$(HLIB$(1)_H_$(3)) \ --run-lib-path $$(TLIB$(1)_T_$(2)_H_$(3)) \ --rustc-path $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \ + --clang-path $(if $(CFG_CLANG),$(CFG_CLANG),clang) \ + --llvm-bin-path $(CFG_LLVM_INST_DIR_$(CFG_BUILD_TRIPLE))/bin \ --aux-base $$(S)src/test/auxiliary/ \ --stage-id stage$(1)-$(2) \ --target $(2) \ @@ -522,6 +537,7 @@ CTEST_DEPS_cfail_$(1)-T-$(2)-H-$(3) = $$(CFAIL_TESTS) CTEST_DEPS_bench_$(1)-T-$(2)-H-$(3) = $$(BENCH_TESTS) CTEST_DEPS_perf_$(1)-T-$(2)-H-$(3) = $$(PERF_TESTS) CTEST_DEPS_debuginfo_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_TESTS) +CTEST_DEPS_codegen_$(1)-T-$(2)-H-$(3) = $$(CODEGEN_TESTS) endef @@ -565,7 +581,7 @@ endif endef -CTEST_NAMES = rpass rpass-full rfail cfail bench perf debuginfo +CTEST_NAMES = rpass rpass-full rfail cfail bench perf debuginfo codegen $(foreach host,$(CFG_HOST_TRIPLES), \ $(eval $(foreach target,$(CFG_TARGET_TRIPLES), \ @@ -674,6 +690,7 @@ TEST_GROUPS = \ bench \ perf \ debuginfo \ + codegen \ doc \ $(foreach docname,$(DOC_TEST_NAMES),doc-$(docname)) \ pretty \ diff --git a/src/test/codegen/hello.cc b/src/test/codegen/hello.cc new file mode 100644 index 000000000000..01eae9b16bb6 --- /dev/null +++ b/src/test/codegen/hello.cc @@ -0,0 +1,12 @@ +#include + +struct slice { + char const *p; + size_t len; +}; + +extern "C" +void test() { + struct slice s = { .p = "hello", + .len = 5 }; +} diff --git a/src/test/codegen/hello.rs b/src/test/codegen/hello.rs new file mode 100644 index 000000000000..e7cd84f63f2b --- /dev/null +++ b/src/test/codegen/hello.rs @@ -0,0 +1,4 @@ +#[no_mangle] +fn test() { + let _x = "hello"; +}