Skip to content

Commit

Permalink
os,path/filepath,testing: use slices to clean up tests
Browse files Browse the repository at this point in the history
Replace reflect.DeepEqual with slices.Equal which is much faster.

Change-Id: I299db6f998738174983731f08c1021346b87dfaa
GitHub-Last-Rev: 44ca901
GitHub-Pull-Request: golang#67613
Reviewed-on: https://go-review.googlesource.com/c/go/+/587938
Reviewed-by: Dmitri Shuralyov <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Ian Lance Taylor <[email protected]>
Auto-Submit: Ian Lance Taylor <[email protected]>
  • Loading branch information
apocelipes authored and gopherbot committed Jul 25, 2024
1 parent 0b0dfcd commit 05861ff
Show file tree
Hide file tree
Showing 10 changed files with 19 additions and 23 deletions.
4 changes: 2 additions & 2 deletions src/os/env_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ package os_test

import (
. "os"
"reflect"
"slices"
"strings"
"testing"
)
Expand Down Expand Up @@ -91,7 +91,7 @@ func TestConsistentEnviron(t *testing.T) {
e0 := Environ()
for i := 0; i < 10; i++ {
e1 := Environ()
if !reflect.DeepEqual(e0, e1) {
if !slices.Equal(e0, e1) {
t.Fatalf("environment changed")
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/os/exec/env_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
package exec

import (
"reflect"
"slices"
"testing"
)

Expand Down Expand Up @@ -60,7 +60,7 @@ func TestDedupEnv(t *testing.T) {
}
for _, tt := range tests {
got, err := dedupEnvCase(tt.noCase, tt.nulOK, tt.in)
if !reflect.DeepEqual(got, tt.want) || (err != nil) != tt.wantErr {
if !slices.Equal(got, tt.want) || (err != nil) != tt.wantErr {
t.Errorf("Dedup(%v, %q) = %q, %v; want %q, error:%v", tt.noCase, tt.in, got, err, tt.want, tt.wantErr)
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/os/exec/exec_posix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import (
"os"
"os/user"
"path/filepath"
"reflect"
"runtime"
"slices"
"strconv"
"strings"
"syscall"
Expand Down Expand Up @@ -184,7 +184,7 @@ func TestImplicitPWD(t *testing.T) {
wantPWDs = nil
}
}
if !reflect.DeepEqual(pwds, wantPWDs) {
if !slices.Equal(pwds, wantPWDs) {
t.Errorf("PWD entries in cmd.Environ():\n\t%s\nwant:\n\t%s", strings.Join(pwds, "\n\t"), strings.Join(wantPWDs, "\n\t"))
}

Expand Down Expand Up @@ -257,7 +257,7 @@ func TestExplicitPWD(t *testing.T) {
}

wantPWDs := []string{tc.pwd}
if !reflect.DeepEqual(pwds, wantPWDs) {
if !slices.Equal(pwds, wantPWDs) {
t.Errorf("PWD entries in cmd.Environ():\n\t%s\nwant:\n\t%s", strings.Join(pwds, "\n\t"), strings.Join(wantPWDs, "\n\t"))
}

Expand Down
5 changes: 2 additions & 3 deletions src/os/os_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import (
. "os"
"os/exec"
"path/filepath"
"reflect"
"runtime"
"runtime/debug"
"slices"
Expand Down Expand Up @@ -805,13 +804,13 @@ func TestReaddirStatFailures(t *testing.T) {
}

if got, want := names(mustReadDir("initial readdir")),
[]string{"good1", "good2", "x"}; !reflect.DeepEqual(got, want) {
[]string{"good1", "good2", "x"}; !slices.Equal(got, want) {
t.Errorf("initial readdir got %q; want %q", got, want)
}

xerr = ErrNotExist
if got, want := names(mustReadDir("with x disappearing")),
[]string{"good1", "good2"}; !reflect.DeepEqual(got, want) {
[]string{"good1", "good2"}; !slices.Equal(got, want) {
t.Errorf("with x disappearing, got %q; want %q", got, want)
}

Expand Down
3 changes: 1 addition & 2 deletions src/os/os_windows_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import (
"os"
"os/exec"
"path/filepath"
"reflect"
"runtime"
"slices"
"strings"
Expand Down Expand Up @@ -778,7 +777,7 @@ func TestReadStdin(t *testing.T) {
for len(want) < 5 {
want = append(want, "")
}
if !reflect.DeepEqual(all, want) {
if !slices.Equal(all, want) {
t.Errorf("reading %q:\nhave %x\nwant %x", s, all, want)
}
})
Expand Down
3 changes: 1 addition & 2 deletions src/path/filepath/match_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"internal/testenv"
"os"
. "path/filepath"
"reflect"
"runtime"
"slices"
"strings"
Expand Down Expand Up @@ -367,7 +366,7 @@ func TestNonWindowsGlobEscape(t *testing.T) {
if err != nil {
t.Fatalf("Glob error for %q: %s", pattern, err)
}
if !reflect.DeepEqual(matches, want) {
if !slices.Equal(matches, want) {
t.Fatalf("Glob(%#q) = %v want %v", pattern, matches, want)
}
}
6 changes: 3 additions & 3 deletions src/path/filepath/path_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ func TestSplitList(t *testing.T) {
tests = append(tests, winsplitlisttests...)
}
for _, test := range tests {
if l := filepath.SplitList(test.list); !reflect.DeepEqual(l, test.result) {
if l := filepath.SplitList(test.list); !slices.Equal(l, test.result) {
t.Errorf("SplitList(%#q) = %#q, want %#q", test.list, l, test.result)
}
}
Expand Down Expand Up @@ -1004,7 +1004,7 @@ func TestWalkSymlinkRoot(t *testing.T) {
t.Fatal(err)
}

if !reflect.DeepEqual(walked, tt.want) {
if !slices.Equal(walked, tt.want) {
t.Logf("Walk(%#q) visited %#q; want %#q", tt.root, walked, tt.want)
if slices.Contains(tt.buggyGOOS, runtime.GOOS) {
t.Logf("(ignoring known bug on %v)", runtime.GOOS)
Expand Down Expand Up @@ -1950,7 +1950,7 @@ func TestIssue51617(t *testing.T) {
t.Fatal(err)
}
want := []string{".", "a", filepath.Join("a", "bad"), filepath.Join("a", "next")}
if !reflect.DeepEqual(saw, want) {
if !slices.Equal(saw, want) {
t.Errorf("got directories %v, want %v", saw, want)
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/path/filepath/path_windows_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import (
"os"
"os/exec"
"path/filepath"
"reflect"
"runtime/debug"
"slices"
"strings"
"testing"
)
Expand Down Expand Up @@ -83,7 +83,7 @@ func testWinSplitListTestIsValid(t *testing.T, ti int, tt SplitListTest,
case err != nil:
t.Errorf("%d,%d: execution error %v\n%q", ti, i, err, out)
return
case !reflect.DeepEqual(out, exp):
case !slices.Equal(out, exp):
t.Errorf("%d,%d: expected %#q, got %#q", ti, i, exp, out)
return
default:
Expand Down
3 changes: 1 addition & 2 deletions src/testing/fstest/testfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (
"io"
"io/fs"
"path"
"reflect"
"slices"
"strings"
"testing/iotest"
Expand Down Expand Up @@ -358,7 +357,7 @@ func (t *fsTester) checkGlob(dir string, list []fs.DirEntry) {
t.errorf("%s: Glob(%#q): %w", dir, glob, err)
return
}
if reflect.DeepEqual(want, names) {
if slices.Equal(want, names) {
return
}

Expand Down
4 changes: 2 additions & 2 deletions src/testing/sub_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ package testing
import (
"bytes"
"fmt"
"reflect"
"regexp"
"runtime"
"slices"
"strings"
"sync"
"sync/atomic"
Expand Down Expand Up @@ -886,7 +886,7 @@ func TestCleanup(t *T) {
t.Cleanup(func() { cleanups = append(cleanups, 1) })
t.Cleanup(func() { cleanups = append(cleanups, 2) })
})
if got, want := cleanups, []int{2, 1}; !reflect.DeepEqual(got, want) {
if got, want := cleanups, []int{2, 1}; !slices.Equal(got, want) {
t.Errorf("unexpected cleanup record; got %v want %v", got, want)
}
}
Expand Down

0 comments on commit 05861ff

Please sign in to comment.