Add gen_notice test.
Test: m cts dist reportmissinglicenses Change-Id: I1d630c3d14d27b7605ab13d204d34b6851a24d33
This commit is contained in:
@@ -107,6 +107,7 @@ bootstrap_go_package {
|
||||
"deptag_test.go",
|
||||
"expand_test.go",
|
||||
"fixture_test.go",
|
||||
"gen_notice_test.go",
|
||||
"license_kind_test.go",
|
||||
"license_test.go",
|
||||
"licenses_test.go",
|
||||
|
164
android/gen_notice_test.go
Normal file
164
android/gen_notice_test.go
Normal file
@@ -0,0 +1,164 @@
|
||||
package android
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
var genNoticeTests = []struct {
|
||||
name string
|
||||
fs MockFS
|
||||
expectedErrors []string
|
||||
}{
|
||||
{
|
||||
name: "gen_notice must not accept licenses property",
|
||||
fs: map[string][]byte{
|
||||
"top/Android.bp": []byte(`
|
||||
gen_notice {
|
||||
name: "top_license",
|
||||
licenses: ["other_license"],
|
||||
}`),
|
||||
},
|
||||
expectedErrors: []string{
|
||||
`unrecognized property "licenses"`,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "bad gen_notice",
|
||||
fs: map[string][]byte{
|
||||
"top/Android.bp": []byte(`
|
||||
gen_notice {
|
||||
name: "top_notice",
|
||||
for: ["top_rule"],
|
||||
}`),
|
||||
"other/Android.bp": []byte(`
|
||||
mock_genrule {
|
||||
name: "other_rule",
|
||||
dep: ["top_notice"],
|
||||
}`),
|
||||
},
|
||||
expectedErrors: []string{
|
||||
`module "top_notice": for: no "top_rule" module exists`,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "doubly bad gen_notice",
|
||||
fs: map[string][]byte{
|
||||
"top/Android.bp": []byte(`
|
||||
gen_notice {
|
||||
name: "top_notice",
|
||||
for: ["top_rule", "other_rule"],
|
||||
}`),
|
||||
},
|
||||
expectedErrors: []string{
|
||||
`module "top_notice": for: modules "top_rule", "other_rule" do not exist`,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "good gen_notice",
|
||||
fs: map[string][]byte{
|
||||
"top/Android.bp": []byte(`
|
||||
gen_notice {
|
||||
name: "top_notice",
|
||||
for: ["top_rule"],
|
||||
}
|
||||
|
||||
mock_genrule {
|
||||
name: "top_rule",
|
||||
dep: ["top_notice"],
|
||||
}`),
|
||||
"other/Android.bp": []byte(`
|
||||
mock_genrule {
|
||||
name: "other_rule",
|
||||
dep: ["top_notice"],
|
||||
}`),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "multiple license kinds",
|
||||
fs: map[string][]byte{
|
||||
"top/Android.bp": []byte(`
|
||||
gen_notice {
|
||||
name: "top_notice",
|
||||
for: ["top_rule"],
|
||||
}
|
||||
|
||||
gen_notice {
|
||||
name: "top_html_notice",
|
||||
html: true,
|
||||
for: ["top_rule"],
|
||||
}
|
||||
|
||||
gen_notice {
|
||||
name: "top_xml_notice",
|
||||
xml: true,
|
||||
for: ["top_notice"],
|
||||
}
|
||||
|
||||
mock_genrule {
|
||||
name: "top_rule",
|
||||
dep: [
|
||||
"top_notice",
|
||||
"top_html_notice",
|
||||
"top_xml_notice",
|
||||
],
|
||||
}`),
|
||||
"other/Android.bp": []byte(`
|
||||
mock_genrule {
|
||||
name: "other_rule",
|
||||
dep: ["top_xml_notice"],
|
||||
}`),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func TestGenNotice(t *testing.T) {
|
||||
for _, test := range genNoticeTests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
GroupFixturePreparers(
|
||||
PrepareForTestWithGenNotice,
|
||||
FixtureRegisterWithContext(func(ctx RegistrationContext) {
|
||||
ctx.RegisterModuleType("mock_genrule", newMockGenruleModule)
|
||||
}),
|
||||
test.fs.AddToFixture(),
|
||||
).
|
||||
ExtendWithErrorHandler(FixtureExpectsAllErrorsToMatchAPattern(test.expectedErrors)).
|
||||
RunTest(t)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
type mockGenruleProperties struct {
|
||||
Dep []string
|
||||
}
|
||||
|
||||
type mockGenruleModule struct {
|
||||
ModuleBase
|
||||
DefaultableModuleBase
|
||||
|
||||
properties mockGenruleProperties
|
||||
}
|
||||
|
||||
func newMockGenruleModule() Module {
|
||||
m := &mockGenruleModule{}
|
||||
m.AddProperties(&m.properties)
|
||||
InitAndroidArchModule(m, HostAndDeviceSupported, MultilibCommon)
|
||||
InitDefaultableModule(m)
|
||||
return m
|
||||
}
|
||||
|
||||
type genruleDepTag struct {
|
||||
blueprint.BaseDependencyTag
|
||||
}
|
||||
|
||||
func (j *mockGenruleModule) DepsMutator(ctx BottomUpMutatorContext) {
|
||||
m, ok := ctx.Module().(Module)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
ctx.AddDependency(m, genruleDepTag{}, j.properties.Dep...)
|
||||
}
|
||||
|
||||
func (p *mockGenruleModule) GenerateAndroidBuildActions(ModuleContext) {
|
||||
}
|
Reference in New Issue
Block a user