summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
author Paul Duffin <paulduffin@google.com> 2021-03-30 16:26:20 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2021-03-30 16:26:20 +0000
commit8d3c44a986378ee27be61b607ac475ceb3f805fa (patch)
tree562cf1644d631a67592b43de3cebc31c45ae608b /java
parentafd4c6810647653b9050b217553072ea2608b7d7 (diff)
parent82886d6cbf4d4785d1f746aefc11db6ec724dbb7 (diff)
Merge "Add contents property to boot_image (and prebuilt_boot_image)"
Diffstat (limited to 'java')
-rw-r--r--java/boot_image.go11
-rw-r--r--java/boot_image_test.go24
2 files changed, 33 insertions, 2 deletions
diff --git a/java/boot_image.go b/java/boot_image.go
index 8594792b5..0fc9c6cb6 100644
--- a/java/boot_image.go
+++ b/java/boot_image.go
@@ -73,13 +73,13 @@ var _ android.ExcludeFromVisibilityEnforcementTag = bootImageContentDepTag
type bootImageProperties struct {
// The name of the image this represents.
//
- // Must be one of "art" or "boot".
+ // If specified then it must be one of "art" or "boot".
Image_name *string
// The contents of this boot image, could be either java_library, java_sdk_library, or boot_image.
//
// The order of this list matters as it is the order that is used in the bootclasspath.
- Contents []string `blueprint:"mutated"`
+ Contents []string
}
type BootImageModule struct {
@@ -104,6 +104,13 @@ func bootImageFactory() android.Module {
}
func bootImageConsistencyCheck(ctx android.EarlyModuleContext, m *BootImageModule) {
+ contents := m.properties.Contents
+ if m.properties.Image_name == nil && len(contents) == 0 {
+ ctx.ModuleErrorf(`neither of the "image_name" and "contents" properties have been supplied, please supply exactly one`)
+ }
+ if m.properties.Image_name != nil && len(contents) != 0 {
+ ctx.ModuleErrorf(`both of the "image_name" and "contents" properties have been supplied, please supply exactly one`)
+ }
imageName := proptools.String(m.properties.Image_name)
if imageName == "art" {
// Get the configuration for the art apex jars. Do not use getImageConfig(ctx) here as this is
diff --git a/java/boot_image_test.go b/java/boot_image_test.go
index a289df877..e1866dedc 100644
--- a/java/boot_image_test.go
+++ b/java/boot_image_test.go
@@ -101,3 +101,27 @@ func TestBootImageInconsistentArtConfiguration_ApexMixture(t *testing.T) {
}
`)
}
+
+func TestBootImageWithoutImageNameOrContents(t *testing.T) {
+ prepareForTestWithBootImage.
+ ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(
+ `\Qneither of the "image_name" and "contents" properties\E`)).
+ RunTestWithBp(t, `
+ boot_image {
+ name: "boot-image",
+ }
+ `)
+}
+
+func TestBootImageWithImageNameAndContents(t *testing.T) {
+ prepareForTestWithBootImage.
+ ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(
+ `\Qboth of the "image_name" and "contents" properties\E`)).
+ RunTestWithBp(t, `
+ boot_image {
+ name: "boot-image",
+ image_name: "boot",
+ contents: ["other"],
+ }
+ `)
+}