123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- 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{
- `not supported on "gen_notice" modules`,
- },
- },
- {
- 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) {
- }
|