From 11a06443659154ec53e4deb00956b2f025cd71ca Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 3 Feb 2016 18:02:01 -0700 Subject: basic support for building a test target --- std/test_runner.zig | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 std/test_runner.zig (limited to 'std') diff --git a/std/test_runner.zig b/std/test_runner.zig new file mode 100644 index 0000000000..e1a55b1388 --- /dev/null +++ b/std/test_runner.zig @@ -0,0 +1,45 @@ +import "std.zig"; + +/* +struct TestFn { + name: []u8, + func: extern fn(), +} + +extern var test_fn_list: []TestFn; +*/ + +extern var zig_test_fn_count: isize; + +// TODO make this a slice of structs +extern var zig_test_fn_list: [99999999]extern fn(); + +pub fn main(args: [][]u8) -> %void { + var i : isize = 0; + while (i < zig_test_fn_count) { + %%stderr.print_str("Test "); + // TODO get rid of the isize + %%stderr.print_i64(i + isize(1)); + %%stderr.print_str("/"); + %%stderr.print_i64(zig_test_fn_count); + %%stderr.print_str(" "); + /* + %%stderr.print_str(test_fn.name); + */ + %%stderr.print_str("..."); + +/* + // TODO support calling function pointers as fields directly + const fn_ptr = test_fn.func; + fn_ptr(); + */ + + const test_fn = zig_test_fn_list[i]; + test_fn(); + + %%stderr.print_str("OK\n"); + %%stderr.flush(); + + i += 1; + } +} -- cgit v1.2.3