commit ed56a543a685cb22fb9ef037e606aeab9cb5f8be
parent 6b247bda5cc373436fa4e01b97d353b39610c2b8
Author: gracefu <81774659+gracefuu@users.noreply.github.com>
Date: Wed, 21 May 2025 04:52:20 +0800
More cli flags, track escaped str text in tracy
Diffstat:
2 files changed, 44 insertions(+), 13 deletions(-)
diff --git a/src/main.zig b/src/main.zig
@@ -42,10 +42,12 @@ pub fn main() !void {
const args = try std.process.argsAlloc(arena);
const bench1, const bench2, const bench3, //
const run1, const run2, const run3, //
+ const check1, const check2, const check3, //
const print1, const print2, const print3 =
blk: {
var bench1, var bench2, var bench3 = .{ false, false, false };
var run1, var run2, var run3 = .{ false, false, false };
+ var check1, var check2, var check3 = .{ false, false, false };
var print1, var print2, var print3 = .{ false, false, false };
for (args) |arg| {
if (std.mem.eql(u8, arg, "--bench1"))
@@ -60,6 +62,12 @@ pub fn main() !void {
run2 = true;
if (std.mem.eql(u8, arg, "--run3"))
run3 = true;
+ if (std.mem.eql(u8, arg, "--check1"))
+ check1, run1 = .{ true, true };
+ if (std.mem.eql(u8, arg, "--check2"))
+ check2, run2 = .{ true, true };
+ if (std.mem.eql(u8, arg, "--check3"))
+ check3, run3 = .{ true, true };
if (std.mem.eql(u8, arg, "--print1"))
print1, run1 = .{ true, true };
if (std.mem.eql(u8, arg, "--print2"))
@@ -69,7 +77,12 @@ pub fn main() !void {
if (std.mem.eql(u8, arg, "--wait"))
std.Thread.sleep(2e9);
}
- break :blk .{ bench1, bench2, bench3, run1, run2, run3, print1, print2, print3 };
+ break :blk .{
+ bench1, bench2, bench3,
+ run1, run2, run3,
+ check1, check2, check3,
+ print1, print2, print3,
+ };
};
var input_arraylist = try readInput(gpa, arena);
@@ -140,7 +153,7 @@ pub fn main() !void {
var render_arraylist1: std.ArrayList(u8) = .init(gpa);
defer render_arraylist1.deinit();
- if (run1) {
+ if (check1) {
std.debug.print("Rendering 1\n", .{});
const tracy_frame = tracy.namedFrame("check render 1");
defer tracy_frame.end();
@@ -148,7 +161,7 @@ pub fn main() !void {
}
var render_arraylist2: std.ArrayList(u8) = .init(gpa);
defer render_arraylist2.deinit();
- if (run2) {
+ if (check2) {
std.debug.print("Rendering 2\n", .{});
const tracy_frame = tracy.namedFrame("check render 2");
defer tracy_frame.end();
@@ -156,31 +169,48 @@ pub fn main() !void {
}
var render_arraylist3: std.ArrayList(u8) = .init(gpa);
defer render_arraylist3.deinit();
- if (run3) {
+ if (check3) {
std.debug.print("Rendering 3\n", .{});
const tracy_frame = tracy.namedFrame("check render 3");
defer tracy_frame.end();
_ = try ast3.renderAst(render_arraylist3.writer(), input);
}
- if (run1 and run3) {
+ if (check1 and check3) {
std.debug.print("Testing 1 vs 3\n", .{});
try std.testing.expectEqualStrings(render_arraylist1.items, render_arraylist3.items);
}
- if (run2 and run3) {
+ if (check2 and check3) {
std.debug.print("Testing 2 vs 3\n", .{});
try std.testing.expectEqualStrings(render_arraylist2.items, render_arraylist3.items);
}
- if (run1 and run2 and !run3) {
+ if (check1 and check2 and !check3) {
std.debug.print("Testing 1 vs 2\n", .{});
try std.testing.expectEqualStrings(render_arraylist1.items, render_arraylist2.items);
}
- if (print1)
- try std.io.getStdOut().writeAll(render_arraylist1.items);
- if (print2)
- try std.io.getStdOut().writeAll(render_arraylist2.items);
- if (print3)
- try std.io.getStdOut().writeAll(render_arraylist3.items);
+ for (0..10) |_| {
+ if (print1) {
+ std.debug.print("Re-rendering 1\n", .{});
+ render_arraylist1.clearRetainingCapacity();
+ const tracy_frame = tracy.namedFrame("re-render 1");
+ defer tracy_frame.end();
+ _ = try ast.renderAst(render_arraylist1.writer(), input);
+ }
+ if (print2) {
+ std.debug.print("Re-rendering 2\n", .{});
+ render_arraylist2.clearRetainingCapacity();
+ const tracy_frame = tracy.namedFrame("re-render 2");
+ defer tracy_frame.end();
+ _ = try ast2.renderAst(render_arraylist2.writer(), input);
+ }
+ if (print3) {
+ std.debug.print("Re-rendering 3\n", .{});
+ render_arraylist3.clearRetainingCapacity();
+ const tracy_frame = tracy.namedFrame("re-render 3");
+ defer tracy_frame.end();
+ _ = try ast3.renderAst(render_arraylist3.writer(), input);
+ }
+ }
}
if (tracy.enable) {
diff --git a/src/str.zig b/src/str.zig
@@ -161,6 +161,7 @@ pub fn escapeString(
) !void {
const tracy_frame = tracy.trace(@src());
defer tracy_frame.end();
+ tracy_frame.addText(slice);
const quote = switch (escape_for) {
.double_quoted_string => '"',