Remove duplicate sdk.TestHelper
As part of the work on the new fixture mechanism some of the TestHelper functionality was moved into the android/fixture.go package. This moves the rest and removes the now duplicated TestHelper from the sdk package. Also removed some unnecessary & operators. Bug: 181070625 Test: m nothing Change-Id: Ia09a5d05e4fab3a4e28cf44b2d947a33541e3925
This commit is contained in:
parent
706cb6f344
commit
a3cb2b396f
|
@ -484,6 +484,18 @@ func (h *TestHelper) AssertStringEquals(message string, expected string, actual
|
|||
}
|
||||
}
|
||||
|
||||
// AssertErrorMessageEquals checks if the error is not nil and has the expected message. If it does
|
||||
// not then this reports an error prefixed with the supplied message and including a reason for why
|
||||
// it failed.
|
||||
func (h *TestHelper) AssertErrorMessageEquals(message string, expected string, actual error) {
|
||||
h.Helper()
|
||||
if actual == nil {
|
||||
h.Errorf("Expected error but was nil")
|
||||
} else if actual.Error() != expected {
|
||||
h.Errorf("%s: expected %s, actual %s", message, expected, actual.Error())
|
||||
}
|
||||
}
|
||||
|
||||
// AssertTrimmedStringEquals checks if the expected and actual values are the same after trimming
|
||||
// leading and trailing spaces from them both. If they are not then it reports an error prefixed
|
||||
// with the supplied message and including a reason for why it failed.
|
||||
|
@ -538,6 +550,23 @@ func (h *TestHelper) AssertDeepEquals(message string, expected interface{}, actu
|
|||
}
|
||||
}
|
||||
|
||||
// AssertPanic checks that the supplied function panics as expected.
|
||||
func (h *TestHelper) AssertPanic(message string, funcThatShouldPanic func()) {
|
||||
h.Helper()
|
||||
panicked := false
|
||||
func() {
|
||||
defer func() {
|
||||
if x := recover(); x != nil {
|
||||
panicked = true
|
||||
}
|
||||
}()
|
||||
funcThatShouldPanic()
|
||||
}()
|
||||
if !panicked {
|
||||
h.Error(message)
|
||||
}
|
||||
}
|
||||
|
||||
// Struct to allow TestResult to embed a *TestContext and allow call forwarding to its methods.
|
||||
type testContext struct {
|
||||
*TestContext
|
||||
|
|
|
@ -54,7 +54,7 @@ func propertyStructFixture() interface{} {
|
|||
return str
|
||||
}
|
||||
|
||||
func checkPropertySetFixture(h *TestHelper, val interface{}, hasTags bool) {
|
||||
func checkPropertySetFixture(h android.TestHelper, val interface{}, hasTags bool) {
|
||||
set := val.(*bpPropertySet)
|
||||
h.AssertDeepEquals("wrong x value", "taxi", set.getValue("x"))
|
||||
h.AssertDeepEquals("wrong y value", 1729, set.getValue("y"))
|
||||
|
@ -73,7 +73,7 @@ func checkPropertySetFixture(h *TestHelper, val interface{}, hasTags bool) {
|
|||
}
|
||||
|
||||
func TestAddPropertySimple(t *testing.T) {
|
||||
h := &TestHelper{t}
|
||||
h := android.TestHelper{t}
|
||||
set := newPropertySet()
|
||||
for name, val := range map[string]interface{}{
|
||||
"x": "taxi",
|
||||
|
@ -92,7 +92,7 @@ func TestAddPropertySimple(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestAddPropertySubset(t *testing.T) {
|
||||
h := &TestHelper{t}
|
||||
h := android.TestHelper{t}
|
||||
getFixtureMap := map[string]func() interface{}{
|
||||
"property set": propertySetFixture,
|
||||
"property struct": propertyStructFixture,
|
||||
|
@ -139,7 +139,7 @@ func TestAddPropertySubset(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestAddPropertySetNew(t *testing.T) {
|
||||
h := &TestHelper{t}
|
||||
h := android.TestHelper{t}
|
||||
set := newPropertySet()
|
||||
subset := set.AddPropertySet("sub")
|
||||
subset.AddProperty("new", "d^^b")
|
||||
|
@ -147,7 +147,7 @@ func TestAddPropertySetNew(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestAddPropertySetExisting(t *testing.T) {
|
||||
h := &TestHelper{t}
|
||||
h := android.TestHelper{t}
|
||||
set := propertySetFixture().(*bpPropertySet)
|
||||
subset := set.AddPropertySet("sub")
|
||||
subset.AddProperty("new", "d^^b")
|
||||
|
@ -181,7 +181,7 @@ func (t removeFredTransformation) transformPropertySetAfterContents(name string,
|
|||
|
||||
func TestTransformRemoveProperty(t *testing.T) {
|
||||
|
||||
helper := &TestHelper{t}
|
||||
helper := android.TestHelper{t}
|
||||
|
||||
set := newPropertySet()
|
||||
set.AddProperty("name", "name")
|
||||
|
@ -196,7 +196,7 @@ func TestTransformRemoveProperty(t *testing.T) {
|
|||
|
||||
func TestTransformRemovePropertySet(t *testing.T) {
|
||||
|
||||
helper := &TestHelper{t}
|
||||
helper := android.TestHelper{t}
|
||||
|
||||
set := newPropertySet()
|
||||
set.AddProperty("name", "name")
|
||||
|
|
|
@ -390,7 +390,7 @@ func TestCommonValueOptimization(t *testing.T) {
|
|||
|
||||
extractor := newCommonValueExtractor(common)
|
||||
|
||||
h := TestHelper{t}
|
||||
h := android.TestHelper{t}
|
||||
|
||||
err := extractor.extractCommonProperties(common, structs)
|
||||
h.AssertDeepEquals("unexpected error", nil, err)
|
||||
|
@ -465,7 +465,7 @@ func TestCommonValueOptimization_InvalidArchSpecificVariants(t *testing.T) {
|
|||
|
||||
extractor := newCommonValueExtractor(common)
|
||||
|
||||
h := TestHelper{t}
|
||||
h := android.TestHelper{t}
|
||||
|
||||
err := extractor.extractCommonProperties(common, structs)
|
||||
h.AssertErrorMessageEquals("unexpected error", `field "S_Common" is not tagged as "arch_variant" but has arch specific properties:
|
||||
|
|
|
@ -19,7 +19,6 @@ import (
|
|||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
|
@ -141,7 +140,7 @@ func runTests(t *testing.T, ctx *android.TestContext, config android.Config) *te
|
|||
_, errs = ctx.PrepareBuildActions(config)
|
||||
android.FailIfErrored(t, errs)
|
||||
return &testSdkResult{
|
||||
TestHelper: TestHelper{t: t},
|
||||
TestHelper: android.TestHelper{T: t},
|
||||
ctx: ctx,
|
||||
config: config,
|
||||
}
|
||||
|
@ -185,63 +184,10 @@ func pathsToStrings(paths android.Paths) []string {
|
|||
return ret
|
||||
}
|
||||
|
||||
// Provides general test support.
|
||||
type TestHelper struct {
|
||||
t *testing.T
|
||||
}
|
||||
|
||||
func (h *TestHelper) AssertStringEquals(message string, expected string, actual string) {
|
||||
h.t.Helper()
|
||||
if actual != expected {
|
||||
h.t.Errorf("%s: expected %s, actual %s", message, expected, actual)
|
||||
}
|
||||
}
|
||||
|
||||
func (h *TestHelper) AssertErrorMessageEquals(message string, expected string, actual error) {
|
||||
h.t.Helper()
|
||||
if actual == nil {
|
||||
h.t.Errorf("Expected error but was nil")
|
||||
} else if actual.Error() != expected {
|
||||
h.t.Errorf("%s: expected %s, actual %s", message, expected, actual.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func (h *TestHelper) AssertTrimmedStringEquals(message string, expected string, actual string) {
|
||||
h.t.Helper()
|
||||
expected = strings.TrimSpace(expected)
|
||||
actual = strings.TrimSpace(actual)
|
||||
if actual != expected {
|
||||
h.t.Errorf("%s: expected:\n%s\nactual:\n%s\n", message, expected, actual)
|
||||
}
|
||||
}
|
||||
|
||||
func (h *TestHelper) AssertDeepEquals(message string, expected interface{}, actual interface{}) {
|
||||
h.t.Helper()
|
||||
if !reflect.DeepEqual(actual, expected) {
|
||||
h.t.Errorf("%s: expected %#v, actual %#v", message, expected, actual)
|
||||
}
|
||||
}
|
||||
|
||||
func (h *TestHelper) AssertPanic(message string, funcThatShouldPanic func()) {
|
||||
h.t.Helper()
|
||||
panicked := false
|
||||
func() {
|
||||
defer func() {
|
||||
if x := recover(); x != nil {
|
||||
panicked = true
|
||||
}
|
||||
}()
|
||||
funcThatShouldPanic()
|
||||
}()
|
||||
if !panicked {
|
||||
h.t.Error(message)
|
||||
}
|
||||
}
|
||||
|
||||
// Encapsulates result of processing an SDK definition. Provides support for
|
||||
// checking the state of the build structures.
|
||||
type testSdkResult struct {
|
||||
TestHelper
|
||||
android.TestHelper
|
||||
ctx *android.TestContext
|
||||
config android.Config
|
||||
}
|
||||
|
@ -295,7 +241,7 @@ func (r *testSdkResult) getSdkSnapshotBuildInfo(sdk *sdk) *snapshotBuildInfo {
|
|||
info.intermediateZip = info.outputZip
|
||||
mergeInput := android.NormalizePathForTesting(bp.Input)
|
||||
if info.intermediateZip != mergeInput {
|
||||
r.t.Errorf("Expected intermediate zip %s to be an input to merge zips but found %s instead",
|
||||
r.Errorf("Expected intermediate zip %s to be an input to merge zips but found %s instead",
|
||||
info.intermediateZip, mergeInput)
|
||||
}
|
||||
|
||||
|
@ -328,7 +274,7 @@ func (r *testSdkResult) ModuleForTests(name string, variant string) android.Test
|
|||
// Allows each test to customize what is checked without duplicating lots of code
|
||||
// or proliferating check methods of different flavors.
|
||||
func (r *testSdkResult) CheckSnapshot(name string, dir string, checkers ...snapshotBuildInfoChecker) {
|
||||
r.t.Helper()
|
||||
r.Helper()
|
||||
|
||||
// The sdk CommonOS variant is always responsible for generating the snapshot.
|
||||
variant := android.CommonOS.Name
|
||||
|
@ -358,7 +304,7 @@ func (r *testSdkResult) CheckSnapshot(name string, dir string, checkers ...snaps
|
|||
}
|
||||
|
||||
// Process the generated bp file to make sure it is valid.
|
||||
testSdkWithFs(r.t, snapshotBuildInfo.androidBpContents, fs)
|
||||
testSdkWithFs(r.T, snapshotBuildInfo.androidBpContents, fs)
|
||||
}
|
||||
|
||||
type snapshotBuildInfoChecker func(info *snapshotBuildInfo)
|
||||
|
@ -368,7 +314,7 @@ type snapshotBuildInfoChecker func(info *snapshotBuildInfo)
|
|||
// Both the expected and actual string are both trimmed before comparing.
|
||||
func checkAndroidBpContents(expected string) snapshotBuildInfoChecker {
|
||||
return func(info *snapshotBuildInfo) {
|
||||
info.r.t.Helper()
|
||||
info.r.Helper()
|
||||
info.r.AssertTrimmedStringEquals("Android.bp contents do not match", expected, info.androidBpContents)
|
||||
}
|
||||
}
|
||||
|
@ -380,7 +326,7 @@ func checkAndroidBpContents(expected string) snapshotBuildInfoChecker {
|
|||
// Both the expected and actual string are both trimmed before comparing.
|
||||
func checkUnversionedAndroidBpContents(expected string) snapshotBuildInfoChecker {
|
||||
return func(info *snapshotBuildInfo) {
|
||||
info.r.t.Helper()
|
||||
info.r.Helper()
|
||||
info.r.AssertTrimmedStringEquals("unversioned Android.bp contents do not match", expected, info.androidUnversionedBpContents)
|
||||
}
|
||||
}
|
||||
|
@ -395,7 +341,7 @@ func checkUnversionedAndroidBpContents(expected string) snapshotBuildInfoChecker
|
|||
// Both the expected and actual string are both trimmed before comparing.
|
||||
func checkVersionedAndroidBpContents(expected string) snapshotBuildInfoChecker {
|
||||
return func(info *snapshotBuildInfo) {
|
||||
info.r.t.Helper()
|
||||
info.r.Helper()
|
||||
info.r.AssertTrimmedStringEquals("versioned Android.bp contents do not match", expected, info.androidVersionedBpContents)
|
||||
}
|
||||
}
|
||||
|
@ -407,14 +353,14 @@ func checkVersionedAndroidBpContents(expected string) snapshotBuildInfoChecker {
|
|||
// before comparing.
|
||||
func checkAllCopyRules(expected string) snapshotBuildInfoChecker {
|
||||
return func(info *snapshotBuildInfo) {
|
||||
info.r.t.Helper()
|
||||
info.r.Helper()
|
||||
info.r.AssertTrimmedStringEquals("Incorrect copy rules", expected, info.copyRules)
|
||||
}
|
||||
}
|
||||
|
||||
func checkAllOtherCopyRules(expected string) snapshotBuildInfoChecker {
|
||||
return func(info *snapshotBuildInfo) {
|
||||
info.r.t.Helper()
|
||||
info.r.Helper()
|
||||
info.r.AssertTrimmedStringEquals("Incorrect copy rules", expected, info.otherCopyRules)
|
||||
}
|
||||
}
|
||||
|
@ -422,9 +368,9 @@ func checkAllOtherCopyRules(expected string) snapshotBuildInfoChecker {
|
|||
// Check that the specified paths match the list of zips to merge with the intermediate zip.
|
||||
func checkMergeZips(expected ...string) snapshotBuildInfoChecker {
|
||||
return func(info *snapshotBuildInfo) {
|
||||
info.r.t.Helper()
|
||||
info.r.Helper()
|
||||
if info.intermediateZip == "" {
|
||||
info.r.t.Errorf("No intermediate zip file was created")
|
||||
info.r.Errorf("No intermediate zip file was created")
|
||||
}
|
||||
|
||||
info.r.AssertDeepEquals("mismatching merge zip files", expected, info.mergeZips)
|
||||
|
|
Loading…
Reference in New Issue