diff --git a/android/neverallow.go b/android/neverallow.go index 1cdccc317..cf149b29d 100644 --- a/android/neverallow.go +++ b/android/neverallow.go @@ -162,6 +162,7 @@ func createJavaDeviceForHostRules() []Rule { "development/build", "external/guava", "external/robolectric-shadows", + "external/robolectric", "frameworks/layoutlib", } diff --git a/java/robolectric.go b/java/robolectric.go index b6116ec9d..2cb07981e 100644 --- a/java/robolectric.go +++ b/java/robolectric.go @@ -65,6 +65,10 @@ type robolectricProperties struct { // The version number of a robolectric prebuilt to use from prebuilts/misc/common/robolectric // instead of the one built from source in external/robolectric-shadows. Robolectric_prebuilt_version *string + + // Use /external/robolectric rather than /external/robolectric-shadows as the version of robolectri + // to use. /external/robolectric closely tracks github's master, and will fully replace /external/robolectric-shadows + Upstream *bool } type robolectricTest struct { @@ -108,7 +112,11 @@ func (r *robolectricTest) DepsMutator(ctx android.BottomUpMutatorContext) { if v := String(r.robolectricProperties.Robolectric_prebuilt_version); v != "" { ctx.AddVariationDependencies(nil, libTag, fmt.Sprintf(robolectricPrebuiltLibPattern, v)) } else { - ctx.AddVariationDependencies(nil, libTag, robolectricCurrentLib) + if proptools.Bool(r.robolectricProperties.Upstream) { + ctx.AddVariationDependencies(nil, libTag, robolectricCurrentLib+"_upstream") + } else { + ctx.AddVariationDependencies(nil, libTag, robolectricCurrentLib) + } } ctx.AddVariationDependencies(nil, libTag, robolectricDefaultLibs...)