Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/build/build/soong/android/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 3 kB image not shown  

Quelle  gen_notice_test.go   Sprache: unbekannt

 
Spracherkennung für: .go vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

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,
    PrepareForTestWithHostTools("textnotice", "htmlnotice", "xmlnotice"),
    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) {
}

[Dauer der Verarbeitung: 0.19 Sekunden, vorverarbeitet 2026-06-28]