mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
internal/runtime/cgroup: simplify escapePath in test
Don't work on rune, kernel does not use utf-8 here. Can be verified like this: # mkdir "$(echo -e "\xff\x20")" # mount -t tmpfs tmpfs "$(echo -e "\xff\x20")" # tail -n 1 /proc/self/mountinfo | xxd 00000000: 3133 3334 2031 3030 2030 3a31 3632 202f 1334 100 0:162 / 00000010: 202f 726f 6f74 2fff 5c30 3430 2072 772c /root/.\040 rw, 00000020: 7265 6c61 7469 6d65 2073 6861 7265 643a relatime shared: 00000030: 3433 3520 2d20 746d 7066 7320 746d 7066 435 - tmpfs tmpf 00000040: 7320 7277 0a s rw. Change-Id: I7468b56eb26f14bc809f8f7580535e6562795c62 Reviewed-on: https://go-review.googlesource.com/c/go/+/723300 Reviewed-by: Michael Pratt <mpratt@google.com> Auto-Submit: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
This commit is contained in:
parent
481c6df7b9
commit
6be5de4bc4
1 changed files with 8 additions and 14 deletions
|
|
@ -8,7 +8,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"internal/runtime/cgroup"
|
"internal/runtime/cgroup"
|
||||||
"io"
|
"io"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
@ -380,21 +379,11 @@ func TestParseCPUMount(t *testing.T) {
|
||||||
// That is, '\', ' ', '\t', and '\n' are converted to octal escape sequences,
|
// That is, '\', ' ', '\t', and '\n' are converted to octal escape sequences,
|
||||||
// like '\040' for space.
|
// like '\040' for space.
|
||||||
func escapePath(s string) string {
|
func escapePath(s string) string {
|
||||||
out := make([]rune, 0, len(s))
|
out := make([]byte, 0, len(s))
|
||||||
for _, c := range s {
|
for _, c := range []byte(s) {
|
||||||
switch c {
|
switch c {
|
||||||
case '\\', ' ', '\t', '\n':
|
case '\\', ' ', '\t', '\n':
|
||||||
out = append(out, '\\')
|
out = fmt.Appendf(out, "\\%03o", c)
|
||||||
cs := strconv.FormatInt(int64(c), 8)
|
|
||||||
if len(cs) <= 2 {
|
|
||||||
out = append(out, '0')
|
|
||||||
}
|
|
||||||
if len(cs) <= 1 {
|
|
||||||
out = append(out, '0')
|
|
||||||
}
|
|
||||||
for _, csc := range cs {
|
|
||||||
out = append(out, csc)
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
out = append(out, c)
|
out = append(out, c)
|
||||||
}
|
}
|
||||||
|
|
@ -444,6 +433,11 @@ b/c`,
|
||||||
unescaped: `/a/\`,
|
unescaped: `/a/\`,
|
||||||
escaped: `/a/\134`,
|
escaped: `/a/\134`,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "non-utf8",
|
||||||
|
unescaped: "/a/b\xff\x20/c",
|
||||||
|
escaped: "/a/b\xff\\040/c",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Run("escapePath", func(t *testing.T) {
|
t.Run("escapePath", func(t *testing.T) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue