From 1a32f2a7f40328799537cc94240a57054a1275bc Mon Sep 17 00:00:00 2001 From: Techcable Date: Mon, 22 Aug 2022 04:38:03 -0700 Subject: [PATCH] test_runner: workaround #1923, isolating error traces in tests Essentially #1923 means "caught" errors still show up in error return traces. The correct fix would require the compiler to fix this, but that could affect performance. For now, simply workaround this issue by clearing the return traces between tests. This means that "caught" errors in one test will not show up in the error traces of other tests. --- lib/test_runner.zig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/test_runner.zig b/lib/test_runner.zig index 8a3c1f0ca7..46b24deb45 100644 --- a/lib/test_runner.zig +++ b/lib/test_runner.zig @@ -96,6 +96,13 @@ pub fn main() void { test_node.end(); }, } + // Workaround issue #1923 by clearing error stack traces between tests + // + // This is not a true fix, but helps isolate errors to the tests where they + // originate instead of confusing them all together + if (@errorReturnTrace()) |trace| { + trace.index = 0; + } } root_node.end(); if (ok_count == test_fn_list.len) {