From 760a9246618862b56bafe3dd5d95a77fdd668a6c Mon Sep 17 00:00:00 2001 From: Nic Gaffney Date: Tue, 13 Aug 2024 20:36:31 -0500 Subject: Unit tests now pass --- build.zig | 54 +++++++++++++++++++++++------------------------------- 1 file changed, 23 insertions(+), 31 deletions(-) (limited to 'build.zig') diff --git a/build.zig b/build.zig index e8b9c5e..4606ade 100644 --- a/build.zig +++ b/build.zig @@ -13,7 +13,8 @@ pub fn build(b: *std.Build) !void { }); const llvm = b.dependency("llvm-zig", .{}); - exe.root_module.addImport("llvm", llvm.module("llvm")); + _ = try b.modules.put("llvm", llvm.module("llvm")); + exe.root_module.addImport("llvm", b.modules.get("llvm").?); b.installArtifact(exe); @@ -28,38 +29,29 @@ pub fn build(b: *std.Build) !void { const run_step = b.step("run", "Run the compiler"); run_step.dependOn(&run_cmd.step); - const exe_unit_tests = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - const token_unit_tests = b.addTest(.{ - .root_source_file = b.path("src/tokenize.zig"), - .target = target, - .optimize = optimize, - }); - - const parse_unit_tests = b.addTest(.{ - .root_source_file = b.path("src/parser.zig"), - .target = target, - .optimize = optimize, - }); + const test_step = b.step("test", "Run unit tests"); + for ([_][]const u8{ + "src/main.zig", + "src/tokenize.zig", + "src/parser.zig", + "src/codegen.zig", + }) |file| + unit_test(b, target, optimize, test_step, file); +} - const codegen_unit_tests = b.addTest(.{ - .root_source_file = b.path("src/codegen.zig"), +fn unit_test( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, + test_step: *std.Build.Step, + fname: []const u8, +) void { + const unit = b.addTest(.{ + .root_source_file = b.path(fname), .target = target, .optimize = optimize, }); - - const run_exe_unit_tests = b.addRunArtifact(exe_unit_tests); - const run_token_unit_tests = b.addRunArtifact(token_unit_tests); - const run_parse_unit_tests = b.addRunArtifact(parse_unit_tests); - const run_codegen_unit_tests = b.addRunArtifact(codegen_unit_tests); - - const test_step = b.step("test", "Run unit tests"); - test_step.dependOn(&run_exe_unit_tests.step); - test_step.dependOn(&run_token_unit_tests.step); - test_step.dependOn(&run_parse_unit_tests.step); - test_step.dependOn(&run_codegen_unit_tests.step); + const unit_tests = b.addRunArtifact(unit); + test_step.dependOn(&unit_tests.step); + unit.root_module.addImport("llvm", b.modules.get("llvm").?); } -- cgit v1.2.3