"errors"
"fmt"
"io"
+ "maps"
"math"
"os"
"path"
"reflect"
+ "slices"
"strconv"
"strings"
"testing"
for i, v := range vectors {
r := strings.NewReader(v.in)
got, err := parsePAX(r)
- if !reflect.DeepEqual(got, v.want) && !(len(got) == 0 && len(v.want) == 0) {
+ if !maps.Equal(got, v.want) && !(len(got) == 0 && len(v.want) == 0) {
t.Errorf("test %d, parsePAX():\ngot %v\nwant %v", i, got, v.want)
}
if ok := err == nil; ok != v.ok {
v.input = v.input[copy(blk[:], v.input):]
tr := Reader{r: bytes.NewReader(v.input)}
got, err := tr.readOldGNUSparseMap(&hdr, &blk)
- if !equalSparseEntries(got, v.wantMap) {
+ if !slices.Equal(got, v.wantMap) {
t.Errorf("test %d, readOldGNUSparseMap(): got %v, want %v", i, got, v.wantMap)
}
if err != v.wantErr {
r := strings.NewReader(v.inputData + "#") // Add canary byte
tr := Reader{curr: ®FileReader{r, int64(r.Len())}}
got, err := tr.readGNUSparsePAXHeaders(&hdr)
- if !equalSparseEntries(got, v.wantMap) {
+ if !slices.Equal(got, v.wantMap) {
t.Errorf("test %d, readGNUSparsePAXHeaders(): got %v, want %v", i, got, v.wantMap)
}
if err != v.wantErr {
"internal/testenv"
"io"
"io/fs"
+ "maps"
"math"
"os"
"path"
"path/filepath"
"reflect"
+ "slices"
"strings"
"testing"
"time"
return f.pos, nil
}
-func equalSparseEntries(x, y []sparseEntry) bool {
- return (len(x) == 0 && len(y) == 0) || reflect.DeepEqual(x, y)
-}
-
func TestSparseEntries(t *testing.T) {
vectors := []struct {
in []sparseEntry
continue
}
gotAligned := alignSparseEntries(append([]sparseEntry{}, v.in...), v.size)
- if !equalSparseEntries(gotAligned, v.wantAligned) {
+ if !slices.Equal(gotAligned, v.wantAligned) {
t.Errorf("test %d, alignSparseEntries():\ngot %v\nwant %v", i, gotAligned, v.wantAligned)
}
gotInverted := invertSparseEntries(append([]sparseEntry{}, v.in...), v.size)
- if !equalSparseEntries(gotInverted, v.wantInverted) {
+ if !slices.Equal(gotInverted, v.wantInverted) {
t.Errorf("test %d, inverseSparseEntries():\ngot %v\nwant %v", i, gotInverted, v.wantInverted)
}
}
if formats != v.formats {
t.Errorf("test %d, allowedFormats(): got %v, want %v", i, formats, v.formats)
}
- if formats&FormatPAX > 0 && !reflect.DeepEqual(paxHdrs, v.paxHdrs) && !(len(paxHdrs) == 0 && len(v.paxHdrs) == 0) {
+ if formats&FormatPAX > 0 && !maps.Equal(paxHdrs, v.paxHdrs) && !(len(paxHdrs) == 0 && len(v.paxHdrs) == 0) {
t.Errorf("test %d, allowedFormats():\ngot %v\nwant %s", i, paxHdrs, v.paxHdrs)
}
if (formats != FormatUnknown) && (err != nil) {
"errors"
"io"
"io/fs"
+ "maps"
"os"
"path"
- "reflect"
"slices"
"strings"
"testing"
if err != nil {
t.Fatal(err)
}
- if !reflect.DeepEqual(hdr.Xattrs, xattrs) {
+ if !maps.Equal(hdr.Xattrs, xattrs) {
t.Fatalf("xattrs did not survive round trip: got %+v, want %+v",
hdr.Xattrs, xattrs)
}
"io/fs"
"os"
"path/filepath"
- "reflect"
"regexp"
+ "slices"
"strings"
"testing"
"testing/fstest"
} else if !test.wantErr && sawErr {
t.Error("unexpected error")
}
- if test.want != nil && !reflect.DeepEqual(files, test.want) {
+ if test.want != nil && !slices.Equal(files, test.want) {
t.Errorf("got %v want %v", files, test.want)
}
})
t.Errorf("Opening %q with fs.FS API succeeded", f.Name)
}
}
- if !reflect.DeepEqual(names, entryNames) {
+ if !slices.Equal(names, entryNames) {
t.Errorf("Unexpected file entries: %q", names)
}
if _, err := r.Open(""); err == nil {
for _, f := range zr.File {
gotPaths = append(gotPaths, f.Name)
}
- if !reflect.DeepEqual(gotPaths, []string{path}) {
+ if !slices.Equal(gotPaths, []string{path}) {
t.Errorf("NewReader for archive with file %q: got files %q", path, gotPaths)
continue
}
for _, f := range zr.File {
gotPaths = append(gotPaths, f.Name)
}
- if want := []string{name}; !reflect.DeepEqual(gotPaths, want) {
+ if want := []string{name}; !slices.Equal(gotPaths, want) {
t.Errorf("NewReader with zipinsecurepath=1: got files %q, want %q", gotPaths, want)
}
}