blob: 40f27691992efb73d40354b59b856baaec15c9be [file] [log] [blame]
Paul Duffina80fdec2019-12-03 15:25:00 +00001// Copyright (C) 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package sdk
16
17import (
18 "testing"
Paul Duffincee7e662020-07-09 17:32:57 +010019
Paul Duffin4a2a29c2021-03-09 22:27:13 +000020 "android/soong/android"
Paul Duffincee7e662020-07-09 17:32:57 +010021 "android/soong/java"
Paul Duffina80fdec2019-12-03 15:25:00 +000022)
23
Paul Duffin4a2a29c2021-03-09 22:27:13 +000024func testSdkWithJava(t *testing.T, bp string) *android.TestResult {
Paul Duffind835daa2019-11-30 17:49:09 +000025 t.Helper()
26
27 fs := map[string][]byte{
28 "Test.java": nil,
Paul Duffin4e772842020-06-24 12:10:42 +010029 "resource.test": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000030 "aidl/foo/bar/Test.aidl": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000031
Paul Duffincee7e662020-07-09 17:32:57 +010032 // For java_import
33 "prebuilt.jar": nil,
34
Paul Duffindd46f712020-02-10 13:37:10 +000035 // For java_sdk_library
36 "api/current.txt": nil,
37 "api/removed.txt": nil,
38 "api/system-current.txt": nil,
39 "api/system-removed.txt": nil,
40 "api/test-current.txt": nil,
41 "api/test-removed.txt": nil,
Paul Duffin8f265b92020-04-28 14:13:56 +010042 "api/module-lib-current.txt": nil,
43 "api/module-lib-removed.txt": nil,
Paul Duffin0c5bae52020-06-02 13:00:08 +010044 "api/system-server-current.txt": nil,
45 "api/system-server-removed.txt": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000046 "build/soong/scripts/gen-java-current-api-files.sh": nil,
Paul Duffina2ae7e02020-09-11 11:55:00 +010047 "docs/known_doctags": nil,
Anton Hanssondff2c782020-12-21 17:10:01 +000048 "100/public/api/myjavalib.txt": nil,
49 "100/public/api/myjavalib-removed.txt": nil,
50 "100/system/api/myjavalib.txt": nil,
51 "100/system/api/myjavalib-removed.txt": nil,
52 "100/module-lib/api/myjavalib.txt": nil,
53 "100/module-lib/api/myjavalib-removed.txt": nil,
54 "100/system-server/api/myjavalib.txt": nil,
55 "100/system-server/api/myjavalib-removed.txt": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000056 }
Paul Duffindd46f712020-02-10 13:37:10 +000057
58 // for java_sdk_library tests
59 bp = `
60java_system_modules_import {
61 name: "core-current-stubs-system-modules",
62}
63java_system_modules_import {
Pete Gillin84c38072020-07-09 18:03:41 +010064 name: "stable-core-platform-api-stubs-system-modules",
Paul Duffindd46f712020-02-10 13:37:10 +000065}
66java_import {
Pete Gillin84c38072020-07-09 18:03:41 +010067 name: "stable.core.platform.api.stubs",
Paul Duffindd46f712020-02-10 13:37:10 +000068}
Paul Duffin260bd312020-04-28 14:15:17 +010069java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000070 name: "android_stubs_current",
71}
Paul Duffin260bd312020-04-28 14:15:17 +010072java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000073 name: "android_system_stubs_current",
74}
Paul Duffin260bd312020-04-28 14:15:17 +010075java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000076 name: "android_test_stubs_current",
77}
78java_import {
Paul Duffin8f265b92020-04-28 14:13:56 +010079 name: "android_module_lib_stubs_current",
80}
81java_import {
Paul Duffin0c5bae52020-06-02 13:00:08 +010082 name: "android_system_server_stubs_current",
83}
84java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000085 name: "core-lambda-stubs",
86 sdk_version: "none",
87}
88java_import {
89 name: "ext",
90 sdk_version: "none",
91}
92java_import {
93 name: "framework",
94 sdk_version: "none",
95}
Anton Hanssondff2c782020-12-21 17:10:01 +000096prebuilt_apis {
97 name: "sdk",
98 api_dirs: ["100"],
99}
Paul Duffindd46f712020-02-10 13:37:10 +0000100` + bp
101
Paul Duffind835daa2019-11-30 17:49:09 +0000102 return testSdkWithFs(t, bp, fs)
103}
104
Paul Duffina80fdec2019-12-03 15:25:00 +0000105// Contains tests for SDK members provided by the java package.
106
Paul Duffincee7e662020-07-09 17:32:57 +0100107func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
108 result := testSdkWithJava(t, `
109 sdk {
110 name: "mysdk",
111 java_header_libs: ["sdkmember"],
112 }
113
114 java_library {
115 name: "sdkmember",
116 srcs: ["Test.java"],
117 system_modules: "none",
118 sdk_version: "none",
119 }
120
121 java_import {
122 name: "sdkmember",
123 prefer: true,
124 jars: ["prebuilt.jar"],
125 }
126 `)
127
128 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin8306f252021-03-11 12:18:24 +0000129 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
Paul Duffincee7e662020-07-09 17:32:57 +0100130
Paul Duffin981b94b2021-03-11 12:32:12 +0000131 CheckSnapshot(result, "mysdk", "",
Paul Duffincee7e662020-07-09 17:32:57 +0100132 checkAndroidBpContents(`// This is auto-generated. DO NOT EDIT.
133
134java_import {
135 name: "mysdk_sdkmember@current",
136 sdk_member_name: "sdkmember",
Paul Duffind99d9972020-09-29 16:00:55 +0100137 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000138 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100139 jars: ["java/sdkmember.jar"],
140}
141
142java_import {
143 name: "sdkmember",
144 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100145 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000146 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100147 jars: ["java/sdkmember.jar"],
148}
149
150sdk_snapshot {
151 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100152 visibility: ["//visibility:public"],
Paul Duffincee7e662020-07-09 17:32:57 +0100153 java_header_libs: ["mysdk_sdkmember@current"],
154}
155`))
156}
157
Paul Duffina80fdec2019-12-03 15:25:00 +0000158func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000159 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000160 sdk {
161 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +0900162 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000163 }
164
165 sdk_snapshot {
166 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +0000167 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000168 }
169
170 sdk_snapshot {
171 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +0000172 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000173 }
174
Jiyong Park0f80c182020-01-31 02:49:53 +0900175 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000176 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900177 srcs: ["Test.java"],
178 system_modules: "none",
179 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000180 host_supported: true,
181 }
182
183 java_import {
184 name: "sdkmember_mysdk_1",
185 sdk_member_name: "sdkmember",
186 host_supported: true,
187 }
188
189 java_import {
190 name: "sdkmember_mysdk_2",
191 sdk_member_name: "sdkmember",
192 host_supported: true,
193 }
194
195 java_library {
196 name: "myjavalib",
197 srcs: ["Test.java"],
198 libs: ["sdkmember"],
199 system_modules: "none",
200 sdk_version: "none",
201 compile_dex: true,
202 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000203 apex_available: [
204 "myapex",
205 "myapex2",
206 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000207 }
208
209 apex {
210 name: "myapex",
211 java_libs: ["myjavalib"],
212 uses_sdks: ["mysdk@1"],
213 key: "myapex.key",
214 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000215 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000216 }
217
218 apex {
219 name: "myapex2",
220 java_libs: ["myjavalib"],
221 uses_sdks: ["mysdk@2"],
222 key: "myapex.key",
223 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000224 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000225 }
226 `)
227
Paul Duffin8306f252021-03-11 12:18:24 +0000228 sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
229 sdkMemberV2 := result.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000230
Paul Duffin8306f252021-03-11 12:18:24 +0000231 javalibForMyApex := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
232 javalibForMyApex2 := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000233
234 // Depending on the uses_sdks value, different libs are linked
235 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
236 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
237}
238
Paul Duffina0dbf432019-12-05 11:25:53 +0000239func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
240 result := testSdkWithJava(t, `
241 sdk {
242 name: "mysdk",
243 java_header_libs: ["myjavalib"],
244 }
245
246 java_library {
247 name: "myjavalib",
248 srcs: ["Test.java"],
249 aidl: {
250 export_include_dirs: ["aidl"],
251 },
252 system_modules: "none",
253 sdk_version: "none",
254 compile_dex: true,
255 host_supported: true,
256 }
257 `)
258
Paul Duffin981b94b2021-03-11 12:32:12 +0000259 CheckSnapshot(result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000260 checkAndroidBpContents(`
261// This is auto-generated. DO NOT EDIT.
262
263java_import {
264 name: "mysdk_myjavalib@current",
265 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100266 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000267 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000268 jars: ["java/myjavalib.jar"],
269}
270
271java_import {
272 name: "myjavalib",
273 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100274 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000275 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000276 jars: ["java/myjavalib.jar"],
277}
278
279sdk_snapshot {
280 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100281 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000282 java_header_libs: ["mysdk_myjavalib@current"],
283}
284
285`),
286 checkAllCopyRules(`
287.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
288aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
289`),
290 )
291}
292
293func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina0dbf432019-12-05 11:25:53 +0000294 result := testSdkWithJava(t, `
295 sdk {
296 name: "mysdk",
297 device_supported: false,
298 host_supported: true,
299 java_header_libs: ["myjavalib"],
300 }
301
302 java_library {
303 name: "myjavalib",
304 device_supported: false,
305 host_supported: true,
306 srcs: ["Test.java"],
307 aidl: {
308 export_include_dirs: ["aidl"],
309 },
310 system_modules: "none",
311 sdk_version: "none",
312 compile_dex: true,
313 }
314 `)
315
Paul Duffin981b94b2021-03-11 12:32:12 +0000316 CheckSnapshot(result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000317 checkAndroidBpContents(`
318// This is auto-generated. DO NOT EDIT.
319
320java_import {
321 name: "mysdk_myjavalib@current",
322 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100323 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000324 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000325 device_supported: false,
326 host_supported: true,
327 jars: ["java/myjavalib.jar"],
328}
329
330java_import {
331 name: "myjavalib",
332 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100333 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000334 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000335 device_supported: false,
336 host_supported: true,
337 jars: ["java/myjavalib.jar"],
338}
339
340sdk_snapshot {
341 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100342 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000343 device_supported: false,
344 host_supported: true,
345 java_header_libs: ["mysdk_myjavalib@current"],
346}
347`),
348 checkAllCopyRules(`
349.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
350aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
351`),
352 )
353}
354
Paul Duffina04c1072020-03-02 10:16:35 +0000355func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina04c1072020-03-02 10:16:35 +0000356 result := testSdkWithJava(t, `
357 sdk {
358 name: "mysdk",
359 host_supported: true,
360 java_header_libs: ["myjavalib"],
361 }
362
363 java_library {
364 name: "myjavalib",
365 host_supported: true,
366 srcs: ["Test.java"],
367 system_modules: "none",
368 sdk_version: "none",
369 compile_dex: true,
370 }
371 `)
372
Paul Duffin981b94b2021-03-11 12:32:12 +0000373 CheckSnapshot(result, "mysdk", "",
Paul Duffina04c1072020-03-02 10:16:35 +0000374 checkAndroidBpContents(`
375// This is auto-generated. DO NOT EDIT.
376
377java_import {
378 name: "mysdk_myjavalib@current",
379 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100380 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000381 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000382 host_supported: true,
383 target: {
384 android: {
385 jars: ["java/android/myjavalib.jar"],
386 },
387 linux_glibc: {
388 jars: ["java/linux_glibc/myjavalib.jar"],
389 },
390 },
391}
392
393java_import {
394 name: "myjavalib",
395 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100396 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000397 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000398 host_supported: true,
399 target: {
400 android: {
401 jars: ["java/android/myjavalib.jar"],
402 },
403 linux_glibc: {
404 jars: ["java/linux_glibc/myjavalib.jar"],
405 },
406 },
407}
408
409sdk_snapshot {
410 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100411 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000412 host_supported: true,
413 java_header_libs: ["mysdk_myjavalib@current"],
414}
415`),
416 checkAllCopyRules(`
417.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
418.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
419`),
420 )
421}
422
Paul Duffina0dbf432019-12-05 11:25:53 +0000423func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000424 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000425 module_exports {
426 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000427 java_libs: ["myjavalib"],
428 }
429
430 java_library {
431 name: "myjavalib",
432 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100433 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000434 aidl: {
435 export_include_dirs: ["aidl"],
436 },
437 system_modules: "none",
438 sdk_version: "none",
439 compile_dex: true,
440 host_supported: true,
441 }
442 `)
443
Paul Duffin981b94b2021-03-11 12:32:12 +0000444 CheckSnapshot(result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000445 checkAndroidBpContents(`
446// This is auto-generated. DO NOT EDIT.
447
448java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000449 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000450 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100451 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000452 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000453 jars: ["java/myjavalib.jar"],
454}
455
456java_import {
457 name: "myjavalib",
458 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100459 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000460 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000461 jars: ["java/myjavalib.jar"],
462}
463
Paul Duffine6029182019-12-16 17:43:48 +0000464module_exports_snapshot {
465 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100466 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000467 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000468}
469
470`),
471 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100472.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000473aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
474`),
475 )
476}
477
Paul Duffindb170e42020-12-08 17:48:25 +0000478func TestSnapshotWithJavaBootLibrary(t *testing.T) {
479 result := testSdkWithJava(t, `
480 module_exports {
481 name: "myexports",
482 java_boot_libs: ["myjavalib"],
483 }
484
485 java_library {
486 name: "myjavalib",
487 srcs: ["Test.java"],
488 java_resources: ["resource.txt"],
489 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
490 // intended to be used for compiling Java, only for accessing the dex implementation jar.
491 aidl: {
492 export_include_dirs: ["aidl"],
493 },
494 system_modules: "none",
495 sdk_version: "none",
496 compile_dex: true,
497 }
498 `)
499
Paul Duffin981b94b2021-03-11 12:32:12 +0000500 CheckSnapshot(result, "myexports", "",
Paul Duffindb170e42020-12-08 17:48:25 +0000501 checkAndroidBpContents(`
502// This is auto-generated. DO NOT EDIT.
503
504java_import {
505 name: "myexports_myjavalib@current",
506 sdk_member_name: "myjavalib",
507 visibility: ["//visibility:public"],
508 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000509 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000510}
511
512java_import {
513 name: "myjavalib",
514 prefer: false,
515 visibility: ["//visibility:public"],
516 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000517 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000518}
519
520module_exports_snapshot {
521 name: "myexports@current",
522 visibility: ["//visibility:public"],
523 java_boot_libs: ["myexports_myjavalib@current"],
524}
Paul Duffindb170e42020-12-08 17:48:25 +0000525`),
526 checkAllCopyRules(`
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000527.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000528`),
529 )
530}
531
Paul Duffina0dbf432019-12-05 11:25:53 +0000532func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000533 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000534 module_exports {
535 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000536 device_supported: false,
537 host_supported: true,
538 java_libs: ["myjavalib"],
539 }
540
541 java_library {
542 name: "myjavalib",
543 device_supported: false,
544 host_supported: true,
545 srcs: ["Test.java"],
546 aidl: {
547 export_include_dirs: ["aidl"],
548 },
549 system_modules: "none",
550 sdk_version: "none",
551 compile_dex: true,
552 }
553 `)
554
Paul Duffin981b94b2021-03-11 12:32:12 +0000555 CheckSnapshot(result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000556 checkAndroidBpContents(`
557// This is auto-generated. DO NOT EDIT.
558
559java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000560 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000561 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100562 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000563 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000564 device_supported: false,
565 host_supported: true,
566 jars: ["java/myjavalib.jar"],
567}
568
569java_import {
570 name: "myjavalib",
571 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100572 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000573 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000574 device_supported: false,
575 host_supported: true,
576 jars: ["java/myjavalib.jar"],
577}
578
Paul Duffine6029182019-12-16 17:43:48 +0000579module_exports_snapshot {
580 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100581 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000582 device_supported: false,
583 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000584 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000585}
586`),
587 checkAllCopyRules(`
588.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
589aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
590`),
591 )
592}
593
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000594func TestSnapshotWithJavaTest(t *testing.T) {
595 result := testSdkWithJava(t, `
596 module_exports {
597 name: "myexports",
598 java_tests: ["myjavatests"],
599 }
600
601 java_test {
602 name: "myjavatests",
603 srcs: ["Test.java"],
604 system_modules: "none",
605 sdk_version: "none",
606 compile_dex: true,
607 host_supported: true,
608 }
609 `)
610
Paul Duffin981b94b2021-03-11 12:32:12 +0000611 CheckSnapshot(result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000612 checkAndroidBpContents(`
613// This is auto-generated. DO NOT EDIT.
614
615java_test_import {
616 name: "myexports_myjavatests@current",
617 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100618 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000619 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000620 jars: ["java/myjavatests.jar"],
621 test_config: "java/myjavatests-AndroidTest.xml",
622}
623
624java_test_import {
625 name: "myjavatests",
626 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100627 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000628 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000629 jars: ["java/myjavatests.jar"],
630 test_config: "java/myjavatests-AndroidTest.xml",
631}
632
633module_exports_snapshot {
634 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100635 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000636 java_tests: ["myexports_myjavatests@current"],
637}
638`),
639 checkAllCopyRules(`
640.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
641.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
642`),
643 )
644}
645
646func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000647 result := testSdkWithJava(t, `
648 module_exports {
649 name: "myexports",
650 device_supported: false,
651 host_supported: true,
652 java_tests: ["myjavatests"],
653 }
654
655 java_test {
656 name: "myjavatests",
657 device_supported: false,
658 host_supported: true,
659 srcs: ["Test.java"],
660 system_modules: "none",
661 sdk_version: "none",
662 compile_dex: true,
663 }
664 `)
665
Paul Duffin981b94b2021-03-11 12:32:12 +0000666 CheckSnapshot(result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000667 checkAndroidBpContents(`
668// This is auto-generated. DO NOT EDIT.
669
670java_test_import {
671 name: "myexports_myjavatests@current",
672 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100673 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000674 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000675 device_supported: false,
676 host_supported: true,
677 jars: ["java/myjavatests.jar"],
678 test_config: "java/myjavatests-AndroidTest.xml",
679}
680
681java_test_import {
682 name: "myjavatests",
683 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100684 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000685 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000686 device_supported: false,
687 host_supported: true,
688 jars: ["java/myjavatests.jar"],
689 test_config: "java/myjavatests-AndroidTest.xml",
690}
691
692module_exports_snapshot {
693 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100694 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000695 device_supported: false,
696 host_supported: true,
697 java_tests: ["myexports_myjavatests@current"],
698}
699`),
700 checkAllCopyRules(`
701.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
702.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
703`),
704 )
705}
706
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000707func TestSnapshotWithJavaSystemModules(t *testing.T) {
708 result := testSdkWithJava(t, `
709 sdk {
710 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000711 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000712 java_system_modules: ["my-system-modules"],
713 }
714
715 java_system_modules {
716 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000717 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000718 }
719
720 java_library {
721 name: "system-module",
722 srcs: ["Test.java"],
723 sdk_version: "none",
724 system_modules: "none",
725 }
Paul Duffin72910952020-01-20 18:16:30 +0000726
727 java_library {
728 name: "exported-system-module",
729 srcs: ["Test.java"],
730 sdk_version: "none",
731 system_modules: "none",
732 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000733 `)
734
Paul Duffin981b94b2021-03-11 12:32:12 +0000735 CheckSnapshot(result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000736 checkAndroidBpContents(`
737// This is auto-generated. DO NOT EDIT.
738
739java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000740 name: "mysdk_exported-system-module@current",
741 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100742 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000743 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000744 jars: ["java/exported-system-module.jar"],
745}
746
747java_import {
748 name: "exported-system-module",
749 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100750 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000751 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000752 jars: ["java/exported-system-module.jar"],
753}
754
755java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000756 name: "mysdk_system-module@current",
757 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000758 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000759 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000760 jars: ["java/system-module.jar"],
761}
762
763java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000764 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000765 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000766 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000767 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000768 jars: ["java/system-module.jar"],
769}
770
771java_system_modules_import {
772 name: "mysdk_my-system-modules@current",
773 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100774 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000775 libs: [
776 "mysdk_system-module@current",
777 "mysdk_exported-system-module@current",
778 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000779}
780
781java_system_modules_import {
782 name: "my-system-modules",
783 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100784 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000785 libs: [
786 "mysdk_system-module",
787 "exported-system-module",
788 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000789}
790
791sdk_snapshot {
792 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100793 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000794 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000795 java_system_modules: ["mysdk_my-system-modules@current"],
796}
797`),
Paul Duffin72910952020-01-20 18:16:30 +0000798 checkAllCopyRules(`
799.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
800.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
801`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000802 )
803}
804
805func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000806 result := testSdkWithJava(t, `
807 sdk {
808 name: "mysdk",
809 device_supported: false,
810 host_supported: true,
811 java_system_modules: ["my-system-modules"],
812 }
813
814 java_system_modules {
815 name: "my-system-modules",
816 device_supported: false,
817 host_supported: true,
818 libs: ["system-module"],
819 }
820
821 java_library {
822 name: "system-module",
823 device_supported: false,
824 host_supported: true,
825 srcs: ["Test.java"],
826 sdk_version: "none",
827 system_modules: "none",
828 }
829 `)
830
Paul Duffin981b94b2021-03-11 12:32:12 +0000831 CheckSnapshot(result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000832 checkAndroidBpContents(`
833// This is auto-generated. DO NOT EDIT.
834
835java_import {
836 name: "mysdk_system-module@current",
837 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000838 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000839 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000840 device_supported: false,
841 host_supported: true,
842 jars: ["java/system-module.jar"],
843}
844
845java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000846 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000847 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000848 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000849 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000850 device_supported: false,
851 host_supported: true,
852 jars: ["java/system-module.jar"],
853}
854
855java_system_modules_import {
856 name: "mysdk_my-system-modules@current",
857 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100858 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000859 device_supported: false,
860 host_supported: true,
861 libs: ["mysdk_system-module@current"],
862}
863
864java_system_modules_import {
865 name: "my-system-modules",
866 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100867 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000868 device_supported: false,
869 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000870 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000871}
872
873sdk_snapshot {
874 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100875 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000876 device_supported: false,
877 host_supported: true,
878 java_system_modules: ["mysdk_my-system-modules@current"],
879}
880`),
881 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
882 )
883}
Paul Duffin865171e2020-03-02 18:38:15 +0000884
885func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000886 result := testSdkWithJava(t, `
887 module_exports {
888 name: "myexports",
889 host_supported: true,
890 java_libs: ["myjavalib"],
891 target: {
892 android: {
893 java_header_libs: ["androidjavalib"],
894 },
895 host: {
896 java_header_libs: ["hostjavalib"],
897 },
898 },
899 }
900
901 java_library {
902 name: "myjavalib",
903 host_supported: true,
904 srcs: ["Test.java"],
905 system_modules: "none",
906 sdk_version: "none",
907 }
908
909 java_library {
910 name: "androidjavalib",
911 srcs: ["Test.java"],
912 system_modules: "none",
913 sdk_version: "none",
914 }
915
916 java_library_host {
917 name: "hostjavalib",
918 srcs: ["Test.java"],
919 }
920 `)
921
Paul Duffin981b94b2021-03-11 12:32:12 +0000922 CheckSnapshot(result, "myexports", "",
Paul Duffin865171e2020-03-02 18:38:15 +0000923 checkAndroidBpContents(`
924// This is auto-generated. DO NOT EDIT.
925
926java_import {
927 name: "myexports_hostjavalib@current",
928 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100929 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000930 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000931 device_supported: false,
932 host_supported: true,
933 jars: ["java/hostjavalib.jar"],
934}
935
936java_import {
937 name: "hostjavalib",
938 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100939 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000940 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000941 device_supported: false,
942 host_supported: true,
943 jars: ["java/hostjavalib.jar"],
944}
945
946java_import {
947 name: "myexports_androidjavalib@current",
948 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100949 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000950 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000951 jars: ["java/androidjavalib.jar"],
952}
953
954java_import {
955 name: "androidjavalib",
956 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100957 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000958 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000959 jars: ["java/androidjavalib.jar"],
960}
961
962java_import {
963 name: "myexports_myjavalib@current",
964 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100965 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000966 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000967 host_supported: true,
968 target: {
969 android: {
970 jars: ["java/android/myjavalib.jar"],
971 },
972 linux_glibc: {
973 jars: ["java/linux_glibc/myjavalib.jar"],
974 },
975 },
976}
977
978java_import {
979 name: "myjavalib",
980 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100981 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000982 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000983 host_supported: true,
984 target: {
985 android: {
986 jars: ["java/android/myjavalib.jar"],
987 },
988 linux_glibc: {
989 jars: ["java/linux_glibc/myjavalib.jar"],
990 },
991 },
992}
993
994module_exports_snapshot {
995 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100996 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000997 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000998 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000999 target: {
1000 android: {
1001 java_header_libs: ["myexports_androidjavalib@current"],
1002 },
1003 linux_glibc: {
1004 java_header_libs: ["myexports_hostjavalib@current"],
1005 },
1006 },
Paul Duffin865171e2020-03-02 18:38:15 +00001007}
1008`),
1009 checkAllCopyRules(`
1010.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1011.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1012.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1013.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1014`),
1015 )
1016}
Paul Duffindd46f712020-02-10 13:37:10 +00001017
1018func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1019 result := testSdkWithJava(t, `
1020 sdk {
1021 name: "mysdk",
1022 java_sdk_libs: ["myjavalib"],
1023 }
1024
1025 java_sdk_library {
1026 name: "myjavalib",
1027 apex_available: ["//apex_available:anyapex"],
1028 srcs: ["Test.java"],
1029 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001030 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001031 stubs_library_visibility: ["//other"],
1032 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001033 }
1034 `)
1035
Paul Duffin981b94b2021-03-11 12:32:12 +00001036 CheckSnapshot(result, "mysdk", "",
Paul Duffindd46f712020-02-10 13:37:10 +00001037 checkAndroidBpContents(`
1038// This is auto-generated. DO NOT EDIT.
1039
1040java_sdk_library_import {
1041 name: "mysdk_myjavalib@current",
1042 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001043 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001044 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001045 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001046 public: {
1047 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001048 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001049 current_api: "sdk_library/public/myjavalib.txt",
1050 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001051 sdk_version: "current",
1052 },
1053 system: {
1054 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001055 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001056 current_api: "sdk_library/system/myjavalib.txt",
1057 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001058 sdk_version: "system_current",
1059 },
1060 test: {
1061 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001062 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001063 current_api: "sdk_library/test/myjavalib.txt",
1064 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001065 sdk_version: "test_current",
1066 },
1067}
1068
1069java_sdk_library_import {
1070 name: "myjavalib",
1071 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001072 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001073 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001074 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001075 public: {
1076 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001077 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001078 current_api: "sdk_library/public/myjavalib.txt",
1079 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001080 sdk_version: "current",
1081 },
1082 system: {
1083 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001084 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001085 current_api: "sdk_library/system/myjavalib.txt",
1086 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001087 sdk_version: "system_current",
1088 },
1089 test: {
1090 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001091 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001092 current_api: "sdk_library/test/myjavalib.txt",
1093 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001094 sdk_version: "test_current",
1095 },
1096}
1097
1098sdk_snapshot {
1099 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001100 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001101 java_sdk_libs: ["mysdk_myjavalib@current"],
1102}
1103`),
1104 checkAllCopyRules(`
1105.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001106.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001107.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001108.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001109.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001110.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001111.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001112.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001113.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_removed.txt -> sdk_library/test/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001114`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001115 checkMergeZips(
1116 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1117 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1118 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001119 )
1120}
Paul Duffin3375e352020-04-28 10:44:03 +01001121
Paul Duffin780c5f42020-05-12 15:52:55 +01001122func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1123 result := testSdkWithJava(t, `
1124 sdk {
1125 name: "mysdk",
1126 java_sdk_libs: ["myjavalib"],
1127 }
1128
1129 java_sdk_library {
1130 name: "myjavalib",
1131 srcs: ["Test.java"],
1132 sdk_version: "none",
1133 system_modules: "none",
1134 }
1135 `)
1136
Paul Duffin981b94b2021-03-11 12:32:12 +00001137 CheckSnapshot(result, "mysdk", "",
Paul Duffin780c5f42020-05-12 15:52:55 +01001138 checkAndroidBpContents(`
1139// This is auto-generated. DO NOT EDIT.
1140
1141java_sdk_library_import {
1142 name: "mysdk_myjavalib@current",
1143 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001144 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001145 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001146 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001147 public: {
1148 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001149 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001150 current_api: "sdk_library/public/myjavalib.txt",
1151 removed_api: "sdk_library/public/myjavalib-removed.txt",
1152 sdk_version: "none",
1153 },
1154}
1155
1156java_sdk_library_import {
1157 name: "myjavalib",
1158 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001159 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001160 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001161 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001162 public: {
1163 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001164 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001165 current_api: "sdk_library/public/myjavalib.txt",
1166 removed_api: "sdk_library/public/myjavalib-removed.txt",
1167 sdk_version: "none",
1168 },
1169}
1170
1171sdk_snapshot {
1172 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001173 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001174 java_sdk_libs: ["mysdk_myjavalib@current"],
1175}
1176`),
1177 checkAllCopyRules(`
1178.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1179.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001180.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001181`),
1182 checkMergeZips(
1183 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1184 ),
1185 )
1186}
1187
Paul Duffin87a05a32020-05-12 11:50:28 +01001188func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1189 result := testSdkWithJava(t, `
1190 sdk {
1191 name: "mysdk",
1192 java_sdk_libs: ["myjavalib"],
1193 }
1194
1195 java_sdk_library {
1196 name: "myjavalib",
1197 srcs: ["Test.java"],
1198 sdk_version: "module_current",
1199 public: {
1200 enabled: true,
1201 sdk_version: "module_current",
1202 },
1203 }
1204 `)
1205
Paul Duffin981b94b2021-03-11 12:32:12 +00001206 CheckSnapshot(result, "mysdk", "",
Paul Duffin87a05a32020-05-12 11:50:28 +01001207 checkAndroidBpContents(`
1208// This is auto-generated. DO NOT EDIT.
1209
1210java_sdk_library_import {
1211 name: "mysdk_myjavalib@current",
1212 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001213 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001214 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001215 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001216 public: {
1217 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001218 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001219 current_api: "sdk_library/public/myjavalib.txt",
1220 removed_api: "sdk_library/public/myjavalib-removed.txt",
1221 sdk_version: "module_current",
1222 },
1223}
1224
1225java_sdk_library_import {
1226 name: "myjavalib",
1227 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001228 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001229 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001230 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001231 public: {
1232 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001233 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001234 current_api: "sdk_library/public/myjavalib.txt",
1235 removed_api: "sdk_library/public/myjavalib-removed.txt",
1236 sdk_version: "module_current",
1237 },
1238}
1239
1240sdk_snapshot {
1241 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001242 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001243 java_sdk_libs: ["mysdk_myjavalib@current"],
1244}
1245`),
1246 checkAllCopyRules(`
1247.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1248.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001249.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001250`),
1251 checkMergeZips(
1252 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1253 ),
1254 )
1255}
1256
1257func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001258 result := testSdkWithJava(t, `
1259 sdk {
1260 name: "mysdk",
1261 java_sdk_libs: ["myjavalib"],
1262 }
1263
1264 java_sdk_library {
1265 name: "myjavalib",
1266 apex_available: ["//apex_available:anyapex"],
1267 srcs: ["Test.java"],
1268 sdk_version: "current",
1269 public: {
1270 enabled: true,
1271 },
1272 system: {
1273 enabled: true,
1274 },
1275 }
1276 `)
1277
Paul Duffin981b94b2021-03-11 12:32:12 +00001278 CheckSnapshot(result, "mysdk", "",
Paul Duffin3375e352020-04-28 10:44:03 +01001279 checkAndroidBpContents(`
1280// This is auto-generated. DO NOT EDIT.
1281
1282java_sdk_library_import {
1283 name: "mysdk_myjavalib@current",
1284 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001285 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001286 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001287 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001288 public: {
1289 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001290 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001291 current_api: "sdk_library/public/myjavalib.txt",
1292 removed_api: "sdk_library/public/myjavalib-removed.txt",
1293 sdk_version: "current",
1294 },
1295 system: {
1296 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001297 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001298 current_api: "sdk_library/system/myjavalib.txt",
1299 removed_api: "sdk_library/system/myjavalib-removed.txt",
1300 sdk_version: "system_current",
1301 },
1302}
1303
1304java_sdk_library_import {
1305 name: "myjavalib",
1306 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001307 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001308 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001309 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001310 public: {
1311 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001312 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001313 current_api: "sdk_library/public/myjavalib.txt",
1314 removed_api: "sdk_library/public/myjavalib-removed.txt",
1315 sdk_version: "current",
1316 },
1317 system: {
1318 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001319 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001320 current_api: "sdk_library/system/myjavalib.txt",
1321 removed_api: "sdk_library/system/myjavalib-removed.txt",
1322 sdk_version: "system_current",
1323 },
1324}
1325
1326sdk_snapshot {
1327 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001328 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001329 java_sdk_libs: ["mysdk_myjavalib@current"],
1330}
1331`),
1332 checkAllCopyRules(`
1333.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1334.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001335.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001336.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1337.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001338.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001339`),
1340 checkMergeZips(
1341 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1342 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1343 ),
1344 )
1345}
Paul Duffin8f265b92020-04-28 14:13:56 +01001346
1347func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1348 result := testSdkWithJava(t, `
1349 sdk {
1350 name: "mysdk",
1351 java_sdk_libs: ["myjavalib"],
1352 }
1353
1354 java_sdk_library {
1355 name: "myjavalib",
1356 apex_available: ["//apex_available:anyapex"],
1357 srcs: ["Test.java"],
1358 sdk_version: "current",
1359 public: {
1360 enabled: true,
1361 },
1362 system: {
1363 enabled: true,
1364 },
1365 module_lib: {
1366 enabled: true,
1367 },
1368 }
1369 `)
1370
Paul Duffin981b94b2021-03-11 12:32:12 +00001371 CheckSnapshot(result, "mysdk", "",
Paul Duffin8f265b92020-04-28 14:13:56 +01001372 checkAndroidBpContents(`
1373// This is auto-generated. DO NOT EDIT.
1374
1375java_sdk_library_import {
1376 name: "mysdk_myjavalib@current",
1377 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001378 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001379 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001380 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001381 public: {
1382 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001383 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001384 current_api: "sdk_library/public/myjavalib.txt",
1385 removed_api: "sdk_library/public/myjavalib-removed.txt",
1386 sdk_version: "current",
1387 },
1388 system: {
1389 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001390 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001391 current_api: "sdk_library/system/myjavalib.txt",
1392 removed_api: "sdk_library/system/myjavalib-removed.txt",
1393 sdk_version: "system_current",
1394 },
1395 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001396 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001397 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001398 current_api: "sdk_library/module-lib/myjavalib.txt",
1399 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001400 sdk_version: "module_current",
1401 },
1402}
1403
1404java_sdk_library_import {
1405 name: "myjavalib",
1406 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001407 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001408 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001409 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001410 public: {
1411 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001412 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001413 current_api: "sdk_library/public/myjavalib.txt",
1414 removed_api: "sdk_library/public/myjavalib-removed.txt",
1415 sdk_version: "current",
1416 },
1417 system: {
1418 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001419 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001420 current_api: "sdk_library/system/myjavalib.txt",
1421 removed_api: "sdk_library/system/myjavalib-removed.txt",
1422 sdk_version: "system_current",
1423 },
1424 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001425 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001426 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001427 current_api: "sdk_library/module-lib/myjavalib.txt",
1428 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001429 sdk_version: "module_current",
1430 },
1431}
1432
1433sdk_snapshot {
1434 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001435 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001436 java_sdk_libs: ["mysdk_myjavalib@current"],
1437}
1438`),
1439 checkAllCopyRules(`
1440.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1441.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001442.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001443.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1444.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001445.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin6b836ba2020-05-13 19:19:49 +01001446.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
Paul Duffin15f34ef2020-07-20 18:04:44 +01001447.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1448.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001449`),
1450 checkMergeZips(
1451 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1452 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001453 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001454 ),
1455 )
1456}
Paul Duffinf7a64332020-05-13 16:54:55 +01001457
Paul Duffin0c5bae52020-06-02 13:00:08 +01001458func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1459 result := testSdkWithJava(t, `
1460 sdk {
1461 name: "mysdk",
1462 java_sdk_libs: ["myjavalib"],
1463 }
1464
1465 java_sdk_library {
1466 name: "myjavalib",
1467 apex_available: ["//apex_available:anyapex"],
1468 srcs: ["Test.java"],
1469 sdk_version: "current",
1470 public: {
1471 enabled: true,
1472 },
1473 system_server: {
1474 enabled: true,
1475 },
1476 }
1477 `)
1478
Paul Duffin981b94b2021-03-11 12:32:12 +00001479 CheckSnapshot(result, "mysdk", "",
Paul Duffin0c5bae52020-06-02 13:00:08 +01001480 checkAndroidBpContents(`
1481// This is auto-generated. DO NOT EDIT.
1482
1483java_sdk_library_import {
1484 name: "mysdk_myjavalib@current",
1485 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001486 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001487 apex_available: ["//apex_available:anyapex"],
1488 shared_library: true,
1489 public: {
1490 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001491 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001492 current_api: "sdk_library/public/myjavalib.txt",
1493 removed_api: "sdk_library/public/myjavalib-removed.txt",
1494 sdk_version: "current",
1495 },
1496 system_server: {
1497 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001498 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001499 current_api: "sdk_library/system-server/myjavalib.txt",
1500 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1501 sdk_version: "system_server_current",
1502 },
1503}
1504
1505java_sdk_library_import {
1506 name: "myjavalib",
1507 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001508 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001509 apex_available: ["//apex_available:anyapex"],
1510 shared_library: true,
1511 public: {
1512 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001513 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001514 current_api: "sdk_library/public/myjavalib.txt",
1515 removed_api: "sdk_library/public/myjavalib-removed.txt",
1516 sdk_version: "current",
1517 },
1518 system_server: {
1519 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001520 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001521 current_api: "sdk_library/system-server/myjavalib.txt",
1522 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1523 sdk_version: "system_server_current",
1524 },
1525}
1526
1527sdk_snapshot {
1528 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001529 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001530 java_sdk_libs: ["mysdk_myjavalib@current"],
1531}
1532`),
1533 checkAllCopyRules(`
1534.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1535.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1536.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1537.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1538.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1539.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1540`),
1541 checkMergeZips(
1542 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1543 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1544 ),
1545 )
1546}
1547
Paul Duffinf7a64332020-05-13 16:54:55 +01001548func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1549 result := testSdkWithJava(t, `
1550 sdk {
1551 name: "mysdk",
1552 java_sdk_libs: ["myjavalib"],
1553 }
1554
1555 java_sdk_library {
1556 name: "myjavalib",
1557 apex_available: ["//apex_available:anyapex"],
1558 srcs: ["Test.java"],
1559 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001560 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001561 public: {
1562 enabled: true,
1563 },
1564 }
1565 `)
1566
Paul Duffin981b94b2021-03-11 12:32:12 +00001567 CheckSnapshot(result, "mysdk", "",
Paul Duffinf7a64332020-05-13 16:54:55 +01001568 checkAndroidBpContents(`
1569// This is auto-generated. DO NOT EDIT.
1570
1571java_sdk_library_import {
1572 name: "mysdk_myjavalib@current",
1573 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001574 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001575 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001576 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001577 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001578 public: {
1579 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001580 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001581 current_api: "sdk_library/public/myjavalib.txt",
1582 removed_api: "sdk_library/public/myjavalib-removed.txt",
1583 sdk_version: "current",
1584 },
1585}
1586
1587java_sdk_library_import {
1588 name: "myjavalib",
1589 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001590 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001591 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001592 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001593 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001594 public: {
1595 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001596 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001597 current_api: "sdk_library/public/myjavalib.txt",
1598 removed_api: "sdk_library/public/myjavalib-removed.txt",
1599 sdk_version: "current",
1600 },
1601}
1602
1603sdk_snapshot {
1604 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001605 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001606 java_sdk_libs: ["mysdk_myjavalib@current"],
1607}
1608`),
1609 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001610.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1611.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1612.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001613`),
1614 checkMergeZips(
1615 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1616 ),
1617 )
1618}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001619
1620func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1621 result := testSdkWithJava(t, `
1622 sdk {
1623 name: "mysdk",
1624 java_sdk_libs: ["myjavalib"],
1625 }
1626
1627 java_sdk_library {
1628 name: "myjavalib",
1629 srcs: ["Test.java"],
1630 sdk_version: "current",
1631 public: {
1632 enabled: true,
1633 },
1634 doctag_files: ["docs/known_doctags"],
1635 }
1636
1637 filegroup {
1638 name: "mygroup",
1639 srcs: [":myjavalib{.doctags}"],
1640 }
1641 `)
1642
Paul Duffin981b94b2021-03-11 12:32:12 +00001643 CheckSnapshot(result, "mysdk", "",
Paul Duffina2ae7e02020-09-11 11:55:00 +01001644 checkAndroidBpContents(`
1645// This is auto-generated. DO NOT EDIT.
1646
1647java_sdk_library_import {
1648 name: "mysdk_myjavalib@current",
1649 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001650 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001651 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001652 shared_library: true,
1653 doctag_files: ["doctags/docs/known_doctags"],
1654 public: {
1655 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001656 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001657 current_api: "sdk_library/public/myjavalib.txt",
1658 removed_api: "sdk_library/public/myjavalib-removed.txt",
1659 sdk_version: "current",
1660 },
1661}
1662
1663java_sdk_library_import {
1664 name: "myjavalib",
1665 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001666 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001667 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001668 shared_library: true,
1669 doctag_files: ["doctags/docs/known_doctags"],
1670 public: {
1671 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001672 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001673 current_api: "sdk_library/public/myjavalib.txt",
1674 removed_api: "sdk_library/public/myjavalib-removed.txt",
1675 sdk_version: "current",
1676 },
1677}
1678
1679sdk_snapshot {
1680 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001681 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001682 java_sdk_libs: ["mysdk_myjavalib@current"],
1683}
1684`),
1685 checkAllCopyRules(`
1686.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1687.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1688.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1689docs/known_doctags -> doctags/docs/known_doctags
1690`),
1691 )
1692}