// Copyright 2025 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package runtime_test import ( "runtime" "testing" ) func TestPrintQuoted(t *testing.T) { for _, tbl := range []struct { in, expected string }{ {in: "baz", expected: `"baz"`}, {in: "foobar", expected: `"foobar"`}, // make sure newlines get escaped {in: "baz\n", expected: `"baz\n"`}, // make sure null and escape bytes are properly escaped {in: "b\033it", expected: `"b\x1bit"`}, {in: "b\000ar", expected: `"b\x00ar"`}, // verify that simple 16-bit unicode runes are escaped with \u, including a greek upper-case sigma and an arbitrary unicode character. {in: "\u1234Σ", expected: `"\u1234\u03a3"`}, // verify that 32-bit unicode runes are escaped with \U along with tabs {in: "fizz\tle", expected: `"fizz\tle"`}, {in: "\U00045678boop", expected: `"\U00045678boop"`}, // verify carriage returns and backslashes get escaped along with our nulls, newlines and a 32-bit unicode character {in: "fiz\\zl\re", expected: `"fiz\\zl\re"`}, } { t.Run(tbl.in, func(t *testing.T) { out := runtime.DumpPrintQuoted(tbl.in) if out != tbl.expected { t.Errorf("unexpected output for print(escaped(%q));\n got: %s\nwant: %s", tbl.in, out, tbl.expected) } }) } }