Fix TestCloneProperties for go 1.21 am: 50fe8e79e5
am: 21118230c9
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2824190 Change-Id: I613f425fecb3513ac58b7d9d6bf3afb2a4fa1142 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
d732cac5fd
1 changed files with 16 additions and 1 deletions
|
@ -296,6 +296,21 @@ type EmbeddedStruct struct {
|
||||||
}
|
}
|
||||||
type EmbeddedInterface interface{}
|
type EmbeddedInterface interface{}
|
||||||
|
|
||||||
|
func isPointerToEmptyStruct(v any) bool {
|
||||||
|
t := reflect.TypeOf(v)
|
||||||
|
if t.Kind() != reflect.Ptr {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
t = t.Elem()
|
||||||
|
if t.Kind() != reflect.Struct {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if t.NumField() > 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
func TestCloneProperties(t *testing.T) {
|
func TestCloneProperties(t *testing.T) {
|
||||||
for _, testCase := range clonePropertiesTestCases {
|
for _, testCase := range clonePropertiesTestCases {
|
||||||
testString := fmt.Sprintf("%s", testCase.in)
|
testString := fmt.Sprintf("%s", testCase.in)
|
||||||
|
@ -308,7 +323,7 @@ func TestCloneProperties(t *testing.T) {
|
||||||
t.Errorf(" expected: %#v", testCase.out)
|
t.Errorf(" expected: %#v", testCase.out)
|
||||||
t.Errorf(" got: %#v", got)
|
t.Errorf(" got: %#v", got)
|
||||||
}
|
}
|
||||||
if testCase.out == got {
|
if testCase.out == got && !isPointerToEmptyStruct(testCase.out) {
|
||||||
t.Errorf("test case %s", testString)
|
t.Errorf("test case %s", testString)
|
||||||
t.Errorf("items should be cloned, not the original")
|
t.Errorf("items should be cloned, not the original")
|
||||||
t.Errorf(" expected: %s", testCase.out)
|
t.Errorf(" expected: %s", testCase.out)
|
||||||
|
|
Loading…
Reference in a new issue