mirror of
				https://github.com/tailscale/tailscale.git
				synced 2025-10-31 08:11:32 +01:00 
			
		
		
		
	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)
 | |
| 		}
 | |
| 	}
 | |
| }
 |