diff --git a/Android.bp b/Android.bp index 2efc3954d..658eaf66b 100644 --- a/Android.bp +++ b/Android.bp @@ -267,6 +267,7 @@ bootstrap_go_package { "java/sdk_library.go", "java/support_libraries.go", "java/system_modules.go", + "java/testing.go", ], testSrcs: [ "java/app_test.go", diff --git a/java/java_test.go b/java/java_test.go index ded1f00e6..9202cdcb8 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -15,7 +15,6 @@ package java import ( - "fmt" "io/ioutil" "os" "path/filepath" @@ -54,16 +53,7 @@ func TestMain(m *testing.M) { } func testConfig(env map[string]string) android.Config { - if env == nil { - env = make(map[string]string) - } - if env["ANDROID_JAVA8_HOME"] == "" { - env["ANDROID_JAVA8_HOME"] = "jdk8" - } - config := android.TestArchConfig(buildDir, env) - config.TestProductVariables.DeviceSystemSdkVersions = []string{"14", "15"} - return config - + return TestConfig(buildDir, env) } func testContext(config android.Config, bp string, @@ -113,54 +103,7 @@ func testContext(config android.Config, bp string, ctx.Register() - extraModules := []string{ - "core-lambda-stubs", - "framework", - "ext", - "updatable_media_stubs", - "android_stubs_current", - "android_system_stubs_current", - "android_test_stubs_current", - "core.current.stubs", - "core.platform.api.stubs", - "kotlin-stdlib", - "kotlin-annotations", - } - - for _, extra := range extraModules { - bp += fmt.Sprintf(` - java_library { - name: "%s", - srcs: ["a.java"], - no_standard_libs: true, - sdk_version: "core_current", - system_modules: "core-platform-api-stubs-system-modules", - } - `, extra) - } - - bp += ` - android_app { - name: "framework-res", - no_framework_libs: true, - } - ` - - systemModules := []string{ - "core-system-modules", - "core-platform-api-stubs-system-modules", - "android_stubs_current_system_modules", - "android_system_stubs_current_system_modules", - "android_test_stubs_current_system_modules", - } - - for _, extra := range systemModules { - bp += fmt.Sprintf(` - java_system_modules { - name: "%s", - } - `, extra) - } + bp += GatherRequiredDepsForTest() mockFS := map[string][]byte{ "Android.bp": []byte(bp), diff --git a/java/testing.go b/java/testing.go new file mode 100644 index 000000000..713eca1a3 --- /dev/null +++ b/java/testing.go @@ -0,0 +1,89 @@ +// Copyright 2019 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package java + +import ( + "fmt" + + "android/soong/android" +) + +func TestConfig(buildDir string, env map[string]string) android.Config { + if env == nil { + env = make(map[string]string) + } + if env["ANDROID_JAVA8_HOME"] == "" { + env["ANDROID_JAVA8_HOME"] = "jdk8" + } + config := android.TestArchConfig(buildDir, env) + config.TestProductVariables.DeviceSystemSdkVersions = []string{"14", "15"} + + return config +} + +func GatherRequiredDepsForTest() string { + var bp string + + extraModules := []string{ + "core-lambda-stubs", + "framework", + "ext", + "updatable_media_stubs", + "android_stubs_current", + "android_system_stubs_current", + "android_test_stubs_current", + "core.current.stubs", + "core.platform.api.stubs", + "kotlin-stdlib", + "kotlin-annotations", + } + + for _, extra := range extraModules { + bp += fmt.Sprintf(` + java_library { + name: "%s", + srcs: ["a.java"], + no_standard_libs: true, + sdk_version: "core_current", + system_modules: "core-platform-api-stubs-system-modules", + } + `, extra) + } + + bp += ` + android_app { + name: "framework-res", + no_framework_libs: true, + } + ` + + systemModules := []string{ + "core-system-modules", + "core-platform-api-stubs-system-modules", + "android_stubs_current_system_modules", + "android_system_stubs_current_system_modules", + "android_test_stubs_current_system_modules", + } + + for _, extra := range systemModules { + bp += fmt.Sprintf(` + java_system_modules { + name: "%s", + } + `, extra) + } + + return bp +} diff --git a/sysprop/sysprop_test.go b/sysprop/sysprop_test.go index 92e0af4b6..745e42412 100644 --- a/sysprop/sysprop_test.go +++ b/sysprop/sysprop_test.go @@ -19,7 +19,6 @@ import ( "android/soong/cc" "android/soong/java" - "fmt" "io/ioutil" "os" "strings" @@ -90,54 +89,7 @@ func testContext(config android.Config, bp string, ctx.Register() - extraModules := []string{ - "core-lambda-stubs", - "framework", - "ext", - "updatable_media_stubs", - - "android_stubs_current", - "android_system_stubs_current", - "android_test_stubs_current", - "core.current.stubs", - "core.platform.api.stubs", - } - - for _, extra := range extraModules { - bp += fmt.Sprintf(` - java_library { - name: "%s", - srcs: ["a.java"], - no_standard_libs: true, - sdk_version: "core_current", - system_modules: "core-platform-api-stubs-system-modules", - } - `, extra) - } - - bp += ` - android_app { - name: "framework-res", - no_framework_libs: true, - } - ` - - systemModules := []string{ - "core-system-modules", - "core-platform-api-stubs-system-modules", - "android_stubs_current_system_modules", - "android_system_stubs_current_system_modules", - "android_test_stubs_current_system_modules", - } - - for _, extra := range systemModules { - bp += fmt.Sprintf(` - java_system_modules { - name: "%s", - } - `, extra) - } - + bp += java.GatherRequiredDepsForTest() bp += cc.GatherRequiredDepsForTest(android.Android) mockFS := map[string][]byte{ @@ -224,16 +176,12 @@ func run(t *testing.T, ctx *android.TestContext, config android.Config) { } func testConfig(env map[string]string) android.Config { - if env == nil { - env = make(map[string]string) - } - if env["ANDROID_JAVA8_HOME"] == "" { - env["ANDROID_JAVA8_HOME"] = "jdk8" - } - config := android.TestArchConfig(buildDir, env) + config := java.TestConfig(buildDir, env) + config.TestProductVariables.DeviceSystemSdkVersions = []string{"28"} config.TestProductVariables.DeviceVndkVersion = proptools.StringPtr("current") config.TestProductVariables.Platform_vndk_version = proptools.StringPtr("VER") + return config }