Loading java/java_test.go +52 −51 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ func defaultModuleToPath(name string) string { case strings.HasSuffix(name, ".jar"): return name default: return filepath.Join(buildDir, ".intermediates", defaultJavaDir, name, "android_common", "turbine-combined", name+".jar") return filepath.Join("out", "soong", ".intermediates", defaultJavaDir, name, "android_common", "turbine-combined", name+".jar") } } Loading Loading @@ -369,7 +369,7 @@ func TestSimple(t *testing.T) { } `) javac := ctx.ModuleForTests("foo", "android_common").Rule("javac") javac := ctx.ModuleForTests("foo", "android_common").Rule("javac").RelativeToTop() combineJar := ctx.ModuleForTests("foo", "android_common").Description("for javac") if len(javac.Inputs) != 1 || javac.Inputs[0].String() != "a.java" { Loading @@ -377,8 +377,8 @@ func TestSimple(t *testing.T) { } baz := ctx.ModuleForTests("baz", "android_common").Rule("javac").Output.String() barTurbine := filepath.Join(buildDir, ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") bazTurbine := filepath.Join(buildDir, ".intermediates", "baz", "android_common", "turbine-combined", "baz.jar") barTurbine := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") bazTurbine := filepath.Join("out", "soong", ".intermediates", "baz", "android_common", "turbine-combined", "baz.jar") android.AssertStringDoesContain(t, "foo classpath", javac.Args["classpath"], barTurbine) Loading Loading @@ -520,13 +520,19 @@ func TestSdkVersionByPartition(t *testing.T) { } ` config := testConfig(nil, bp, nil) config.TestProductVariables.EnforceProductPartitionInterface = proptools.BoolPtr(enforce) errorHandler := android.FixtureExpectsNoErrors if enforce { testJavaErrorWithConfig(t, "sdk_version must have a value when the module is located at vendor or product", config) } else { testJavaWithConfig(t, config) errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern("sdk_version must have a value when the module is located at vendor or product") } android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.EnforceProductPartitionInterface = proptools.BoolPtr(enforce) }), ). ExtendWithErrorHandler(errorHandler). RunTestWithBp(t, bp) } } Loading Loading @@ -604,13 +610,16 @@ func TestHostBinaryNoJavaDebugInfoOverride(t *testing.T) { srcs: ["b.java"], } ` config := testConfig(nil, bp, nil) config.TestProductVariables.MinimizeJavaDebugInfo = proptools.BoolPtr(true) ctx, _ := testJavaWithConfig(t, config) result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.MinimizeJavaDebugInfo = proptools.BoolPtr(true) }), ).RunTestWithBp(t, bp) // first, check that the -g flag is added to target modules targetLibrary := ctx.ModuleForTests("target_library", "android_common") targetLibrary := result.ModuleForTests("target_library", "android_common") targetJavaFlags := targetLibrary.Module().VariablesForTests()["javacFlags"] if !strings.Contains(targetJavaFlags, "-g:source,lines") { t.Errorf("target library javac flags %v should contain "+ Loading @@ -619,7 +628,7 @@ func TestHostBinaryNoJavaDebugInfoOverride(t *testing.T) { // check that -g is not overridden for host modules buildOS := android.BuildOs.String() hostBinary := ctx.ModuleForTests("host_binary", buildOS+"_common") hostBinary := result.ModuleForTests("host_binary", buildOS+"_common") hostJavaFlags := hostBinary.Module().VariablesForTests()["javacFlags"] if strings.Contains(hostJavaFlags, "-g:source,lines") { t.Errorf("java_binary_host javac flags %v should not have "+ Loading Loading @@ -707,11 +716,9 @@ func TestPrebuilts(t *testing.T) { t.Errorf("foo combineJar inputs %v does not contain %q", combineJar.Inputs, bazJar.String()) } bazDexJar := bazModule.Module().(*Import).DexJarBuildPath().String() expectedDexJar := buildDir + "/.intermediates/baz/android_common/dex/baz.jar" if bazDexJar != expectedDexJar { t.Errorf("baz dex jar build path expected %q, got %q", expectedDexJar, bazDexJar) } bazDexJar := bazModule.Module().(*Import).DexJarBuildPath() expectedDexJar := "out/soong/.intermediates/baz/android_common/dex/baz.jar" android.AssertPathRelativeToTopEquals(t, "baz dex jar build path", expectedDexJar, bazDexJar) ctx.ModuleForTests("qux", "android_common").Rule("Cp") } Loading Loading @@ -1086,14 +1093,14 @@ func TestDefaults(t *testing.T) { } `) javac := ctx.ModuleForTests("foo", "android_common").Rule("javac") javac := ctx.ModuleForTests("foo", "android_common").Rule("javac").RelativeToTop() combineJar := ctx.ModuleForTests("foo", "android_common").Description("for javac") if len(javac.Inputs) != 1 || javac.Inputs[0].String() != "a.java" { t.Errorf(`foo inputs %v != ["a.java"]`, javac.Inputs) } barTurbine := filepath.Join(buildDir, ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") barTurbine := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") if !strings.Contains(javac.Args["classpath"], barTurbine) { t.Errorf("foo classpath %v does not contain %q", javac.Args["classpath"], barTurbine) } Loading Loading @@ -1339,7 +1346,7 @@ func TestJavaLintWithoutBaseline(t *testing.T) { } func TestJavaLintRequiresCustomLintFileToExist(t *testing.T) { config := testConfig( config := TestConfig(t.TempDir(), nil, ` java_library { Loading Loading @@ -1457,19 +1464,19 @@ func TestTurbine(t *testing.T) { } `) fooTurbine := result.ModuleForTests("foo", "android_common").Rule("turbine") barTurbine := result.ModuleForTests("bar", "android_common").Rule("turbine") barJavac := result.ModuleForTests("bar", "android_common").Rule("javac") barTurbineCombined := result.ModuleForTests("bar", "android_common").Description("for turbine") bazJavac := result.ModuleForTests("baz", "android_common").Rule("javac") fooTurbine := result.ModuleForTests("foo", "android_common").Rule("turbine").RelativeToTop() barTurbine := result.ModuleForTests("bar", "android_common").Rule("turbine").RelativeToTop() barJavac := result.ModuleForTests("bar", "android_common").Rule("javac").RelativeToTop() barTurbineCombined := result.ModuleForTests("bar", "android_common").Description("for turbine").RelativeToTop() bazJavac := result.ModuleForTests("baz", "android_common").Rule("javac").RelativeToTop() android.AssertArrayString(t, "foo inputs", []string{"a.java"}, fooTurbine.Inputs.Strings()) android.AssertPathsRelativeToTopEquals(t, "foo inputs", []string{"a.java"}, fooTurbine.Inputs) fooHeaderJar := filepath.Join(buildDir, ".intermediates", "foo", "android_common", "turbine-combined", "foo.jar") barTurbineJar := filepath.Join(buildDir, ".intermediates", "bar", "android_common", "turbine", "bar.jar") fooHeaderJar := filepath.Join("out", "soong", ".intermediates", "foo", "android_common", "turbine-combined", "foo.jar") barTurbineJar := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine", "bar.jar") android.AssertStringDoesContain(t, "bar turbine classpath", barTurbine.Args["classpath"], fooHeaderJar) android.AssertStringDoesContain(t, "bar javac classpath", barJavac.Args["classpath"], fooHeaderJar) android.AssertArrayString(t, "bar turbine combineJar", []string{barTurbineJar, fooHeaderJar}, barTurbineCombined.Inputs.Strings()) android.AssertPathsRelativeToTopEquals(t, "bar turbine combineJar", []string{barTurbineJar, fooHeaderJar}, barTurbineCombined.Inputs) android.AssertStringDoesContain(t, "baz javac classpath", bazJavac.Args["classpath"], "prebuilts/sdk/14/public/android.jar") } Loading @@ -1482,9 +1489,9 @@ func TestSharding(t *testing.T) { } `) barHeaderJar := filepath.Join(buildDir, ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") barHeaderJar := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") for i := 0; i < 3; i++ { barJavac := ctx.ModuleForTests("bar", "android_common").Description("javac" + strconv.Itoa(i)) barJavac := ctx.ModuleForTests("bar", "android_common").Description("javac" + strconv.Itoa(i)).RelativeToTop() if !strings.Contains(barJavac.Args["classpath"], barHeaderJar) { t.Errorf("bar javac classpath %v does not contain %q", barJavac.Args["classpath"], barHeaderJar) } Loading Loading @@ -1549,12 +1556,12 @@ func TestDroiddoc(t *testing.T) { barStubsOutput := barStubsOutputs[0] barDoc := ctx.ModuleForTests("bar-doc", "android_common") javaDoc := barDoc.Rule("javadoc") javaDoc := barDoc.Rule("javadoc").RelativeToTop() if g, w := javaDoc.Implicits.Strings(), barStubsOutput.String(); !inList(w, g) { t.Errorf("implicits of bar-doc must contain %q, but was %q.", w, g) } expected := "-sourcepath " + buildDir + "/.intermediates/bar-doc/android_common/srcjars " expected := "-sourcepath out/soong/.intermediates/bar-doc/android_common/srcjars " if !strings.Contains(javaDoc.RuleParams.Command, expected) { t.Errorf("bar-doc command does not contain flag %q, but should\n%q", expected, javaDoc.RuleParams.Command) } Loading Loading @@ -1812,7 +1819,7 @@ func TestExcludeFileGroupInSrcs(t *testing.T) { } func TestJavaLibrary(t *testing.T) { config := testConfig(nil, "", map[string][]byte{ testJavaWithFS(t, "", map[string][]byte{ "libcore/Android.bp": []byte(` java_library { name: "core", Loading @@ -1826,12 +1833,10 @@ func TestJavaLibrary(t *testing.T) { } `), }) ctx := testContext(config) run(t, ctx, config) } func TestJavaImport(t *testing.T) { config := testConfig(nil, "", map[string][]byte{ testJavaWithFS(t, "", map[string][]byte{ "libcore/Android.bp": []byte(` java_import { name: "core", Loading @@ -1844,8 +1849,6 @@ func TestJavaImport(t *testing.T) { } `), }) ctx := testContext(config) run(t, ctx, config) } func TestJavaSdkLibrary(t *testing.T) { Loading Loading @@ -2396,7 +2399,7 @@ func TestCompilerFlags(t *testing.T) { // TODO(jungjw): Consider making this more robust by ignoring path order. func checkPatchModuleFlag(t *testing.T, ctx *android.TestContext, moduleName string, expected string) { variables := ctx.ModuleForTests(moduleName, "android_common").Module().VariablesForTests() variables := ctx.ModuleForTests(moduleName, "android_common").VariablesForTestsRelativeToTop() flags := strings.Split(variables["javacFlags"], " ") got := "" for _, flag := range flags { Loading @@ -2406,7 +2409,7 @@ func checkPatchModuleFlag(t *testing.T, ctx *android.TestContext, moduleName str break } } if expected != got { if expected != android.StringPathRelativeToTop(ctx.Config().BuildDir(), got) { t.Errorf("Unexpected patch-module flag for module %q - expected %q, but got %q", moduleName, expected, got) } } Loading Loading @@ -2476,10 +2479,10 @@ func TestPatchModule(t *testing.T) { ctx, _ := testJava(t, bp) checkPatchModuleFlag(t, ctx, "foo", "") expected := "java.base=.:" + buildDir expected := "java.base=.:out/soong" checkPatchModuleFlag(t, ctx, "bar", expected) expected = "java.base=" + strings.Join([]string{ ".", buildDir, "dir", "dir2", "nested", defaultModuleToPath("ext"), defaultModuleToPath("framework")}, ":") ".", "out/soong", "dir", "dir2", "nested", defaultModuleToPath("ext"), defaultModuleToPath("framework")}, ":") checkPatchModuleFlag(t, ctx, "baz", expected) }) } Loading Loading @@ -2598,11 +2601,9 @@ func TestDataNativeBinaries(t *testing.T) { test := ctx.ModuleForTests("foo", buildOS+"_common").Module().(*TestHost) entries := android.AndroidMkEntriesForTest(t, ctx, test)[0] expected := []string{buildDir + "/.intermediates/bin/" + buildOS + "_x86_64_PY3/bin:bin"} expected := []string{"out/soong/.intermediates/bin/" + buildOS + "_x86_64_PY3/bin:bin"} actual := entries.EntryMap["LOCAL_COMPATIBILITY_SUPPORT_FILES"] if !reflect.DeepEqual(expected, actual) { t.Errorf("Unexpected test data - expected: %q, actual: %q", expected, actual) } android.AssertStringPathsRelativeToTopEquals(t, "LOCAL_COMPATIBILITY_SUPPORT_FILES", ctx.Config(), expected, actual) } func TestDefaultInstallable(t *testing.T) { Loading java/sdk_test.go +15 −18 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package java import ( "path/filepath" "reflect" "strings" "testing" Loading Loading @@ -98,7 +97,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_stubs_current"}, aidl: "-p" + buildDir + "/framework.aidl", aidl: "-pout/soong/framework.aidl", }, { Loading @@ -107,7 +106,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_system_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_system_stubs_current"}, aidl: "-p" + buildDir + "/framework.aidl", aidl: "-pout/soong/framework.aidl", }, { Loading Loading @@ -135,7 +134,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_test_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_test_stubs_current"}, aidl: "-p" + buildDir + "/framework.aidl", aidl: "-pout/soong/framework.aidl", }, { Loading Loading @@ -222,7 +221,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_module_lib_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_module_lib_stubs_current"}, aidl: "-p" + buildDir + "/framework_non_updatable.aidl", aidl: "-pout/soong/framework_non_updatable.aidl", }, { name: "system_server_current", Loading @@ -230,7 +229,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_system_server_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_system_server_stubs_current"}, aidl: "-p" + buildDir + "/framework.aidl", aidl: "-pout/soong/framework.aidl", }, } Loading Loading @@ -303,23 +302,23 @@ func TestClasspath(t *testing.T) { } else { dir = defaultJavaDir } system = "--system=" + filepath.Join(buildDir, ".intermediates", dir, testcase.system, "android_common", "system") system = "--system=" + filepath.Join("out", "soong", ".intermediates", dir, testcase.system, "android_common", "system") // The module-relative parts of these paths are hardcoded in system_modules.go: systemDeps = []string{ filepath.Join(buildDir, ".intermediates", dir, testcase.system, "android_common", "system", "lib", "modules"), filepath.Join(buildDir, ".intermediates", dir, testcase.system, "android_common", "system", "lib", "jrt-fs.jar"), filepath.Join(buildDir, ".intermediates", dir, testcase.system, "android_common", "system", "release"), filepath.Join("out", "soong", ".intermediates", dir, testcase.system, "android_common", "system", "lib", "modules"), filepath.Join("out", "soong", ".intermediates", dir, testcase.system, "android_common", "system", "lib", "jrt-fs.jar"), filepath.Join("out", "soong", ".intermediates", dir, testcase.system, "android_common", "system", "release"), } } checkClasspath := func(t *testing.T, result *android.TestResult, isJava8 bool) { foo := result.ModuleForTests("foo", variant) javac := foo.Rule("javac") javac := foo.Rule("javac").RelativeToTop() var deps []string aidl := foo.MaybeRule("aidl") aidl := foo.MaybeRule("aidl").RelativeToTop() if aidl.Rule != nil { deps = append(deps, aidl.Output.String()) deps = append(deps, android.PathRelativeToTop(aidl.Output)) } got := javac.Args["bootClasspath"] Loading Loading @@ -347,9 +346,7 @@ func TestClasspath(t *testing.T) { t.Errorf("classpath expected %q != got %q", expected, got) } if !reflect.DeepEqual(javac.Implicits.Strings(), deps) { t.Errorf("implicits expected %q != got %q", deps, javac.Implicits.Strings()) } android.AssertPathsRelativeToTopEquals(t, "implicits", deps, javac.Implicits) } fixtureFactory := javaFixtureFactory.Extend( Loading Loading @@ -378,7 +375,7 @@ func TestClasspath(t *testing.T) { checkClasspath(t, result, true /* isJava8 */) if testcase.host != android.Host { aidl := result.ModuleForTests("foo", variant).Rule("aidl") aidl := result.ModuleForTests("foo", variant).Rule("aidl").RelativeToTop() android.AssertStringDoesContain(t, "aidl command", aidl.RuleParams.Command, testcase.aidl+" -I.") } Loading @@ -391,7 +388,7 @@ func TestClasspath(t *testing.T) { checkClasspath(t, result, false /* isJava8 */) if testcase.host != android.Host { aidl := result.ModuleForTests("foo", variant).Rule("aidl") aidl := result.ModuleForTests("foo", variant).Rule("aidl").RelativeToTop() android.AssertStringDoesContain(t, "aidl command", aidl.RuleParams.Command, testcase.aidl+" -I.") } Loading Loading
java/java_test.go +52 −51 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ func defaultModuleToPath(name string) string { case strings.HasSuffix(name, ".jar"): return name default: return filepath.Join(buildDir, ".intermediates", defaultJavaDir, name, "android_common", "turbine-combined", name+".jar") return filepath.Join("out", "soong", ".intermediates", defaultJavaDir, name, "android_common", "turbine-combined", name+".jar") } } Loading Loading @@ -369,7 +369,7 @@ func TestSimple(t *testing.T) { } `) javac := ctx.ModuleForTests("foo", "android_common").Rule("javac") javac := ctx.ModuleForTests("foo", "android_common").Rule("javac").RelativeToTop() combineJar := ctx.ModuleForTests("foo", "android_common").Description("for javac") if len(javac.Inputs) != 1 || javac.Inputs[0].String() != "a.java" { Loading @@ -377,8 +377,8 @@ func TestSimple(t *testing.T) { } baz := ctx.ModuleForTests("baz", "android_common").Rule("javac").Output.String() barTurbine := filepath.Join(buildDir, ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") bazTurbine := filepath.Join(buildDir, ".intermediates", "baz", "android_common", "turbine-combined", "baz.jar") barTurbine := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") bazTurbine := filepath.Join("out", "soong", ".intermediates", "baz", "android_common", "turbine-combined", "baz.jar") android.AssertStringDoesContain(t, "foo classpath", javac.Args["classpath"], barTurbine) Loading Loading @@ -520,13 +520,19 @@ func TestSdkVersionByPartition(t *testing.T) { } ` config := testConfig(nil, bp, nil) config.TestProductVariables.EnforceProductPartitionInterface = proptools.BoolPtr(enforce) errorHandler := android.FixtureExpectsNoErrors if enforce { testJavaErrorWithConfig(t, "sdk_version must have a value when the module is located at vendor or product", config) } else { testJavaWithConfig(t, config) errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern("sdk_version must have a value when the module is located at vendor or product") } android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.EnforceProductPartitionInterface = proptools.BoolPtr(enforce) }), ). ExtendWithErrorHandler(errorHandler). RunTestWithBp(t, bp) } } Loading Loading @@ -604,13 +610,16 @@ func TestHostBinaryNoJavaDebugInfoOverride(t *testing.T) { srcs: ["b.java"], } ` config := testConfig(nil, bp, nil) config.TestProductVariables.MinimizeJavaDebugInfo = proptools.BoolPtr(true) ctx, _ := testJavaWithConfig(t, config) result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.MinimizeJavaDebugInfo = proptools.BoolPtr(true) }), ).RunTestWithBp(t, bp) // first, check that the -g flag is added to target modules targetLibrary := ctx.ModuleForTests("target_library", "android_common") targetLibrary := result.ModuleForTests("target_library", "android_common") targetJavaFlags := targetLibrary.Module().VariablesForTests()["javacFlags"] if !strings.Contains(targetJavaFlags, "-g:source,lines") { t.Errorf("target library javac flags %v should contain "+ Loading @@ -619,7 +628,7 @@ func TestHostBinaryNoJavaDebugInfoOverride(t *testing.T) { // check that -g is not overridden for host modules buildOS := android.BuildOs.String() hostBinary := ctx.ModuleForTests("host_binary", buildOS+"_common") hostBinary := result.ModuleForTests("host_binary", buildOS+"_common") hostJavaFlags := hostBinary.Module().VariablesForTests()["javacFlags"] if strings.Contains(hostJavaFlags, "-g:source,lines") { t.Errorf("java_binary_host javac flags %v should not have "+ Loading Loading @@ -707,11 +716,9 @@ func TestPrebuilts(t *testing.T) { t.Errorf("foo combineJar inputs %v does not contain %q", combineJar.Inputs, bazJar.String()) } bazDexJar := bazModule.Module().(*Import).DexJarBuildPath().String() expectedDexJar := buildDir + "/.intermediates/baz/android_common/dex/baz.jar" if bazDexJar != expectedDexJar { t.Errorf("baz dex jar build path expected %q, got %q", expectedDexJar, bazDexJar) } bazDexJar := bazModule.Module().(*Import).DexJarBuildPath() expectedDexJar := "out/soong/.intermediates/baz/android_common/dex/baz.jar" android.AssertPathRelativeToTopEquals(t, "baz dex jar build path", expectedDexJar, bazDexJar) ctx.ModuleForTests("qux", "android_common").Rule("Cp") } Loading Loading @@ -1086,14 +1093,14 @@ func TestDefaults(t *testing.T) { } `) javac := ctx.ModuleForTests("foo", "android_common").Rule("javac") javac := ctx.ModuleForTests("foo", "android_common").Rule("javac").RelativeToTop() combineJar := ctx.ModuleForTests("foo", "android_common").Description("for javac") if len(javac.Inputs) != 1 || javac.Inputs[0].String() != "a.java" { t.Errorf(`foo inputs %v != ["a.java"]`, javac.Inputs) } barTurbine := filepath.Join(buildDir, ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") barTurbine := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") if !strings.Contains(javac.Args["classpath"], barTurbine) { t.Errorf("foo classpath %v does not contain %q", javac.Args["classpath"], barTurbine) } Loading Loading @@ -1339,7 +1346,7 @@ func TestJavaLintWithoutBaseline(t *testing.T) { } func TestJavaLintRequiresCustomLintFileToExist(t *testing.T) { config := testConfig( config := TestConfig(t.TempDir(), nil, ` java_library { Loading Loading @@ -1457,19 +1464,19 @@ func TestTurbine(t *testing.T) { } `) fooTurbine := result.ModuleForTests("foo", "android_common").Rule("turbine") barTurbine := result.ModuleForTests("bar", "android_common").Rule("turbine") barJavac := result.ModuleForTests("bar", "android_common").Rule("javac") barTurbineCombined := result.ModuleForTests("bar", "android_common").Description("for turbine") bazJavac := result.ModuleForTests("baz", "android_common").Rule("javac") fooTurbine := result.ModuleForTests("foo", "android_common").Rule("turbine").RelativeToTop() barTurbine := result.ModuleForTests("bar", "android_common").Rule("turbine").RelativeToTop() barJavac := result.ModuleForTests("bar", "android_common").Rule("javac").RelativeToTop() barTurbineCombined := result.ModuleForTests("bar", "android_common").Description("for turbine").RelativeToTop() bazJavac := result.ModuleForTests("baz", "android_common").Rule("javac").RelativeToTop() android.AssertArrayString(t, "foo inputs", []string{"a.java"}, fooTurbine.Inputs.Strings()) android.AssertPathsRelativeToTopEquals(t, "foo inputs", []string{"a.java"}, fooTurbine.Inputs) fooHeaderJar := filepath.Join(buildDir, ".intermediates", "foo", "android_common", "turbine-combined", "foo.jar") barTurbineJar := filepath.Join(buildDir, ".intermediates", "bar", "android_common", "turbine", "bar.jar") fooHeaderJar := filepath.Join("out", "soong", ".intermediates", "foo", "android_common", "turbine-combined", "foo.jar") barTurbineJar := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine", "bar.jar") android.AssertStringDoesContain(t, "bar turbine classpath", barTurbine.Args["classpath"], fooHeaderJar) android.AssertStringDoesContain(t, "bar javac classpath", barJavac.Args["classpath"], fooHeaderJar) android.AssertArrayString(t, "bar turbine combineJar", []string{barTurbineJar, fooHeaderJar}, barTurbineCombined.Inputs.Strings()) android.AssertPathsRelativeToTopEquals(t, "bar turbine combineJar", []string{barTurbineJar, fooHeaderJar}, barTurbineCombined.Inputs) android.AssertStringDoesContain(t, "baz javac classpath", bazJavac.Args["classpath"], "prebuilts/sdk/14/public/android.jar") } Loading @@ -1482,9 +1489,9 @@ func TestSharding(t *testing.T) { } `) barHeaderJar := filepath.Join(buildDir, ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") barHeaderJar := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") for i := 0; i < 3; i++ { barJavac := ctx.ModuleForTests("bar", "android_common").Description("javac" + strconv.Itoa(i)) barJavac := ctx.ModuleForTests("bar", "android_common").Description("javac" + strconv.Itoa(i)).RelativeToTop() if !strings.Contains(barJavac.Args["classpath"], barHeaderJar) { t.Errorf("bar javac classpath %v does not contain %q", barJavac.Args["classpath"], barHeaderJar) } Loading Loading @@ -1549,12 +1556,12 @@ func TestDroiddoc(t *testing.T) { barStubsOutput := barStubsOutputs[0] barDoc := ctx.ModuleForTests("bar-doc", "android_common") javaDoc := barDoc.Rule("javadoc") javaDoc := barDoc.Rule("javadoc").RelativeToTop() if g, w := javaDoc.Implicits.Strings(), barStubsOutput.String(); !inList(w, g) { t.Errorf("implicits of bar-doc must contain %q, but was %q.", w, g) } expected := "-sourcepath " + buildDir + "/.intermediates/bar-doc/android_common/srcjars " expected := "-sourcepath out/soong/.intermediates/bar-doc/android_common/srcjars " if !strings.Contains(javaDoc.RuleParams.Command, expected) { t.Errorf("bar-doc command does not contain flag %q, but should\n%q", expected, javaDoc.RuleParams.Command) } Loading Loading @@ -1812,7 +1819,7 @@ func TestExcludeFileGroupInSrcs(t *testing.T) { } func TestJavaLibrary(t *testing.T) { config := testConfig(nil, "", map[string][]byte{ testJavaWithFS(t, "", map[string][]byte{ "libcore/Android.bp": []byte(` java_library { name: "core", Loading @@ -1826,12 +1833,10 @@ func TestJavaLibrary(t *testing.T) { } `), }) ctx := testContext(config) run(t, ctx, config) } func TestJavaImport(t *testing.T) { config := testConfig(nil, "", map[string][]byte{ testJavaWithFS(t, "", map[string][]byte{ "libcore/Android.bp": []byte(` java_import { name: "core", Loading @@ -1844,8 +1849,6 @@ func TestJavaImport(t *testing.T) { } `), }) ctx := testContext(config) run(t, ctx, config) } func TestJavaSdkLibrary(t *testing.T) { Loading Loading @@ -2396,7 +2399,7 @@ func TestCompilerFlags(t *testing.T) { // TODO(jungjw): Consider making this more robust by ignoring path order. func checkPatchModuleFlag(t *testing.T, ctx *android.TestContext, moduleName string, expected string) { variables := ctx.ModuleForTests(moduleName, "android_common").Module().VariablesForTests() variables := ctx.ModuleForTests(moduleName, "android_common").VariablesForTestsRelativeToTop() flags := strings.Split(variables["javacFlags"], " ") got := "" for _, flag := range flags { Loading @@ -2406,7 +2409,7 @@ func checkPatchModuleFlag(t *testing.T, ctx *android.TestContext, moduleName str break } } if expected != got { if expected != android.StringPathRelativeToTop(ctx.Config().BuildDir(), got) { t.Errorf("Unexpected patch-module flag for module %q - expected %q, but got %q", moduleName, expected, got) } } Loading Loading @@ -2476,10 +2479,10 @@ func TestPatchModule(t *testing.T) { ctx, _ := testJava(t, bp) checkPatchModuleFlag(t, ctx, "foo", "") expected := "java.base=.:" + buildDir expected := "java.base=.:out/soong" checkPatchModuleFlag(t, ctx, "bar", expected) expected = "java.base=" + strings.Join([]string{ ".", buildDir, "dir", "dir2", "nested", defaultModuleToPath("ext"), defaultModuleToPath("framework")}, ":") ".", "out/soong", "dir", "dir2", "nested", defaultModuleToPath("ext"), defaultModuleToPath("framework")}, ":") checkPatchModuleFlag(t, ctx, "baz", expected) }) } Loading Loading @@ -2598,11 +2601,9 @@ func TestDataNativeBinaries(t *testing.T) { test := ctx.ModuleForTests("foo", buildOS+"_common").Module().(*TestHost) entries := android.AndroidMkEntriesForTest(t, ctx, test)[0] expected := []string{buildDir + "/.intermediates/bin/" + buildOS + "_x86_64_PY3/bin:bin"} expected := []string{"out/soong/.intermediates/bin/" + buildOS + "_x86_64_PY3/bin:bin"} actual := entries.EntryMap["LOCAL_COMPATIBILITY_SUPPORT_FILES"] if !reflect.DeepEqual(expected, actual) { t.Errorf("Unexpected test data - expected: %q, actual: %q", expected, actual) } android.AssertStringPathsRelativeToTopEquals(t, "LOCAL_COMPATIBILITY_SUPPORT_FILES", ctx.Config(), expected, actual) } func TestDefaultInstallable(t *testing.T) { Loading
java/sdk_test.go +15 −18 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package java import ( "path/filepath" "reflect" "strings" "testing" Loading Loading @@ -98,7 +97,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_stubs_current"}, aidl: "-p" + buildDir + "/framework.aidl", aidl: "-pout/soong/framework.aidl", }, { Loading @@ -107,7 +106,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_system_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_system_stubs_current"}, aidl: "-p" + buildDir + "/framework.aidl", aidl: "-pout/soong/framework.aidl", }, { Loading Loading @@ -135,7 +134,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_test_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_test_stubs_current"}, aidl: "-p" + buildDir + "/framework.aidl", aidl: "-pout/soong/framework.aidl", }, { Loading Loading @@ -222,7 +221,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_module_lib_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_module_lib_stubs_current"}, aidl: "-p" + buildDir + "/framework_non_updatable.aidl", aidl: "-pout/soong/framework_non_updatable.aidl", }, { name: "system_server_current", Loading @@ -230,7 +229,7 @@ func TestClasspath(t *testing.T) { bootclasspath: []string{"android_system_server_stubs_current", "core-lambda-stubs"}, system: "core-current-stubs-system-modules", java9classpath: []string{"android_system_server_stubs_current"}, aidl: "-p" + buildDir + "/framework.aidl", aidl: "-pout/soong/framework.aidl", }, } Loading Loading @@ -303,23 +302,23 @@ func TestClasspath(t *testing.T) { } else { dir = defaultJavaDir } system = "--system=" + filepath.Join(buildDir, ".intermediates", dir, testcase.system, "android_common", "system") system = "--system=" + filepath.Join("out", "soong", ".intermediates", dir, testcase.system, "android_common", "system") // The module-relative parts of these paths are hardcoded in system_modules.go: systemDeps = []string{ filepath.Join(buildDir, ".intermediates", dir, testcase.system, "android_common", "system", "lib", "modules"), filepath.Join(buildDir, ".intermediates", dir, testcase.system, "android_common", "system", "lib", "jrt-fs.jar"), filepath.Join(buildDir, ".intermediates", dir, testcase.system, "android_common", "system", "release"), filepath.Join("out", "soong", ".intermediates", dir, testcase.system, "android_common", "system", "lib", "modules"), filepath.Join("out", "soong", ".intermediates", dir, testcase.system, "android_common", "system", "lib", "jrt-fs.jar"), filepath.Join("out", "soong", ".intermediates", dir, testcase.system, "android_common", "system", "release"), } } checkClasspath := func(t *testing.T, result *android.TestResult, isJava8 bool) { foo := result.ModuleForTests("foo", variant) javac := foo.Rule("javac") javac := foo.Rule("javac").RelativeToTop() var deps []string aidl := foo.MaybeRule("aidl") aidl := foo.MaybeRule("aidl").RelativeToTop() if aidl.Rule != nil { deps = append(deps, aidl.Output.String()) deps = append(deps, android.PathRelativeToTop(aidl.Output)) } got := javac.Args["bootClasspath"] Loading Loading @@ -347,9 +346,7 @@ func TestClasspath(t *testing.T) { t.Errorf("classpath expected %q != got %q", expected, got) } if !reflect.DeepEqual(javac.Implicits.Strings(), deps) { t.Errorf("implicits expected %q != got %q", deps, javac.Implicits.Strings()) } android.AssertPathsRelativeToTopEquals(t, "implicits", deps, javac.Implicits) } fixtureFactory := javaFixtureFactory.Extend( Loading Loading @@ -378,7 +375,7 @@ func TestClasspath(t *testing.T) { checkClasspath(t, result, true /* isJava8 */) if testcase.host != android.Host { aidl := result.ModuleForTests("foo", variant).Rule("aidl") aidl := result.ModuleForTests("foo", variant).Rule("aidl").RelativeToTop() android.AssertStringDoesContain(t, "aidl command", aidl.RuleParams.Command, testcase.aidl+" -I.") } Loading @@ -391,7 +388,7 @@ func TestClasspath(t *testing.T) { checkClasspath(t, result, false /* isJava8 */) if testcase.host != android.Host { aidl := result.ModuleForTests("foo", variant).Rule("aidl") aidl := result.ModuleForTests("foo", variant).Rule("aidl").RelativeToTop() android.AssertStringDoesContain(t, "aidl command", aidl.RuleParams.Command, testcase.aidl+" -I.") } Loading