fix running tests when linking with libc

master
Andrew Kelley 2016-02-03 23:07:55 -07:00
parent 2521afef69
commit a6d4335217
5 changed files with 18 additions and 2 deletions

View File

@ -123,6 +123,8 @@ set(ZIG_STD_SRC
"${CMAKE_SOURCE_DIR}/std/bootstrap.zig"
"${CMAKE_SOURCE_DIR}/std/builtin.zig"
"${CMAKE_SOURCE_DIR}/std/test_runner.zig"
"${CMAKE_SOURCE_DIR}/std/test_runner_libc.zig"
"${CMAKE_SOURCE_DIR}/std/test_runner_nolibc.zig"
"${CMAKE_SOURCE_DIR}/std/std.zig"
"${CMAKE_SOURCE_DIR}/std/syscall.zig"
"${CMAKE_SOURCE_DIR}/std/errno.zig"

View File

@ -3847,6 +3847,8 @@ static Buf *build_o(CodeGen *parent_gen, const char *oname) {
Buf *std_dir_path = buf_create_from_str(ZIG_STD_DIR);
CodeGen *child_gen = codegen_create(std_dir_path);
child_gen->link_libc = parent_gen->link_libc;
codegen_set_is_release(child_gen, parent_gen->is_release_build);
codegen_set_strip(child_gen, parent_gen->strip_debug_symbols);
@ -3978,7 +3980,8 @@ void codegen_link(CodeGen *g, const char *out_file) {
}
if (g->is_test_build) {
Buf *test_runner_o_path = build_o(g, "test_runner");
const char *test_runner_name = g->link_libc ? "test_runner_libc" : "test_runner_nolibc";
Buf *test_runner_o_path = build_o(g, test_runner_name);
args.append(buf_ptr(test_runner_o_path));
}

View File

@ -7,7 +7,7 @@ struct TestFn {
extern var zig_test_fn_list: []TestFn;
pub fn main(args: [][]u8) -> %void {
pub fn run_tests() -> %void {
for (test_fn, zig_test_fn_list, i) {
%%stderr.print_str("Test ");
%%stderr.print_i64(i + 1);

6
std/test_runner_libc.zig Normal file
View File

@ -0,0 +1,6 @@
import "test_runner.zig";
export fn main(argc: c_int, argv: &&u8) -> c_int {
run_tests() %% return -1;
return 0;
}

View File

@ -0,0 +1,5 @@
import "test_runner.zig";
pub fn main(args: [][]u8) -> %void {
return run_tests();
}