diff options
| author | David Czihak <git@dcz.at> | 2026-05-09 13:01:50 +0200 |
|---|---|---|
| committer | David Czihak <git@dcz.at> | 2026-05-09 13:01:50 +0200 |
| commit | 4b6f66fd512c254b5a82220dc77411fe391dd258 (patch) | |
| tree | 7d77d7966e9ad2e296986ea8cfeb607088028195 /examples/monorepo/packages/beta | |
| parent | 64e9c56fc665972fdde5234c4fb2f2a882e237dc (diff) | |
Chore: Rework examples for thorough extension testing
Diffstat (limited to 'examples/monorepo/packages/beta')
| -rw-r--r-- | examples/monorepo/packages/beta/build.zig | 17 | ||||
| -rw-r--r-- | examples/monorepo/packages/beta/build.zig.zon | 8 | ||||
| -rw-r--r-- | examples/monorepo/packages/beta/src/lib.zig | 44 |
3 files changed, 69 insertions, 0 deletions
diff --git a/examples/monorepo/packages/beta/build.zig b/examples/monorepo/packages/beta/build.zig new file mode 100644 index 0000000..fa4c1cd --- /dev/null +++ b/examples/monorepo/packages/beta/build.zig @@ -0,0 +1,17 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const lib_tests = b.addTest(.{ + .root_module = b.createModule(.{ + .root_source_file = b.path("src/lib.zig"), + .target = target, + .optimize = optimize, + }), + }); + const run_tests = b.addRunArtifact(lib_tests); + const test_step = b.step("test", "Run beta tests"); + test_step.dependOn(&run_tests.step); +} diff --git a/examples/monorepo/packages/beta/build.zig.zon b/examples/monorepo/packages/beta/build.zig.zon new file mode 100644 index 0000000..94cccf7 --- /dev/null +++ b/examples/monorepo/packages/beta/build.zig.zon @@ -0,0 +1,8 @@ +.{ + .name = .beta, + .version = "0.1.0", + .fingerprint = 0x8f910463cee85531, + .minimum_zig_version = "0.16.0", + .dependencies = .{}, + .paths = .{ "build.zig", "build.zig.zon", "src" }, +} diff --git a/examples/monorepo/packages/beta/src/lib.zig b/examples/monorepo/packages/beta/src/lib.zig new file mode 100644 index 0000000..690b38c --- /dev/null +++ b/examples/monorepo/packages/beta/src/lib.zig @@ -0,0 +1,44 @@ +// findNearestZigBuildDir walk-up test: +// +// When this file is the active editor in Nova, the "Current Zig File" clean +// action calls findNearestZigBuildDir starting at packages/beta/src/. +// It finds packages/beta/build.zig after one walk step and uses that +// directory as the working directory — NOT the monorepo root build.zig. +// +// To verify: open this file, trigger clean, observe the task console shows +// the beta package directory, not the monorepo root. +const std = @import("std"); + +/// Halve a value (integer division, truncated toward zero). +pub fn halve(x: i32) i32 { + return @divTrunc(x, 2); +} + +/// Negate a value. +pub fn negate(x: i32) i32 { + return -x; +} + +/// Absolute value. +pub fn abs(x: i32) i32 { + return if (x < 0) -x else x; +} + +test "beta: halve" { + try std.testing.expectEqual(@as(i32, 3), halve(6)); + try std.testing.expectEqual(@as(i32, 3), halve(7)); // truncated + try std.testing.expectEqual(@as(i32, -2), halve(-5)); + try std.testing.expectEqual(@as(i32, 0), halve(0)); +} + +test "beta: negate" { + try std.testing.expectEqual(@as(i32, -7), negate(7)); + try std.testing.expectEqual(@as(i32, 7), negate(-7)); + try std.testing.expectEqual(@as(i32, 0), negate(0)); +} + +test "beta: abs" { + try std.testing.expectEqual(@as(i32, 5), abs(5)); + try std.testing.expectEqual(@as(i32, 5), abs(-5)); + try std.testing.expectEqual(@as(i32, 0), abs(0)); +} |
