diff options
Diffstat (limited to 'java/java_test.go')
-rw-r--r-- | java/java_test.go | 80 |
1 files changed, 77 insertions, 3 deletions
diff --git a/java/java_test.go b/java/java_test.go index 21993eccf..05cc23e29 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -2037,11 +2037,11 @@ func TestJavaApiLibraryJarGeneration(t *testing.T) { }{ { moduleName: "bar1", - outputJarName: "bar1/android.jar", + outputJarName: "bar1/bar1.jar", }, { moduleName: "bar2", - outputJarName: "bar2/android.jar", + outputJarName: "bar2/bar2.jar", }, } for _, c := range testcases { @@ -2113,7 +2113,7 @@ func TestJavaApiLibraryLibsLink(t *testing.T) { }, { moduleName: "bar2", - classPathJarNames: []string{"lib1.jar", "lib2.jar", "bar1/android.jar"}, + classPathJarNames: []string{"lib1.jar", "lib2.jar", "bar1/bar1.jar"}, }, } for _, c := range testcases { @@ -2128,6 +2128,80 @@ func TestJavaApiLibraryLibsLink(t *testing.T) { } } +func TestJavaApiLibraryStaticLibsLink(t *testing.T) { + provider_bp_a := ` + java_api_contribution { + name: "foo1", + api_file: "foo1.txt", + } + ` + provider_bp_b := ` + java_api_contribution { + name: "foo2", + api_file: "foo2.txt", + } + ` + lib_bp_a := ` + java_library { + name: "lib1", + srcs: ["Lib.java"], + } + ` + lib_bp_b := ` + java_library { + name: "lib2", + srcs: ["Lib.java"], + } + ` + + ctx, _ := testJavaWithFS(t, ` + java_api_library { + name: "bar1", + api_surface: "public", + api_contributions: ["foo1"], + static_libs: ["lib1"], + } + + java_api_library { + name: "bar2", + api_surface: "system", + api_contributions: ["foo1", "foo2"], + static_libs: ["lib1", "lib2", "bar1"], + } + `, + map[string][]byte{ + "a/Android.bp": []byte(provider_bp_a), + "b/Android.bp": []byte(provider_bp_b), + "c/Android.bp": []byte(lib_bp_a), + "c/Lib.java": {}, + "d/Android.bp": []byte(lib_bp_b), + "d/Lib.java": {}, + }) + + testcases := []struct { + moduleName string + staticLibJarNames []string + }{ + { + moduleName: "bar1", + staticLibJarNames: []string{"lib1.jar"}, + }, + { + moduleName: "bar2", + staticLibJarNames: []string{"lib1.jar", "lib2.jar", "bar1/bar1.jar"}, + }, + } + for _, c := range testcases { + m := ctx.ModuleForTests(c.moduleName, "android_common") + mergeZipsCommand := m.Rule("merge_zips").RuleParams.Command + for _, jarName := range c.staticLibJarNames { + if !strings.Contains(mergeZipsCommand, jarName) { + t.Errorf("merge_zips command does not contain expected jar %s", jarName) + } + } + } +} + func TestTradefedOptions(t *testing.T) { result := PrepareForTestWithJavaBuildComponents.RunTestWithBp(t, ` java_test_host { |