aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/Android.bp1
-rw-r--r--android/filegroup.go25
-rw-r--r--android/filegroup_test.go26
-rwxr-xr-xjava/app.go4
-rw-r--r--java/java.go4
-rw-r--r--java/lint.go8
-rw-r--r--java/robolectric.go2
-rw-r--r--scripts/Android.bp6
8 files changed, 67 insertions, 9 deletions
diff --git a/android/Android.bp b/android/Android.bp
index 65332b2d8..c0a35accd 100644
--- a/android/Android.bp
+++ b/android/Android.bp
@@ -106,6 +106,7 @@ bootstrap_go_package {
"depset_test.go",
"deptag_test.go",
"expand_test.go",
+ "filegroup_test.go",
"fixture_test.go",
"gen_notice_test.go",
"license_kind_test.go",
diff --git a/android/filegroup.go b/android/filegroup.go
index 50356d1c3..a2e69efa4 100644
--- a/android/filegroup.go
+++ b/android/filegroup.go
@@ -23,13 +23,18 @@ import (
)
func init() {
- RegisterModuleType("filegroup", FileGroupFactory)
+ RegisterFilegroupBuildComponents(InitRegistrationContext)
}
var PrepareForTestWithFilegroup = FixtureRegisterWithContext(func(ctx RegistrationContext) {
- ctx.RegisterModuleType("filegroup", FileGroupFactory)
+ RegisterFilegroupBuildComponents(ctx)
})
+func RegisterFilegroupBuildComponents(ctx RegistrationContext) {
+ ctx.RegisterModuleType("filegroup", FileGroupFactory)
+ ctx.RegisterModuleType("filegroup_defaults", FileGroupDefaultsFactory)
+}
+
// IsFilegroup checks that a module is a filegroup type
func IsFilegroup(ctx bazel.OtherModuleContext, m blueprint.Module) bool {
return ctx.OtherModuleType(m) == "filegroup"
@@ -97,6 +102,7 @@ type fileGroupProperties struct {
type fileGroup struct {
ModuleBase
BazelModuleBase
+ DefaultableModuleBase
properties fileGroupProperties
srcs Paths
}
@@ -111,6 +117,7 @@ func FileGroupFactory() Module {
module.AddProperties(&module.properties)
InitAndroidModule(module)
InitBazelModule(module)
+ InitDefaultableModule(module)
return module
}
@@ -161,3 +168,17 @@ func (fg *fileGroup) MakeVars(ctx MakeVarsModuleContext) {
ctx.StrictRaw(makeVar, strings.Join(fg.srcs.Strings(), " "))
}
}
+
+// Defaults
+type FileGroupDefaults struct {
+ ModuleBase
+ DefaultsModuleBase
+}
+
+func FileGroupDefaultsFactory() Module {
+ module := &FileGroupDefaults{}
+ module.AddProperties(&fileGroupProperties{})
+ InitDefaultsModule(module)
+
+ return module
+}
diff --git a/android/filegroup_test.go b/android/filegroup_test.go
new file mode 100644
index 000000000..670037d56
--- /dev/null
+++ b/android/filegroup_test.go
@@ -0,0 +1,26 @@
+package android
+
+import (
+ "testing"
+)
+
+func TestFilegroupDefaults(t *testing.T) {
+ bp := FixtureAddTextFile("p/Android.bp", `
+ filegroup_defaults {
+ name: "defaults",
+ visibility: ["//x"],
+ }
+ filegroup {
+ name: "foo",
+ defaults: ["defaults"],
+ visibility: ["//y"],
+ }
+ `)
+ result := GroupFixturePreparers(
+ PrepareForTestWithFilegroup,
+ PrepareForTestWithDefaults,
+ PrepareForTestWithVisibility,
+ bp).RunTest(t)
+ rules := effectiveVisibilityRules(result.Config, qualifiedModuleName{pkg: "p", name: "foo"})
+ AssertDeepEquals(t, "visibility", []string{"//x", "//y"}, rules.Strings())
+}
diff --git a/java/app.go b/java/app.go
index 4c7f0172e..c3a33ff8d 100755
--- a/java/app.go
+++ b/java/app.go
@@ -1086,7 +1086,7 @@ func AndroidTestFactory() android.Module {
module.appProperties.Use_embedded_native_libs = proptools.BoolPtr(true)
module.appProperties.AlwaysPackageNativeLibs = true
module.Module.dexpreopter.isTest = true
- module.Module.linter.test = true
+ module.Module.linter.properties.Lint.Test = proptools.BoolPtr(true)
module.addHostAndDeviceProperties()
module.AddProperties(
@@ -1138,7 +1138,7 @@ func AndroidTestHelperAppFactory() android.Module {
module.appProperties.Use_embedded_native_libs = proptools.BoolPtr(true)
module.appProperties.AlwaysPackageNativeLibs = true
module.Module.dexpreopter.isTest = true
- module.Module.linter.test = true
+ module.Module.linter.properties.Lint.Test = proptools.BoolPtr(true)
module.addHostAndDeviceProperties()
module.AddProperties(
diff --git a/java/java.go b/java/java.go
index 5a3a2e0a3..a07565ce5 100644
--- a/java/java.go
+++ b/java/java.go
@@ -1251,7 +1251,7 @@ func TestFactory() android.Module {
module.Module.properties.Installable = proptools.BoolPtr(true)
module.Module.dexpreopter.isTest = true
- module.Module.linter.test = true
+ module.Module.linter.properties.Lint.Test = proptools.BoolPtr(true)
android.InitSdkAwareModule(module)
InitJavaModule(module, android.HostAndDeviceSupported)
@@ -1267,7 +1267,7 @@ func TestHelperLibraryFactory() android.Module {
module.Module.properties.Installable = proptools.BoolPtr(true)
module.Module.dexpreopter.isTest = true
- module.Module.linter.test = true
+ module.Module.linter.properties.Lint.Test = proptools.BoolPtr(true)
InitJavaModule(module, android.HostAndDeviceSupported)
return module
diff --git a/java/lint.go b/java/lint.go
index 426a2af25..fdc9dbd99 100644
--- a/java/lint.go
+++ b/java/lint.go
@@ -60,6 +60,11 @@ type LintProperties struct {
// If true, baselining updatability lint checks (e.g. NewApi) is prohibited. Defaults to false.
Strict_updatability_linting *bool
+
+ // Treat the code in this module as test code for @VisibleForTesting enforcement.
+ // This will be true by default for test module types, false otherwise.
+ // If soong gets support for testonly, this flag should be replaced with that.
+ Test *bool
}
}
@@ -73,7 +78,6 @@ type linter struct {
classpath android.Paths
classes android.Path
extraLintCheckJars android.Paths
- test bool
library bool
minSdkVersion android.ApiLevel
targetSdkVersion android.ApiLevel
@@ -228,7 +232,7 @@ func (l *linter) writeLintProjectXML(ctx android.ModuleContext, rule *android.Ru
if l.library {
cmd.Flag("--library")
}
- if l.test {
+ if proptools.BoolDefault(l.properties.Lint.Test, false) {
cmd.Flag("--test")
}
if l.manifest != nil {
diff --git a/java/robolectric.go b/java/robolectric.go
index 80be04612..999da6fca 100644
--- a/java/robolectric.go
+++ b/java/robolectric.go
@@ -354,7 +354,7 @@ func RobolectricTestFactory() android.Module {
&module.testProperties)
module.Module.dexpreopter.isTest = true
- module.Module.linter.test = true
+ module.Module.linter.properties.Lint.Test = proptools.BoolPtr(true)
module.testProperties.Test_suites = []string{"robolectric-tests"}
diff --git a/scripts/Android.bp b/scripts/Android.bp
index a37d2597b..814bd5753 100644
--- a/scripts/Android.bp
+++ b/scripts/Android.bp
@@ -203,3 +203,9 @@ sh_binary_host {
name: "list_image",
src: "list_image.sh",
}
+
+filegroup {
+ name: "rustfmt.toml",
+ srcs: ["rustfmt.toml"],
+ visibility: ["//visibility:public"],
+}