aboutsummaryrefslogtreecommitdiff
path: root/java/java_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'java/java_test.go')
-rw-r--r--java/java_test.go80
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 {