Loading apex/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ bootstrap_go_package { "soong-cc", "soong-filesystem", "soong-java", "soong-provenance", "soong-python", "soong-rust", "soong-sh", Loading apex/apex_test.go +24 −4 Original line number Diff line number Diff line Loading @@ -3889,7 +3889,7 @@ func TestVndkApexWithBinder32(t *testing.T) { }), withBinder32bit, withTargets(map[android.OsType][]android.Target{ android.Android: []android.Target{ android.Android: { {Os: android.Android, Arch: android.Arch{ArchType: android.Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, NativeBridge: android.NativeBridgeDisabled, NativeBridgeHostArchName: "", NativeBridgeRelativePath: ""}, }, Loading Loading @@ -4570,12 +4570,20 @@ func TestPrebuilt(t *testing.T) { } `) prebuilt := ctx.ModuleForTests("myapex", "android_common_myapex").Module().(*Prebuilt) testingModule := ctx.ModuleForTests("myapex", "android_common_myapex") prebuilt := testingModule.Module().(*Prebuilt) expectedInput := "myapex-arm64.apex" if prebuilt.inputApex.String() != expectedInput { t.Errorf("inputApex invalid. expected: %q, actual: %q", expectedInput, prebuilt.inputApex.String()) } android.AssertStringDoesContain(t, "Invalid provenance metadata file", prebuilt.ProvenanceMetaDataFile().String(), "soong/.intermediates/provenance_metadata/myapex/provenance_metadata.textproto") rule := testingModule.Rule("genProvenanceMetaData") android.AssertStringEquals(t, "Invalid input", "myapex-arm64.apex", rule.Inputs[0].String()) android.AssertStringEquals(t, "Invalid output", "out/soong/.intermediates/provenance_metadata/myapex/provenance_metadata.textproto", rule.Output.String()) android.AssertStringEquals(t, "Invalid args", "myapex", rule.Args["module_name"]) android.AssertStringEquals(t, "Invalid args", "/system/apex/myapex.apex", rule.Args["install_path"]) } func TestPrebuiltMissingSrc(t *testing.T) { Loading @@ -4595,12 +4603,18 @@ func TestPrebuiltFilenameOverride(t *testing.T) { } `) p := ctx.ModuleForTests("myapex", "android_common_myapex").Module().(*Prebuilt) testingModule := ctx.ModuleForTests("myapex", "android_common_myapex") p := testingModule.Module().(*Prebuilt) expected := "notmyapex.apex" if p.installFilename != expected { t.Errorf("installFilename invalid. expected: %q, actual: %q", expected, p.installFilename) } rule := testingModule.Rule("genProvenanceMetaData") android.AssertStringEquals(t, "Invalid input", "myapex-arm.apex", rule.Inputs[0].String()) android.AssertStringEquals(t, "Invalid output", "out/soong/.intermediates/provenance_metadata/myapex/provenance_metadata.textproto", rule.Output.String()) android.AssertStringEquals(t, "Invalid args", "myapex", rule.Args["module_name"]) android.AssertStringEquals(t, "Invalid args", "/system/apex/notmyapex.apex", rule.Args["install_path"]) } func TestApexSetFilenameOverride(t *testing.T) { Loading Loading @@ -4643,13 +4657,19 @@ func TestPrebuiltOverrides(t *testing.T) { } `) p := ctx.ModuleForTests("myapex.prebuilt", "android_common_myapex.prebuilt").Module().(*Prebuilt) testingModule := ctx.ModuleForTests("myapex.prebuilt", "android_common_myapex.prebuilt") p := testingModule.Module().(*Prebuilt) expected := []string{"myapex"} actual := android.AndroidMkEntriesForTest(t, ctx, p)[0].EntryMap["LOCAL_OVERRIDES_MODULES"] if !reflect.DeepEqual(actual, expected) { t.Errorf("Incorrect LOCAL_OVERRIDES_MODULES value '%s', expected '%s'", actual, expected) } rule := testingModule.Rule("genProvenanceMetaData") android.AssertStringEquals(t, "Invalid input", "myapex-arm.apex", rule.Inputs[0].String()) android.AssertStringEquals(t, "Invalid output", "out/soong/.intermediates/provenance_metadata/myapex.prebuilt/provenance_metadata.textproto", rule.Output.String()) android.AssertStringEquals(t, "Invalid args", "myapex.prebuilt", rule.Args["module_name"]) android.AssertStringEquals(t, "Invalid args", "/system/apex/myapex.prebuilt.apex", rule.Args["install_path"]) } func TestPrebuiltApexName(t *testing.T) { Loading apex/prebuilt.go +8 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import ( "android/soong/android" "android/soong/java" "android/soong/provenance" "github.com/google/blueprint" "github.com/google/blueprint/proptools" ) Loading Loading @@ -482,6 +482,8 @@ type Prebuilt struct { properties PrebuiltProperties inputApex android.Path provenanceMetaDataFile android.OutputPath } type ApexFileProperties struct { Loading Loading @@ -778,9 +780,14 @@ func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) { if p.installable() { p.installedFile = ctx.InstallFile(p.installDir, p.installFilename, p.inputApex, p.compatSymlinks.Paths()...) p.provenanceMetaDataFile = provenance.GenerateArtifactProvenanceMetaData(ctx, p.inputApex, p.installedFile) } } func (p *Prebuilt) ProvenanceMetaDataFile() android.OutputPath { return p.provenanceMetaDataFile } // prebuiltApexExtractorModule is a private module type that is only created by the prebuilt_apex // module. It extracts the correct apex to use and makes it available for use by apex_set. type prebuiltApexExtractorModule struct { Loading cmd/soong_build/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ blueprint_go_binary { "golang-protobuf-android", "soong", "soong-android", "soong-provenance", "soong-bp2build", "soong-ui-metrics_proto", ], Loading java/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ bootstrap_go_package { "soong-dexpreopt", "soong-genrule", "soong-java-config", "soong-provenance", "soong-python", "soong-remoteexec", "soong-tradefed", Loading Loading
apex/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ bootstrap_go_package { "soong-cc", "soong-filesystem", "soong-java", "soong-provenance", "soong-python", "soong-rust", "soong-sh", Loading
apex/apex_test.go +24 −4 Original line number Diff line number Diff line Loading @@ -3889,7 +3889,7 @@ func TestVndkApexWithBinder32(t *testing.T) { }), withBinder32bit, withTargets(map[android.OsType][]android.Target{ android.Android: []android.Target{ android.Android: { {Os: android.Android, Arch: android.Arch{ArchType: android.Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, NativeBridge: android.NativeBridgeDisabled, NativeBridgeHostArchName: "", NativeBridgeRelativePath: ""}, }, Loading Loading @@ -4570,12 +4570,20 @@ func TestPrebuilt(t *testing.T) { } `) prebuilt := ctx.ModuleForTests("myapex", "android_common_myapex").Module().(*Prebuilt) testingModule := ctx.ModuleForTests("myapex", "android_common_myapex") prebuilt := testingModule.Module().(*Prebuilt) expectedInput := "myapex-arm64.apex" if prebuilt.inputApex.String() != expectedInput { t.Errorf("inputApex invalid. expected: %q, actual: %q", expectedInput, prebuilt.inputApex.String()) } android.AssertStringDoesContain(t, "Invalid provenance metadata file", prebuilt.ProvenanceMetaDataFile().String(), "soong/.intermediates/provenance_metadata/myapex/provenance_metadata.textproto") rule := testingModule.Rule("genProvenanceMetaData") android.AssertStringEquals(t, "Invalid input", "myapex-arm64.apex", rule.Inputs[0].String()) android.AssertStringEquals(t, "Invalid output", "out/soong/.intermediates/provenance_metadata/myapex/provenance_metadata.textproto", rule.Output.String()) android.AssertStringEquals(t, "Invalid args", "myapex", rule.Args["module_name"]) android.AssertStringEquals(t, "Invalid args", "/system/apex/myapex.apex", rule.Args["install_path"]) } func TestPrebuiltMissingSrc(t *testing.T) { Loading @@ -4595,12 +4603,18 @@ func TestPrebuiltFilenameOverride(t *testing.T) { } `) p := ctx.ModuleForTests("myapex", "android_common_myapex").Module().(*Prebuilt) testingModule := ctx.ModuleForTests("myapex", "android_common_myapex") p := testingModule.Module().(*Prebuilt) expected := "notmyapex.apex" if p.installFilename != expected { t.Errorf("installFilename invalid. expected: %q, actual: %q", expected, p.installFilename) } rule := testingModule.Rule("genProvenanceMetaData") android.AssertStringEquals(t, "Invalid input", "myapex-arm.apex", rule.Inputs[0].String()) android.AssertStringEquals(t, "Invalid output", "out/soong/.intermediates/provenance_metadata/myapex/provenance_metadata.textproto", rule.Output.String()) android.AssertStringEquals(t, "Invalid args", "myapex", rule.Args["module_name"]) android.AssertStringEquals(t, "Invalid args", "/system/apex/notmyapex.apex", rule.Args["install_path"]) } func TestApexSetFilenameOverride(t *testing.T) { Loading Loading @@ -4643,13 +4657,19 @@ func TestPrebuiltOverrides(t *testing.T) { } `) p := ctx.ModuleForTests("myapex.prebuilt", "android_common_myapex.prebuilt").Module().(*Prebuilt) testingModule := ctx.ModuleForTests("myapex.prebuilt", "android_common_myapex.prebuilt") p := testingModule.Module().(*Prebuilt) expected := []string{"myapex"} actual := android.AndroidMkEntriesForTest(t, ctx, p)[0].EntryMap["LOCAL_OVERRIDES_MODULES"] if !reflect.DeepEqual(actual, expected) { t.Errorf("Incorrect LOCAL_OVERRIDES_MODULES value '%s', expected '%s'", actual, expected) } rule := testingModule.Rule("genProvenanceMetaData") android.AssertStringEquals(t, "Invalid input", "myapex-arm.apex", rule.Inputs[0].String()) android.AssertStringEquals(t, "Invalid output", "out/soong/.intermediates/provenance_metadata/myapex.prebuilt/provenance_metadata.textproto", rule.Output.String()) android.AssertStringEquals(t, "Invalid args", "myapex.prebuilt", rule.Args["module_name"]) android.AssertStringEquals(t, "Invalid args", "/system/apex/myapex.prebuilt.apex", rule.Args["install_path"]) } func TestPrebuiltApexName(t *testing.T) { Loading
apex/prebuilt.go +8 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import ( "android/soong/android" "android/soong/java" "android/soong/provenance" "github.com/google/blueprint" "github.com/google/blueprint/proptools" ) Loading Loading @@ -482,6 +482,8 @@ type Prebuilt struct { properties PrebuiltProperties inputApex android.Path provenanceMetaDataFile android.OutputPath } type ApexFileProperties struct { Loading Loading @@ -778,9 +780,14 @@ func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) { if p.installable() { p.installedFile = ctx.InstallFile(p.installDir, p.installFilename, p.inputApex, p.compatSymlinks.Paths()...) p.provenanceMetaDataFile = provenance.GenerateArtifactProvenanceMetaData(ctx, p.inputApex, p.installedFile) } } func (p *Prebuilt) ProvenanceMetaDataFile() android.OutputPath { return p.provenanceMetaDataFile } // prebuiltApexExtractorModule is a private module type that is only created by the prebuilt_apex // module. It extracts the correct apex to use and makes it available for use by apex_set. type prebuiltApexExtractorModule struct { Loading
cmd/soong_build/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ blueprint_go_binary { "golang-protobuf-android", "soong", "soong-android", "soong-provenance", "soong-bp2build", "soong-ui-metrics_proto", ], Loading
java/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ bootstrap_go_package { "soong-dexpreopt", "soong-genrule", "soong-java-config", "soong-provenance", "soong-python", "soong-remoteexec", "soong-tradefed", Loading