mirror of
https://github.com/stretchr/testify.git
synced 2025-04-27 13:13:19 +00:00
Merge pull request #239 from anacrolix/master
Avoid panic when calling EqualValues with nil
This commit is contained in:
commit
82616deabd
@ -51,8 +51,11 @@ func ObjectsAreEqualValues(expected, actual interface{}) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
actualType := reflect.TypeOf(actual)
|
actualType := reflect.TypeOf(actual)
|
||||||
|
if actualType == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
expectedValue := reflect.ValueOf(expected)
|
expectedValue := reflect.ValueOf(expected)
|
||||||
if expectedValue.Type().ConvertibleTo(actualType) {
|
if expectedValue.IsValid() && expectedValue.Type().ConvertibleTo(actualType) {
|
||||||
// Attempt comparison after type conversion
|
// Attempt comparison after type conversion
|
||||||
return reflect.DeepEqual(expectedValue.Convert(actualType).Interface(), actual)
|
return reflect.DeepEqual(expectedValue.Convert(actualType).Interface(), actual)
|
||||||
}
|
}
|
||||||
|
@ -132,6 +132,12 @@ func TestObjectsAreEqual(t *testing.T) {
|
|||||||
if !ObjectsAreEqualValues(uint32(10), int32(10)) {
|
if !ObjectsAreEqualValues(uint32(10), int32(10)) {
|
||||||
t.Error("ObjectsAreEqualValues should return true")
|
t.Error("ObjectsAreEqualValues should return true")
|
||||||
}
|
}
|
||||||
|
if ObjectsAreEqualValues(0, nil) {
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
if ObjectsAreEqualValues(nil, 0) {
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user