Loading android/test_asserts.go +10 −4 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ package android import ( "fmt" "reflect" "strings" "testing" Loading Loading @@ -162,19 +163,24 @@ func AssertDeepEquals(t *testing.T, message string, expected interface{}, actual } } // AssertPanic checks that the supplied function panics as expected. func AssertPanic(t *testing.T, message string, funcThatShouldPanic func()) { // AssertPanicMessageContains checks that the supplied function panics as expected and the message // obtained by formatting the recovered value as a string contains the expected contents. func AssertPanicMessageContains(t *testing.T, message, expectedMessageContents string, funcThatShouldPanic func()) { t.Helper() panicked := false var recovered interface{} func() { defer func() { if x := recover(); x != nil { if recovered = recover(); recovered != nil { panicked = true } }() funcThatShouldPanic() }() if !panicked { t.Error(message) t.Errorf("%s: did not panic", message) } panicMessage := fmt.Sprintf("%s", recovered) AssertStringDoesContain(t, fmt.Sprintf("%s: panic message", message), panicMessage, expectedMessageContents) } sdk/bp_test.go +4 −4 Original line number Diff line number Diff line Loading @@ -84,9 +84,9 @@ func TestAddPropertySimple(t *testing.T) { set.AddProperty(name, val) android.AssertDeepEquals(t, "wrong value", val, set.getValue(name)) } android.AssertPanic(t, "adding x again should panic", android.AssertPanicMessageContains(t, "adding x again should panic", `Property "x" already exists in property set`, func() { set.AddProperty("x", "taxi") }) android.AssertPanic(t, "adding arr again should panic", android.AssertPanicMessageContains(t, "adding arr again should panic", `Property "arr" already exists in property set`, func() { set.AddProperty("arr", []string{"d"}) }) } Loading Loading @@ -124,14 +124,14 @@ func TestAddPropertySubset(t *testing.T) { t.Run("add conflicting subset", func(t *testing.T) { set := propertySetFixture().(*bpPropertySet) android.AssertPanic(t, "adding x again should panic", android.AssertPanicMessageContains(t, "adding x again should panic", `Property "x" already exists in property set`, func() { set.AddProperty("x", propertySetFixture()) }) }) t.Run("add non-pointer struct", func(t *testing.T) { set := propertySetFixture().(*bpPropertySet) str := propertyStructFixture().(*propertyStruct) android.AssertPanic(t, "adding a non-pointer struct should panic", android.AssertPanicMessageContains(t, "adding a non-pointer struct should panic", "Value is a struct, not a pointer to one:", func() { set.AddProperty("new", *str) }) }) } Loading Loading
android/test_asserts.go +10 −4 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ package android import ( "fmt" "reflect" "strings" "testing" Loading Loading @@ -162,19 +163,24 @@ func AssertDeepEquals(t *testing.T, message string, expected interface{}, actual } } // AssertPanic checks that the supplied function panics as expected. func AssertPanic(t *testing.T, message string, funcThatShouldPanic func()) { // AssertPanicMessageContains checks that the supplied function panics as expected and the message // obtained by formatting the recovered value as a string contains the expected contents. func AssertPanicMessageContains(t *testing.T, message, expectedMessageContents string, funcThatShouldPanic func()) { t.Helper() panicked := false var recovered interface{} func() { defer func() { if x := recover(); x != nil { if recovered = recover(); recovered != nil { panicked = true } }() funcThatShouldPanic() }() if !panicked { t.Error(message) t.Errorf("%s: did not panic", message) } panicMessage := fmt.Sprintf("%s", recovered) AssertStringDoesContain(t, fmt.Sprintf("%s: panic message", message), panicMessage, expectedMessageContents) }
sdk/bp_test.go +4 −4 Original line number Diff line number Diff line Loading @@ -84,9 +84,9 @@ func TestAddPropertySimple(t *testing.T) { set.AddProperty(name, val) android.AssertDeepEquals(t, "wrong value", val, set.getValue(name)) } android.AssertPanic(t, "adding x again should panic", android.AssertPanicMessageContains(t, "adding x again should panic", `Property "x" already exists in property set`, func() { set.AddProperty("x", "taxi") }) android.AssertPanic(t, "adding arr again should panic", android.AssertPanicMessageContains(t, "adding arr again should panic", `Property "arr" already exists in property set`, func() { set.AddProperty("arr", []string{"d"}) }) } Loading Loading @@ -124,14 +124,14 @@ func TestAddPropertySubset(t *testing.T) { t.Run("add conflicting subset", func(t *testing.T) { set := propertySetFixture().(*bpPropertySet) android.AssertPanic(t, "adding x again should panic", android.AssertPanicMessageContains(t, "adding x again should panic", `Property "x" already exists in property set`, func() { set.AddProperty("x", propertySetFixture()) }) }) t.Run("add non-pointer struct", func(t *testing.T) { set := propertySetFixture().(*bpPropertySet) str := propertyStructFixture().(*propertyStruct) android.AssertPanic(t, "adding a non-pointer struct should panic", android.AssertPanicMessageContains(t, "adding a non-pointer struct should panic", "Value is a struct, not a pointer to one:", func() { set.AddProperty("new", *str) }) }) } Loading