diff options
| author | apocelipes <seve3r@outlook.com> | 2024-07-24 10:24:06 +0000 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-07-25 00:23:03 +0000 |
| commit | 0b0dfcd5404ce86d6c818d78bdb6348ded459e96 (patch) | |
| tree | f7c8fc3cb49a90afd15e14aec43ca763c301c4b8 /src/runtime/pprof | |
| parent | 2247afc0aee41434a4e874af07d026f828bd3210 (diff) | |
| download | go-0b0dfcd5404ce86d6c818d78bdb6348ded459e96.tar.xz | |
runtime: use slices and maps to clean up tests
Replace reflect.DeepEqual with slices.Equal/maps.Equal, which is
much faster.
Also remove some unecessary helper functions.
Change-Id: I3e4fa2938fed1598278c9e556cd4fa3b9ed3ad6d
GitHub-Last-Rev: 69bb43fc6e5c4a4a7d028528fe00b43db784464e
GitHub-Pull-Request: golang/go#67603
Reviewed-on: https://go-review.googlesource.com/c/go/+/587815
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Diffstat (limited to 'src/runtime/pprof')
| -rw-r--r-- | src/runtime/pprof/label_test.go | 11 | ||||
| -rw-r--r-- | src/runtime/pprof/runtime_test.go | 22 |
2 files changed, 14 insertions, 19 deletions
diff --git a/src/runtime/pprof/label_test.go b/src/runtime/pprof/label_test.go index cefd9a53e2..38d9e80dfc 100644 --- a/src/runtime/pprof/label_test.go +++ b/src/runtime/pprof/label_test.go @@ -7,7 +7,8 @@ package pprof import ( "context" "reflect" - "sort" + "slices" + "strings" "testing" ) @@ -17,16 +18,10 @@ func labelsSorted(ctx context.Context) []label { ls = append(ls, label{key, value}) return true }) - sort.Sort(labelSorter(ls)) + slices.SortFunc(ls, func(a, b label) int { return strings.Compare(a.key, b.key) }) return ls } -type labelSorter []label - -func (s labelSorter) Len() int { return len(s) } -func (s labelSorter) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s labelSorter) Less(i, j int) bool { return s[i].key < s[j].key } - func TestContextLabels(t *testing.T) { // Background context starts with no labels. ctx := context.Background() diff --git a/src/runtime/pprof/runtime_test.go b/src/runtime/pprof/runtime_test.go index 0dd5324b42..e77c7f2bc9 100644 --- a/src/runtime/pprof/runtime_test.go +++ b/src/runtime/pprof/runtime_test.go @@ -7,7 +7,7 @@ package pprof import ( "context" "fmt" - "reflect" + "maps" "testing" ) @@ -15,11 +15,11 @@ func TestSetGoroutineLabels(t *testing.T) { sync := make(chan struct{}) wantLabels := map[string]string{} - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { t.Errorf("Expected parent goroutine's profile labels to be empty before test, got %v", gotLabels) } go func() { - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { t.Errorf("Expected child goroutine's profile labels to be empty before test, got %v", gotLabels) } sync <- struct{}{} @@ -29,11 +29,11 @@ func TestSetGoroutineLabels(t *testing.T) { wantLabels = map[string]string{"key": "value"} ctx := WithLabels(context.Background(), Labels("key", "value")) SetGoroutineLabels(ctx) - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { t.Errorf("parent goroutine's profile labels: got %v, want %v", gotLabels, wantLabels) } go func() { - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { t.Errorf("child goroutine's profile labels: got %v, want %v", gotLabels, wantLabels) } sync <- struct{}{} @@ -43,11 +43,11 @@ func TestSetGoroutineLabels(t *testing.T) { wantLabels = map[string]string{} ctx = context.Background() SetGoroutineLabels(ctx) - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { t.Errorf("Expected parent goroutine's profile labels to be empty, got %v", gotLabels) } go func() { - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { t.Errorf("Expected child goroutine's profile labels to be empty, got %v", gotLabels) } sync <- struct{}{} @@ -57,20 +57,20 @@ func TestSetGoroutineLabels(t *testing.T) { func TestDo(t *testing.T) { wantLabels := map[string]string{} - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { t.Errorf("Expected parent goroutine's profile labels to be empty before Do, got %v", gotLabels) } Do(context.Background(), Labels("key1", "value1", "key2", "value2"), func(ctx context.Context) { wantLabels := map[string]string{"key1": "value1", "key2": "value2"} - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { t.Errorf("parent goroutine's profile labels: got %v, want %v", gotLabels, wantLabels) } sync := make(chan struct{}) go func() { wantLabels := map[string]string{"key1": "value1", "key2": "value2"} - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { t.Errorf("child goroutine's profile labels: got %v, want %v", gotLabels, wantLabels) } sync <- struct{}{} @@ -80,7 +80,7 @@ func TestDo(t *testing.T) { }) wantLabels = map[string]string{} - if gotLabels := getProfLabel(); !reflect.DeepEqual(gotLabels, wantLabels) { + if gotLabels := getProfLabel(); !maps.Equal(gotLabels, wantLabels) { fmt.Printf("%#v", gotLabels) fmt.Printf("%#v", wantLabels) t.Errorf("Expected parent goroutine's profile labels to be empty after Do, got %v", gotLabels) |
