Add support for java_defaults modules
Test: java_test.go
Change-Id: I6dba1671c7eb019183af94bb7b10810296740101
diff --git a/java/java_test.go b/java/java_test.go
index bd6451c..6ebaa34 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -56,6 +56,8 @@
ctx.RegisterModuleType("android_app", android.ModuleFactoryAdaptor(AndroidAppFactory))
ctx.RegisterModuleType("java_library", android.ModuleFactoryAdaptor(JavaLibraryFactory))
ctx.RegisterModuleType("java_prebuilt_library", android.ModuleFactoryAdaptor(JavaPrebuiltFactory))
+ ctx.RegisterModuleType("java_defaults", android.ModuleFactoryAdaptor(defaultsFactory))
+ ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
ctx.Register()
extraModules := []string{"core-libart", "frameworks", "sdk_v14"}
@@ -230,6 +232,49 @@
}
}
+func TestDefaults(t *testing.T) {
+ ctx := testJava(t, `
+ java_defaults {
+ name: "defaults",
+ srcs: ["a.java"],
+ libs: ["bar"],
+ static_libs: ["baz"],
+ }
+
+ java_library {
+ name: "foo",
+ defaults: ["defaults"],
+ }
+
+ java_library {
+ name: "bar",
+ srcs: ["b.java"],
+ }
+
+ java_library {
+ name: "baz",
+ srcs: ["c.java"],
+ }
+ `)
+
+ javac := ctx.ModuleForTests("foo", "").Rule("javac")
+ jar := ctx.ModuleForTests("foo", "").Rule("jar")
+
+ if len(javac.Inputs) != 1 || javac.Inputs[0].String() != "a.java" {
+ t.Errorf(`foo inputs %v != ["a.java"]`, javac.Inputs)
+ }
+
+ bar := filepath.Join(buildDir, ".intermediates", "bar", "classes-full-debug.jar")
+ if !strings.Contains(javac.Args["classpath"], bar) {
+ t.Errorf("foo classpath %v does not contain %q", javac.Args["classpath"], bar)
+ }
+
+ baz := filepath.Join(buildDir, ".intermediates", "baz", "classes.list")
+ if !strings.Contains(jar.Args["jarArgs"], baz) {
+ t.Errorf("foo jarArgs %v does not contain %q", jar.Args["jarArgs"], baz)
+ }
+}
+
func fail(t *testing.T, errs []error) {
if len(errs) > 0 {
for _, err := range errs {