Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f4b3bbb authored by Paul Duffin's avatar Paul Duffin
Browse files

Replace AssertPanic with AssertPanicMessageContains

Bug: 182885307
Test: m nothing
Change-Id: Idffa314285c90080796cc3df391de9c314eaa422
parent 03878621
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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) })
	})
}