Skip to content

Commit 70ce54a

Browse files
committed
Handle all case status (not just Pass and Fail)
1 parent e26d4af commit 70ce54a

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/main_wpt.zig

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,14 +274,24 @@ const Writer = struct {
274274
case_pass_count += 1;
275275
} else {
276276
// both cases names and messages can have | in them. Our only
277-
// chance to "parse" this is to anchor off the |Fail.
278-
const pos = std.mem.indexOf(u8, line, "|Fail") orelse {
277+
// chance to "parse" this is to anchor off the |$Status.
278+
const statuses = [_][]const u8{ "|Fail", "|Timeout", "|Not Run", "|Optional Feature Unsupported" };
279+
var pos_: ?usize = null;
280+
var message_start: usize = 0;
281+
for (statuses) |status| {
282+
if (std.mem.indexOf(u8, line, status)) |idx| {
283+
pos_ = idx;
284+
message_start = idx + status.len;
285+
break;
286+
}
287+
}
288+
const pos = pos_ orelse {
279289
std.debug.print("invalid result line: {s}\n", .{line});
280290
return error.InvalidResult;
281291
};
282292

283293
case_name = line[0..pos];
284-
case_message = line[pos + 1 ..];
294+
case_message = line[message_start..];
285295
pass = false;
286296
case_fail_count += 1;
287297
}

0 commit comments

Comments
 (0)