diff options
Diffstat (limited to 'java/java_test.go')
| -rw-r--r-- | java/java_test.go | 89 |
1 files changed, 64 insertions, 25 deletions
diff --git a/java/java_test.go b/java/java_test.go index 50c40c38c..9e6357792 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -20,7 +20,6 @@ import ( "path/filepath" "reflect" "regexp" - "sort" "strconv" "strings" "testing" @@ -526,6 +525,8 @@ func TestPrebuilts(t *testing.T) { java_import { name: "baz", jars: ["b.jar"], + sdk_version: "current", + compile_dex: true, } dex_import { @@ -556,8 +557,10 @@ func TestPrebuilts(t *testing.T) { fooModule := ctx.ModuleForTests("foo", "android_common") javac := fooModule.Rule("javac") combineJar := ctx.ModuleForTests("foo", "android_common").Description("for javac") - barJar := ctx.ModuleForTests("bar", "android_common").Rule("combineJar").Output - bazJar := ctx.ModuleForTests("baz", "android_common").Rule("combineJar").Output + barModule := ctx.ModuleForTests("bar", "android_common") + barJar := barModule.Rule("combineJar").Output + bazModule := ctx.ModuleForTests("baz", "android_common") + bazJar := bazModule.Rule("combineJar").Output sdklibStubsJar := ctx.ModuleForTests("sdklib.stubs", "android_common").Rule("combineJar").Output fooLibrary := fooModule.Module().(*Library) @@ -572,6 +575,11 @@ func TestPrebuilts(t *testing.T) { t.Errorf("foo classpath %v does not contain %q", javac.Args["classpath"], barJar.String()) } + barDexJar := barModule.Module().(*Import).DexJarBuildPath() + if barDexJar != nil { + t.Errorf("bar dex jar build path expected to be nil, got %q", barDexJar) + } + if !strings.Contains(javac.Args["classpath"], sdklibStubsJar.String()) { t.Errorf("foo classpath %v does not contain %q", javac.Args["classpath"], sdklibStubsJar.String()) } @@ -580,6 +588,12 @@ 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) + } + ctx.ModuleForTests("qux", "android_common").Rule("Cp") } @@ -1083,16 +1097,26 @@ func TestDroiddoc(t *testing.T) { srcs: ["bar-doc/IBar.aidl"], path: "bar-doc", } - droiddoc { - name: "bar-doc", + droidstubs { + name: "bar-stubs", srcs: [ "bar-doc/a.java", - "bar-doc/IFoo.aidl", - ":bar-doc-aidl-srcs", ], exclude_srcs: [ "bar-doc/b.java" ], + api_levels_annotations_dirs: [ + "droiddoc-templates-sdk", + ], + api_levels_annotations_enabled: true, + } + droiddoc { + name: "bar-doc", + srcs: [ + ":bar-stubs", + "bar-doc/IFoo.aidl", + ":bar-doc-aidl-srcs", + ], custom_template: "droiddoc-templates-sdk", hdf: [ "android.whichdoc offline", @@ -1109,23 +1133,29 @@ func TestDroiddoc(t *testing.T) { "bar-doc/a.java": nil, "bar-doc/b.java": nil, }) - barDocModule := ctx.ModuleForTests("bar-doc", "android_common") - barDoc := barDocModule.Rule("javadoc") - notExpected := " -stubs " - if strings.Contains(barDoc.RuleParams.Command, notExpected) { - t.Errorf("bar-doc command contains flag %q to create stubs, but should not", notExpected) + barStubs := ctx.ModuleForTests("bar-stubs", "android_common") + barStubsOutputs, err := barStubs.Module().(*Droidstubs).OutputFiles("") + if err != nil { + t.Errorf("Unexpected error %q retrieving \"bar-stubs\" output file", err) + } + if len(barStubsOutputs) != 1 { + t.Errorf("Expected one output from \"bar-stubs\" got %s", barStubsOutputs) } - var javaSrcs []string - for _, i := range barDoc.Inputs { - javaSrcs = append(javaSrcs, i.Base()) + barStubsOutput := barStubsOutputs[0] + barDoc := ctx.ModuleForTests("bar-doc", "android_common") + javaDoc := barDoc.Rule("javadoc") + 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) } - if len(javaSrcs) != 1 || javaSrcs[0] != "a.java" { - t.Errorf("inputs of bar-doc must be []string{\"a.java\"}, but was %#v.", javaSrcs) + + expected := "-sourcepath " + buildDir + "/.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) } - aidl := barDocModule.Rule("aidl") - if g, w := barDoc.Implicits.Strings(), aidl.Output.String(); !inList(w, g) { + aidl := barDoc.Rule("aidl") + if g, w := javaDoc.Implicits.Strings(), aidl.Output.String(); !inList(w, g) { t.Errorf("implicits of bar-doc must contain %q, but was %q.", w, g) } @@ -1145,16 +1175,26 @@ func TestDroiddocArgsAndFlagsCausesError(t *testing.T) { srcs: ["bar-doc/IBar.aidl"], path: "bar-doc", } - droiddoc { - name: "bar-doc", + droidstubs { + name: "bar-stubs", srcs: [ "bar-doc/a.java", - "bar-doc/IFoo.aidl", - ":bar-doc-aidl-srcs", ], exclude_srcs: [ "bar-doc/b.java" ], + api_levels_annotations_dirs: [ + "droiddoc-templates-sdk", + ], + api_levels_annotations_enabled: true, + } + droiddoc { + name: "bar-doc", + srcs: [ + ":bar-stubs", + "bar-doc/IFoo.aidl", + ":bar-doc-aidl-srcs", + ], custom_template: "droiddoc-templates-sdk", hdf: [ "android.whichdoc offline", @@ -1496,8 +1536,7 @@ func TestJavaSdkLibrary(t *testing.T) { // test if baz has exported SDK lib names foo and bar to qux qux := ctx.ModuleForTests("qux", "android_common") if quxLib, ok := qux.Module().(*Library); ok { - sdkLibs := quxLib.ExportedSdkLibs() - sort.Strings(sdkLibs) + sdkLibs := android.SortedStringKeys(quxLib.ExportedSdkLibs()) if w := []string{"bar", "foo", "fred", "quuz"}; !reflect.DeepEqual(w, sdkLibs) { t.Errorf("qux should export %q but exports %q", w, sdkLibs) } |
