Convert xml package to fixtures
Bug: 182885307 Test: m nothing Change-Id: I9aad3e4e6dbec9c25e8a0aeaf8e0ec1d82e39400
This commit is contained in:
parent
94b6960b39
commit
ec74f81b49
|
@ -15,7 +15,6 @@
|
||||||
package xml
|
package xml
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
@ -23,62 +22,33 @@ import (
|
||||||
"android/soong/etc"
|
"android/soong/etc"
|
||||||
)
|
)
|
||||||
|
|
||||||
var buildDir string
|
|
||||||
|
|
||||||
func setUp() {
|
|
||||||
var err error
|
|
||||||
buildDir, err = ioutil.TempDir("", "soong_xml_test")
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func tearDown() {
|
|
||||||
os.RemoveAll(buildDir)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
run := func() int {
|
os.Exit(m.Run())
|
||||||
setUp()
|
|
||||||
defer tearDown()
|
|
||||||
|
|
||||||
return m.Run()
|
|
||||||
}
|
|
||||||
|
|
||||||
os.Exit(run())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func testXml(t *testing.T, bp string) *android.TestContext {
|
var emptyFixtureFactory = android.NewFixtureFactory(nil)
|
||||||
fs := map[string][]byte{
|
|
||||||
|
func testXml(t *testing.T, bp string) *android.TestResult {
|
||||||
|
fs := android.MockFS{
|
||||||
"foo.xml": nil,
|
"foo.xml": nil,
|
||||||
"foo.dtd": nil,
|
"foo.dtd": nil,
|
||||||
"bar.xml": nil,
|
"bar.xml": nil,
|
||||||
"bar.xsd": nil,
|
"bar.xsd": nil,
|
||||||
"baz.xml": nil,
|
"baz.xml": nil,
|
||||||
}
|
}
|
||||||
config := android.TestArchConfig(buildDir, nil, bp, fs)
|
|
||||||
ctx := android.NewTestArchContext(config)
|
|
||||||
ctx.RegisterModuleType("prebuilt_etc", etc.PrebuiltEtcFactory)
|
|
||||||
ctx.RegisterModuleType("prebuilt_etc_xml", PrebuiltEtcXmlFactory)
|
|
||||||
ctx.Register()
|
|
||||||
_, errs := ctx.ParseFileList(".", []string{"Android.bp"})
|
|
||||||
android.FailIfErrored(t, errs)
|
|
||||||
_, errs = ctx.PrepareBuildActions(config)
|
|
||||||
android.FailIfErrored(t, errs)
|
|
||||||
|
|
||||||
return ctx
|
return emptyFixtureFactory.RunTest(t,
|
||||||
}
|
android.PrepareForTestWithArchMutator,
|
||||||
|
etc.PrepareForTestWithPrebuiltEtc,
|
||||||
func assertEqual(t *testing.T, name, expected, actual string) {
|
PreparerForTestWithXmlBuildComponents,
|
||||||
t.Helper()
|
fs.AddToFixture(),
|
||||||
if expected != actual {
|
android.FixtureWithRootAndroidBp(bp),
|
||||||
t.Errorf(name+" expected %q != got %q", expected, actual)
|
)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Minimal test
|
// Minimal test
|
||||||
func TestPrebuiltEtcXml(t *testing.T) {
|
func TestPrebuiltEtcXml(t *testing.T) {
|
||||||
ctx := testXml(t, `
|
result := testXml(t, `
|
||||||
prebuilt_etc_xml {
|
prebuilt_etc_xml {
|
||||||
name: "foo.xml",
|
name: "foo.xml",
|
||||||
src: "foo.xml",
|
src: "foo.xml",
|
||||||
|
@ -103,14 +73,14 @@ func TestPrebuiltEtcXml(t *testing.T) {
|
||||||
{rule: "xmllint-minimal", input: "baz.xml"},
|
{rule: "xmllint-minimal", input: "baz.xml"},
|
||||||
} {
|
} {
|
||||||
t.Run(tc.schemaType, func(t *testing.T) {
|
t.Run(tc.schemaType, func(t *testing.T) {
|
||||||
rule := ctx.ModuleForTests(tc.input, "android_arm64_armv8-a").Rule(tc.rule)
|
rule := result.ModuleForTests(tc.input, "android_arm64_armv8-a").Rule(tc.rule)
|
||||||
assertEqual(t, "input", tc.input, rule.Input.String())
|
android.AssertStringEquals(t, "input", tc.input, rule.Input.String())
|
||||||
if tc.schemaType != "" {
|
if tc.schemaType != "" {
|
||||||
assertEqual(t, "schema", tc.schema, rule.Args[tc.schemaType])
|
android.AssertStringEquals(t, "schema", tc.schema, rule.Args[tc.schemaType])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
m := ctx.ModuleForTests("foo.xml", "android_arm64_armv8-a").Module().(*prebuiltEtcXml)
|
m := result.ModuleForTests("foo.xml", "android_arm64_armv8-a").Module().(*prebuiltEtcXml)
|
||||||
assertEqual(t, "installDir", buildDir+"/target/product/test_device/system/etc", m.InstallDirPath().String())
|
android.AssertPathRelativeToTopEquals(t, "installDir", "out/soong/target/product/test_device/system/etc", m.InstallDirPath())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue