diff options
| author | 2019-11-11 02:05:16 +0000 | |
|---|---|---|
| committer | 2019-11-11 02:05:16 +0000 | |
| commit | 80df439072aec063d56f8ea149cae74d5597f603 (patch) | |
| tree | a697c30fdd3eee5770bcaa7e64c3d11a87ce71fe /java/java_test.go | |
| parent | c70d3c3cf6193de666fa23472f89de4caec3ea1f (diff) | |
| parent | 2cc570dc63232b3fcbab00fa65292abeb7828376 (diff) | |
Merge "Enforce hidden apis usage in product(soong)"
Diffstat (limited to 'java/java_test.go')
| -rw-r--r-- | java/java_test.go | 51 |
1 files changed, 36 insertions, 15 deletions
diff --git a/java/java_test.go b/java/java_test.go index a6ae50375..e3e45d769 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -27,6 +27,8 @@ import ( "android/soong/cc" "android/soong/dexpreopt" "android/soong/genrule" + + "github.com/google/blueprint/proptools" ) var buildDir string @@ -228,9 +230,13 @@ func run(t *testing.T, ctx *android.TestContext, config android.Config) { android.FailIfErrored(t, errs) } -func testJavaError(t *testing.T, pattern string, bp string) { +func testJavaError(t *testing.T, pattern string, bp string) (*android.TestContext, android.Config) { + t.Helper() + return testJavaErrorWithConfig(t, pattern, bp, testConfig(nil)) +} + +func testJavaErrorWithConfig(t *testing.T, pattern string, bp string, config android.Config) (*android.TestContext, android.Config) { t.Helper() - config := testConfig(nil) ctx := testContext(bp, nil) pathCtx := android.PathContextForTesting(config, nil) @@ -240,20 +246,26 @@ func testJavaError(t *testing.T, pattern string, bp string) { _, errs := ctx.ParseBlueprintsFiles("Android.bp") if len(errs) > 0 { android.FailIfNoMatchingErrors(t, pattern, errs) - return + return ctx, config } _, errs = ctx.PrepareBuildActions(config) if len(errs) > 0 { android.FailIfNoMatchingErrors(t, pattern, errs) - return + return ctx, config } t.Fatalf("missing expected error %q (0 errors are returned)", pattern) + + return ctx, config } func testJava(t *testing.T, bp string) (*android.TestContext, android.Config) { t.Helper() - config := testConfig(nil) + return testJavaWithConfig(t, bp, testConfig(nil)) +} + +func testJavaWithConfig(t *testing.T, bp string, config android.Config) (*android.TestContext, android.Config) { + t.Helper() ctx := testContext(bp, nil) run(t, ctx, config) @@ -315,29 +327,38 @@ func TestSimple(t *testing.T) { } } -func TestSdkVersion(t *testing.T) { - ctx, _ := testJava(t, ` +func TestSdkVersionByPartition(t *testing.T) { + testJavaError(t, "sdk_version must have a value when the module is located at vendor or product", ` java_library { name: "foo", srcs: ["a.java"], vendor: true, } + `) + testJava(t, ` java_library { name: "bar", srcs: ["b.java"], } `) - foo := ctx.ModuleForTests("foo", "android_common").Module().(*Library) - bar := ctx.ModuleForTests("bar", "android_common").Module().(*Library) - - if foo.sdkVersion() != "system_current" { - t.Errorf("If sdk version of vendor module is empty, it must change to system_current.") - } + for _, enforce := range []bool{true, false} { - if bar.sdkVersion() != "" { - t.Errorf("If sdk version of non-vendor module is empty, it keeps empty.") + config := testConfig(nil) + config.TestProductVariables.EnforceProductPartitionInterface = proptools.BoolPtr(enforce) + bp := ` + java_library { + name: "foo", + srcs: ["a.java"], + product_specific: true, + } + ` + if enforce { + testJavaErrorWithConfig(t, "sdk_version must have a value when the module is located at vendor or product", bp, config) + } else { + testJavaWithConfig(t, bp, config) + } } } |