51 "//\\\\//\\\\ third line",
61 {SkSL::TraceInfo::Op::kEnter, {0, 0}},
62 {SkSL::TraceInfo::Op::kLine, {5, 0}},
63 {SkSL::TraceInfo::Op::kVar, {10, 15}},
64 {SkSL::TraceInfo::Op::kExit, {20, 0}},
70 static constexpr char kExpected[] =
71 R
"({"version":"20220209","source":["\t// first line","// \"second line\"","//\\\\//\\)"
72 R"(\\ third line"],"slots":[{"name":"SkSL_DebugTrace","columns":1,"rows":2,"index":3,)"
73 R"("groupIdx":4,"kind":5,"line":6},{"name":"Unit_Test","columns":6,"rows":7,"index":8)"
74 R"(,"kind":10,"line":11,"retval":12}],"functions":[{"name":"void testFunc();"}],"trac)"
75 R"(e":[[2],[0,5],[1,10,15],[3,20]]})";
77 std::string_view actual{reinterpret_cast<const char*
>(trace->bytes()), trace->size()};
80 "Expected:\n %s\n\n Actual:\n %.*s\n",
81 kExpected, (
int)actual.size(), actual.data());
85 const std::string_view kJSONTrace =
86 R
"({"version":"20220209","source":["\t// first line","// \"second line\"","//\\\\//\\)"
87 R"(\\ third line"],"slots":[{"name":"SkSL_DebugTrace","columns":1,"rows":2,"index":3,)"
88 R"("groupIdx":4,"kind":5,"line":6},{"name":"Unit_Test","columns":6,"rows":7,"index":8)"
89 R"(,"kind":10,"line":11,"retval":12}],"functions":[{"name":"void testFunc();"}],"trac)"
90 R"(e":[[2],[0,5],[1,10,15],[3,20]]})";
92 SkMemoryStream stream(kJSONTrace.data(), kJSONTrace.size(), false);