summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-07-26 18:36:08 -0300
committerGabriel Schneider <[email protected]>2026-08-01 15:02:07 -0300
commite381c96a08f08e03a340a24acb3fe5fe1fca51be (patch)
treedb0ef0cc2652d2797b9e2f73709db601816436d1 /build.zig
parenta4a2a96d023a5977ae7a7d07c7ee9e4fe38e9c60 (diff)
downloadpardes-e381c96a08f08e03a340a24acb3fe5fe1fca51be.tar.gz
pardes-e381c96a08f08e03a340a24acb3fe5fe1fca51be.zip
adding better search to tty mode
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig21
1 files changed, 21 insertions, 0 deletions
diff --git a/build.zig b/build.zig
index 2b728ea1..c62ee222 100644
--- a/build.zig
+++ b/build.zig
@@ -522,6 +522,27 @@ pub fn build(b: *std.Build) void {
}
b.step("hxdiff", "run the helix differential suite (-- <cases.jsonl> [goldens.jsonl [waivers.jsonl]])").dependOn(&run_hxdiff.step);
+ // file-vs-pty parity: the SAME harness binary, run in --parity mode.
+ // Each case runs twice over the same text and keys, once in a file
+ // pane and once in a pty pane, and the two result lines must be
+ // identical — the file pane is the oracle, so editing a shell pane
+ // cannot drift away from editing a document.
+ const run_hxparity = b.addRunArtifact(hxdiff);
+ run_hxparity.addArg("--parity");
+ if (b.args) |args| run_hxparity.addArgs(args) else {
+ // the WHOLE helix corpus plus the editing extras: a parity gate
+ // that only ran the cases its author wrote could not catch the
+ // next regression. parity-waivers names the divergences that are
+ // not editing (pardes bindings, pty viewport geometry, a tab the
+ // emulator expands), each with its reason.
+ run_hxparity.addArgs(&.{
+ "--waivers", "test/hxcases/parity-waivers.jsonl",
+ "test/hxcases/cases.jsonl", "test/hxcases/parity.jsonl",
+ });
+ run_hxparity.setCwd(b.path("."));
+ }
+ b.step("hxparity", "run the file-vs-pty editing parity suite (-- [--waivers w.jsonl] <cases.jsonl>...)").dependOn(&run_hxparity.step);
+
// modal.zig is pure std — its inline unit tests run here
const unit = b.addTest(.{ .root_module = b.createModule(.{
.target = target,