mirror of
https://github.com/tailscale/tailscale.git
synced 2024-12-05 16:05:36 +00:00
7c1068b7ac
ScrubbedGoroutineDump previously only returned the stacks of all goroutines. I also want to be able to use this for only the current goroutine's stack. Add a bool param to support both ways. Updates tailscale/corp#5149 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
30 lines
682 B
Go
30 lines
682 B
Go
// Copyright (c) Tailscale Inc & AUTHORS
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
package goroutines
|
|
|
|
import "testing"
|
|
|
|
func TestScrubbedGoroutineDump(t *testing.T) {
|
|
t.Logf("Got:\n%s\n", ScrubbedGoroutineDump(true))
|
|
}
|
|
|
|
func TestScrubHex(t *testing.T) {
|
|
tests := []struct {
|
|
in, want string
|
|
}{
|
|
{"foo", "foo"},
|
|
{"", ""},
|
|
{"0x", "?_"},
|
|
{"0x001 and same 0x001", "v1%1_ and same v1%1_"},
|
|
{"0x008 and same 0x008", "v1%0_ and same v1%0_"},
|
|
{"0x001 and diff 0x002", "v1%1_ and diff v2%2_"},
|
|
}
|
|
for _, tt := range tests {
|
|
got := scrubHex([]byte(tt.in))
|
|
if string(got) != tt.want {
|
|
t.Errorf("for input:\n%s\n\ngot:\n%s\n\nwant:\n%s\n", tt.in, got, tt.want)
|
|
}
|
|
}
|
|
}
|