From 6bd33c13bb552d3eee52bcc553b35d55dd91fe98 Mon Sep 17 00:00:00 2001 From: Jeongik Cha Date: Tue, 25 Jun 2019 16:26:18 +0900 Subject: Enforce hidden api usage in vendor (soong) From aosp/588578, if vendor app doesn't fill sdk_version, build scirpt overwrites system_current to sdk_version. But there is no similar enforcement in soong. So, as make does, sdkVersion() returns "system_current" if it is device-specific or soc-specific module. and sdk_version is not filled. Test: pass soong test Bug: 132780927 Change-Id: I69bb3d7bfcf7c27c2db4d0efbe046f9c7879b4bc --- java/java_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'java/java_test.go') diff --git a/java/java_test.go b/java/java_test.go index 22dec073f..628fec3f8 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -282,6 +282,32 @@ func TestSimple(t *testing.T) { } } +func TestSdkVersion(t *testing.T) { + ctx := testJava(t, ` + java_library { + name: "foo", + srcs: ["a.java"], + vendor: true, + } + + 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.") + } + + if bar.sdkVersion() != "" { + t.Errorf("If sdk version of non-vendor module is empty, it keeps empty.") + } +} + func TestArchSpecific(t *testing.T) { ctx := testJava(t, ` java_library { -- cgit v1.2.3-59-g8ed1b