浏览代码

Replace AssertPanic with AssertPanicMessageContains

Bug: 182885307
Test: m nothing
Change-Id: Idffa314285c90080796cc3df391de9c314eaa422
Paul Duffin 3 年之前
父节点
当前提交
9f4b3bbb7c
共有 2 个文件被更改,包括 14 次插入8 次删除
  1. 10 4
      android/test_asserts.go
  2. 4 4
      sdk/bp_test.go

+ 10 - 4
android/test_asserts.go

@@ -15,6 +15,7 @@
 package android
 
 import (
+	"fmt"
 	"reflect"
 	"strings"
 	"testing"
@@ -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)
 }

+ 4 - 4
sdk/bp_test.go

@@ -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"}) })
 }
 
@@ -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) })
 	})
 }