From a85f41ec2c38eff7e64ba32c76c5a60b48274a8a Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 18 Aug 2022 19:40:08 -0700 Subject: [PATCH] test-stack-traces: relax parsing rules * accept forward and backward slashes in file paths * strip multiple extensions; e.g. if the basename is "test.exe.obj" then it strips to "test". --- test/tests.zig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/tests.zig b/test/tests.zig index 5a58daecaa..a622521182 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -923,7 +923,7 @@ pub const StackTracesContext = struct { pos = marks[i] + delim.len; } // locate source basename - pos = mem.lastIndexOfScalar(u8, line[0..marks[0]], fs.path.sep) orelse { + pos = mem.lastIndexOfAny(u8, line[0..marks[0]], "\\/") orelse { // unexpected pattern: emit raw line and cont try buf.appendSlice(line); try buf.appendSlice("\n"); @@ -935,9 +935,9 @@ pub const StackTracesContext = struct { try buf.appendSlice(line[pos + 1 .. marks[2] + delims[2].len]); try buf.appendSlice(" [address]"); if (self.mode == .Debug) { - if (mem.lastIndexOfScalar(u8, line[marks[4]..marks[5]], '.')) |idot| { - // On certain platforms (windows) or possibly depending on how we choose to link main - // the object file extension may be present so we simply strip any extension. + // On certain platforms (windows) or possibly depending on how we choose to link main + // the object file extension may be present so we simply strip any extension. + if (mem.indexOfScalar(u8, line[marks[4]..marks[5]], '.')) |idot| { try buf.appendSlice(line[marks[3] .. marks[4] + idot]); try buf.appendSlice(line[marks[5]..]); } else {