authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-02-03 23:07:55-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-02-03 23:07:55-07:00
loga6d43352175ac49ee180592055d56101fe20b83a
tree856e068887477d3b6cb07e97bd66f14182230bbd
parent2521afef699d40917db906ebb27a87c5ea287fbe

fix running tests when linking with libc


5 files changed, 18 insertions(+), 2 deletions(-)

CMakeLists.txt+2
...@@ -123,6 +123,8 @@ set(ZIG_STD_SRC...@@ -123,6 +123,8 @@ set(ZIG_STD_SRC
123 "${CMAKE_SOURCE_DIR}/std/bootstrap.zig"123 "${CMAKE_SOURCE_DIR}/std/bootstrap.zig"
124 "${CMAKE_SOURCE_DIR}/std/builtin.zig"124 "${CMAKE_SOURCE_DIR}/std/builtin.zig"
125 "${CMAKE_SOURCE_DIR}/std/test_runner.zig"125 "${CMAKE_SOURCE_DIR}/std/test_runner.zig"
126 "${CMAKE_SOURCE_DIR}/std/test_runner_libc.zig"
127 "${CMAKE_SOURCE_DIR}/std/test_runner_nolibc.zig"
126 "${CMAKE_SOURCE_DIR}/std/std.zig"128 "${CMAKE_SOURCE_DIR}/std/std.zig"
127 "${CMAKE_SOURCE_DIR}/std/syscall.zig"129 "${CMAKE_SOURCE_DIR}/std/syscall.zig"
128 "${CMAKE_SOURCE_DIR}/std/errno.zig"130 "${CMAKE_SOURCE_DIR}/std/errno.zig"
src/codegen.cpp+4-1
...@@ -3847,6 +3847,8 @@ static Buf *build_o(CodeGen *parent_gen, const char *oname) {...@@ -3847,6 +3847,8 @@ static Buf *build_o(CodeGen *parent_gen, const char *oname) {
3847 Buf *std_dir_path = buf_create_from_str(ZIG_STD_DIR);3847 Buf *std_dir_path = buf_create_from_str(ZIG_STD_DIR);
38483848
3849 CodeGen *child_gen = codegen_create(std_dir_path);3849 CodeGen *child_gen = codegen_create(std_dir_path);
3850 child_gen->link_libc = parent_gen->link_libc;
3851
3850 codegen_set_is_release(child_gen, parent_gen->is_release_build);3852 codegen_set_is_release(child_gen, parent_gen->is_release_build);
38513853
3852 codegen_set_strip(child_gen, parent_gen->strip_debug_symbols);3854 codegen_set_strip(child_gen, parent_gen->strip_debug_symbols);
...@@ -3978,7 +3980,8 @@ void codegen_link(CodeGen *g, const char *out_file) {...@@ -3978,7 +3980,8 @@ void codegen_link(CodeGen *g, const char *out_file) {
3978 }3980 }
39793981
3980 if (g->is_test_build) {3982 if (g->is_test_build) {
3981 Buf *test_runner_o_path = build_o(g, "test_runner");3983 const char *test_runner_name = g->link_libc ? "test_runner_libc" : "test_runner_nolibc";
3984 Buf *test_runner_o_path = build_o(g, test_runner_name);
3982 args.append(buf_ptr(test_runner_o_path));3985 args.append(buf_ptr(test_runner_o_path));
3983 }3986 }
39843987
std/test_runner.zig+1-1
...@@ -7,7 +7,7 @@ struct TestFn {...@@ -7,7 +7,7 @@ struct TestFn {
77
8extern var zig_test_fn_list: []TestFn;8extern var zig_test_fn_list: []TestFn;
99
10pub fn main(args: [][]u8) -> %void {10pub fn run_tests() -> %void {
11 for (test_fn, zig_test_fn_list, i) {11 for (test_fn, zig_test_fn_list, i) {
12 %%stderr.print_str("Test ");12 %%stderr.print_str("Test ");
13 %%stderr.print_i64(i + 1);13 %%stderr.print_i64(i + 1);
std/test_runner_libc.zig created+6
...@@ -0,0 +1,6 @@
1import "test_runner.zig";
2
3export fn main(argc: c_int, argv: &&u8) -> c_int {
4 run_tests() %% return -1;
5 return 0;
6}
std/test_runner_nolibc.zig created+5
...@@ -0,0 +1,5 @@
1import "test_runner.zig";
2
3pub fn main(args: [][]u8) -> %void {
4 return run_tests();
5}