mirror of
https://github.com/stretchr/testify.git
synced 2025-05-31 11:42:44 +00:00
compare bytes with bytes.Equal instead of reflect.DeepEqual
This commit is contained in:
parent
17a0bd50e9
commit
97c0e43cd5
@ -38,7 +38,15 @@ func ObjectsAreEqual(expected, actual interface{}) bool {
|
|||||||
if expected == nil || actual == nil {
|
if expected == nil || actual == nil {
|
||||||
return expected == actual
|
return expected == actual
|
||||||
}
|
}
|
||||||
|
if exp, ok := expected.([]byte); ok {
|
||||||
|
act, ok := actual.([]byte)
|
||||||
|
if !ok {
|
||||||
|
return false
|
||||||
|
} else if exp == nil || act == nil {
|
||||||
|
return exp == nil && act == nil
|
||||||
|
}
|
||||||
|
return bytes.Equal(exp, act)
|
||||||
|
}
|
||||||
return reflect.DeepEqual(expected, actual)
|
return reflect.DeepEqual(expected, actual)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1283,3 +1283,32 @@ func TestFailNowWithFullTestingT(t *testing.T) {
|
|||||||
FailNow(mockT, "failed")
|
FailNow(mockT, "failed")
|
||||||
}, "should call mockT.FailNow() rather than panicking")
|
}, "should call mockT.FailNow() rather than panicking")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBytesEqual(t *testing.T) {
|
||||||
|
var cases = []struct {
|
||||||
|
a, b []byte
|
||||||
|
}{
|
||||||
|
{make([]byte, 2), make([]byte, 2)},
|
||||||
|
{make([]byte, 2), make([]byte, 2, 3)},
|
||||||
|
{nil, make([]byte, 0)},
|
||||||
|
}
|
||||||
|
for i, c := range cases {
|
||||||
|
Equal(t, reflect.DeepEqual(c.a, c.b), ObjectsAreEqual(c.a, c.b), "case %d failed", i+1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkBytesEqual(b *testing.B) {
|
||||||
|
const size = 1024 * 8
|
||||||
|
s := make([]byte, size)
|
||||||
|
for i := range s {
|
||||||
|
s[i] = byte(i % 255)
|
||||||
|
}
|
||||||
|
s2 := make([]byte, size)
|
||||||
|
copy(s2, s)
|
||||||
|
|
||||||
|
mockT := &mockFailNowTestingT{}
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
Equal(mockT, s, s2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user