blob: 2be3c9ca2f285d777fb998dacfc40c0e5099dc76 [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 Duffind14cbc12021-03-18 09:14:23 +000024var prepareForSdkTestWithJava = android.GroupFixturePreparers(
25 java.PrepareForTestWithJavaBuildComponents,
26 PrepareForTestWithSdkBuildComponents,
27)
28
Paul Duffin4a2a29c2021-03-09 22:27:13 +000029func testSdkWithJava(t *testing.T, bp string) *android.TestResult {
Paul Duffind835daa2019-11-30 17:49:09 +000030 t.Helper()
31
32 fs := map[string][]byte{
33 "Test.java": nil,
Paul Duffin4e772842020-06-24 12:10:42 +010034 "resource.test": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000035 "aidl/foo/bar/Test.aidl": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000036
Paul Duffincee7e662020-07-09 17:32:57 +010037 // For java_import
38 "prebuilt.jar": nil,
39
Paul Duffindd46f712020-02-10 13:37:10 +000040 // For java_sdk_library
41 "api/current.txt": nil,
42 "api/removed.txt": nil,
43 "api/system-current.txt": nil,
44 "api/system-removed.txt": nil,
45 "api/test-current.txt": nil,
46 "api/test-removed.txt": nil,
Paul Duffin8f265b92020-04-28 14:13:56 +010047 "api/module-lib-current.txt": nil,
48 "api/module-lib-removed.txt": nil,
Paul Duffin0c5bae52020-06-02 13:00:08 +010049 "api/system-server-current.txt": nil,
50 "api/system-server-removed.txt": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000051 "build/soong/scripts/gen-java-current-api-files.sh": nil,
Paul Duffina2ae7e02020-09-11 11:55:00 +010052 "docs/known_doctags": nil,
Anton Hanssondff2c782020-12-21 17:10:01 +000053 "100/public/api/myjavalib.txt": nil,
54 "100/public/api/myjavalib-removed.txt": nil,
55 "100/system/api/myjavalib.txt": nil,
56 "100/system/api/myjavalib-removed.txt": nil,
57 "100/module-lib/api/myjavalib.txt": nil,
58 "100/module-lib/api/myjavalib-removed.txt": nil,
59 "100/system-server/api/myjavalib.txt": nil,
60 "100/system-server/api/myjavalib-removed.txt": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000061 }
Paul Duffindd46f712020-02-10 13:37:10 +000062
63 // for java_sdk_library tests
64 bp = `
65java_system_modules_import {
66 name: "core-current-stubs-system-modules",
67}
68java_system_modules_import {
Pete Gillin84c38072020-07-09 18:03:41 +010069 name: "stable-core-platform-api-stubs-system-modules",
Paul Duffindd46f712020-02-10 13:37:10 +000070}
71java_import {
Pete Gillin84c38072020-07-09 18:03:41 +010072 name: "stable.core.platform.api.stubs",
Paul Duffindd46f712020-02-10 13:37:10 +000073}
Paul Duffin260bd312020-04-28 14:15:17 +010074java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000075 name: "android_stubs_current",
76}
Paul Duffin260bd312020-04-28 14:15:17 +010077java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000078 name: "android_system_stubs_current",
79}
Paul Duffin260bd312020-04-28 14:15:17 +010080java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000081 name: "android_test_stubs_current",
82}
83java_import {
Paul Duffin8f265b92020-04-28 14:13:56 +010084 name: "android_module_lib_stubs_current",
85}
86java_import {
Paul Duffin0c5bae52020-06-02 13:00:08 +010087 name: "android_system_server_stubs_current",
88}
89java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000090 name: "core-lambda-stubs",
91 sdk_version: "none",
92}
93java_import {
94 name: "ext",
95 sdk_version: "none",
96}
97java_import {
98 name: "framework",
99 sdk_version: "none",
100}
Anton Hanssondff2c782020-12-21 17:10:01 +0000101prebuilt_apis {
102 name: "sdk",
103 api_dirs: ["100"],
104}
Paul Duffindd46f712020-02-10 13:37:10 +0000105` + bp
106
Paul Duffind835daa2019-11-30 17:49:09 +0000107 return testSdkWithFs(t, bp, fs)
108}
109
Paul Duffina80fdec2019-12-03 15:25:00 +0000110// Contains tests for SDK members provided by the java package.
111
Paul Duffincee7e662020-07-09 17:32:57 +0100112func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
113 result := testSdkWithJava(t, `
114 sdk {
115 name: "mysdk",
116 java_header_libs: ["sdkmember"],
117 }
118
119 java_library {
120 name: "sdkmember",
121 srcs: ["Test.java"],
122 system_modules: "none",
123 sdk_version: "none",
124 }
125
126 java_import {
127 name: "sdkmember",
128 prefer: true,
129 jars: ["prebuilt.jar"],
130 }
131 `)
132
133 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin8306f252021-03-11 12:18:24 +0000134 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
Paul Duffincee7e662020-07-09 17:32:57 +0100135
Paul Duffin36474d32021-03-12 12:19:43 +0000136 CheckSnapshot(t, result, "mysdk", "",
Paul Duffincee7e662020-07-09 17:32:57 +0100137 checkAndroidBpContents(`// This is auto-generated. DO NOT EDIT.
138
139java_import {
140 name: "mysdk_sdkmember@current",
141 sdk_member_name: "sdkmember",
Paul Duffind99d9972020-09-29 16:00:55 +0100142 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000143 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100144 jars: ["java/sdkmember.jar"],
145}
146
147java_import {
148 name: "sdkmember",
149 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100150 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000151 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100152 jars: ["java/sdkmember.jar"],
153}
154
155sdk_snapshot {
156 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100157 visibility: ["//visibility:public"],
Paul Duffincee7e662020-07-09 17:32:57 +0100158 java_header_libs: ["mysdk_sdkmember@current"],
159}
160`))
161}
162
Paul Duffina80fdec2019-12-03 15:25:00 +0000163func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000164 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000165 sdk {
166 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +0900167 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000168 }
169
170 sdk_snapshot {
171 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +0000172 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000173 }
174
175 sdk_snapshot {
176 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +0000177 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000178 }
179
Jiyong Park0f80c182020-01-31 02:49:53 +0900180 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000181 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900182 srcs: ["Test.java"],
183 system_modules: "none",
184 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000185 host_supported: true,
186 }
187
188 java_import {
189 name: "sdkmember_mysdk_1",
190 sdk_member_name: "sdkmember",
191 host_supported: true,
192 }
193
194 java_import {
195 name: "sdkmember_mysdk_2",
196 sdk_member_name: "sdkmember",
197 host_supported: true,
198 }
199
200 java_library {
201 name: "myjavalib",
202 srcs: ["Test.java"],
203 libs: ["sdkmember"],
204 system_modules: "none",
205 sdk_version: "none",
206 compile_dex: true,
207 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000208 apex_available: [
209 "myapex",
210 "myapex2",
211 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000212 }
213
214 apex {
215 name: "myapex",
216 java_libs: ["myjavalib"],
217 uses_sdks: ["mysdk@1"],
218 key: "myapex.key",
219 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000220 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000221 }
222
223 apex {
224 name: "myapex2",
225 java_libs: ["myjavalib"],
226 uses_sdks: ["mysdk@2"],
227 key: "myapex.key",
228 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000229 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000230 }
231 `)
232
Paul Duffin8306f252021-03-11 12:18:24 +0000233 sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
234 sdkMemberV2 := result.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000235
Paul Duffin8306f252021-03-11 12:18:24 +0000236 javalibForMyApex := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
237 javalibForMyApex2 := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000238
239 // Depending on the uses_sdks value, different libs are linked
240 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
241 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
242}
243
Paul Duffina0dbf432019-12-05 11:25:53 +0000244func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
245 result := testSdkWithJava(t, `
246 sdk {
247 name: "mysdk",
248 java_header_libs: ["myjavalib"],
249 }
250
251 java_library {
252 name: "myjavalib",
253 srcs: ["Test.java"],
254 aidl: {
255 export_include_dirs: ["aidl"],
256 },
257 system_modules: "none",
258 sdk_version: "none",
259 compile_dex: true,
260 host_supported: true,
261 }
262 `)
263
Paul Duffin36474d32021-03-12 12:19:43 +0000264 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000265 checkAndroidBpContents(`
266// This is auto-generated. DO NOT EDIT.
267
268java_import {
269 name: "mysdk_myjavalib@current",
270 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100271 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000272 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000273 jars: ["java/myjavalib.jar"],
274}
275
276java_import {
277 name: "myjavalib",
278 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100279 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000280 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000281 jars: ["java/myjavalib.jar"],
282}
283
284sdk_snapshot {
285 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100286 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000287 java_header_libs: ["mysdk_myjavalib@current"],
288}
289
290`),
291 checkAllCopyRules(`
292.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
293aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
294`),
295 )
296}
297
298func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina0dbf432019-12-05 11:25:53 +0000299 result := testSdkWithJava(t, `
300 sdk {
301 name: "mysdk",
302 device_supported: false,
303 host_supported: true,
304 java_header_libs: ["myjavalib"],
305 }
306
307 java_library {
308 name: "myjavalib",
309 device_supported: false,
310 host_supported: true,
311 srcs: ["Test.java"],
312 aidl: {
313 export_include_dirs: ["aidl"],
314 },
315 system_modules: "none",
316 sdk_version: "none",
317 compile_dex: true,
318 }
319 `)
320
Paul Duffin36474d32021-03-12 12:19:43 +0000321 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000322 checkAndroidBpContents(`
323// This is auto-generated. DO NOT EDIT.
324
325java_import {
326 name: "mysdk_myjavalib@current",
327 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100328 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000329 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000330 device_supported: false,
331 host_supported: true,
332 jars: ["java/myjavalib.jar"],
333}
334
335java_import {
336 name: "myjavalib",
337 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100338 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000339 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000340 device_supported: false,
341 host_supported: true,
342 jars: ["java/myjavalib.jar"],
343}
344
345sdk_snapshot {
346 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100347 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000348 device_supported: false,
349 host_supported: true,
350 java_header_libs: ["mysdk_myjavalib@current"],
351}
352`),
353 checkAllCopyRules(`
354.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
355aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
356`),
357 )
358}
359
Paul Duffina04c1072020-03-02 10:16:35 +0000360func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina04c1072020-03-02 10:16:35 +0000361 result := testSdkWithJava(t, `
362 sdk {
363 name: "mysdk",
364 host_supported: true,
365 java_header_libs: ["myjavalib"],
366 }
367
368 java_library {
369 name: "myjavalib",
370 host_supported: true,
371 srcs: ["Test.java"],
372 system_modules: "none",
373 sdk_version: "none",
374 compile_dex: true,
375 }
376 `)
377
Paul Duffin36474d32021-03-12 12:19:43 +0000378 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina04c1072020-03-02 10:16:35 +0000379 checkAndroidBpContents(`
380// This is auto-generated. DO NOT EDIT.
381
382java_import {
383 name: "mysdk_myjavalib@current",
384 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100385 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000386 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000387 host_supported: true,
388 target: {
389 android: {
390 jars: ["java/android/myjavalib.jar"],
391 },
392 linux_glibc: {
393 jars: ["java/linux_glibc/myjavalib.jar"],
394 },
395 },
396}
397
398java_import {
399 name: "myjavalib",
400 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100401 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000402 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000403 host_supported: true,
404 target: {
405 android: {
406 jars: ["java/android/myjavalib.jar"],
407 },
408 linux_glibc: {
409 jars: ["java/linux_glibc/myjavalib.jar"],
410 },
411 },
412}
413
414sdk_snapshot {
415 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100416 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000417 host_supported: true,
418 java_header_libs: ["mysdk_myjavalib@current"],
419}
420`),
421 checkAllCopyRules(`
422.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
423.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
424`),
425 )
426}
427
Paul Duffina0dbf432019-12-05 11:25:53 +0000428func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000429 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000430 module_exports {
431 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000432 java_libs: ["myjavalib"],
433 }
434
435 java_library {
436 name: "myjavalib",
437 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100438 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000439 aidl: {
440 export_include_dirs: ["aidl"],
441 },
442 system_modules: "none",
443 sdk_version: "none",
444 compile_dex: true,
445 host_supported: true,
446 }
447 `)
448
Paul Duffin36474d32021-03-12 12:19:43 +0000449 CheckSnapshot(t, result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000450 checkAndroidBpContents(`
451// This is auto-generated. DO NOT EDIT.
452
453java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000454 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000455 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100456 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000457 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000458 jars: ["java/myjavalib.jar"],
459}
460
461java_import {
462 name: "myjavalib",
463 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100464 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000465 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000466 jars: ["java/myjavalib.jar"],
467}
468
Paul Duffine6029182019-12-16 17:43:48 +0000469module_exports_snapshot {
470 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100471 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000472 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000473}
474
475`),
476 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100477.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000478aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
479`),
480 )
481}
482
Paul Duffindb170e42020-12-08 17:48:25 +0000483func TestSnapshotWithJavaBootLibrary(t *testing.T) {
484 result := testSdkWithJava(t, `
485 module_exports {
486 name: "myexports",
487 java_boot_libs: ["myjavalib"],
488 }
489
490 java_library {
491 name: "myjavalib",
492 srcs: ["Test.java"],
493 java_resources: ["resource.txt"],
494 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
495 // intended to be used for compiling Java, only for accessing the dex implementation jar.
496 aidl: {
497 export_include_dirs: ["aidl"],
498 },
499 system_modules: "none",
500 sdk_version: "none",
501 compile_dex: true,
502 }
503 `)
504
Paul Duffin36474d32021-03-12 12:19:43 +0000505 CheckSnapshot(t, result, "myexports", "",
Paul Duffindb170e42020-12-08 17:48:25 +0000506 checkAndroidBpContents(`
507// This is auto-generated. DO NOT EDIT.
508
509java_import {
510 name: "myexports_myjavalib@current",
511 sdk_member_name: "myjavalib",
512 visibility: ["//visibility:public"],
513 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000514 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000515}
516
517java_import {
518 name: "myjavalib",
519 prefer: false,
520 visibility: ["//visibility:public"],
521 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000522 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000523}
524
525module_exports_snapshot {
526 name: "myexports@current",
527 visibility: ["//visibility:public"],
528 java_boot_libs: ["myexports_myjavalib@current"],
529}
Paul Duffindb170e42020-12-08 17:48:25 +0000530`),
531 checkAllCopyRules(`
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000532.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000533`),
534 )
535}
536
Paul Duffina0dbf432019-12-05 11:25:53 +0000537func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000538 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000539 module_exports {
540 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000541 device_supported: false,
542 host_supported: true,
543 java_libs: ["myjavalib"],
544 }
545
546 java_library {
547 name: "myjavalib",
548 device_supported: false,
549 host_supported: true,
550 srcs: ["Test.java"],
551 aidl: {
552 export_include_dirs: ["aidl"],
553 },
554 system_modules: "none",
555 sdk_version: "none",
556 compile_dex: true,
557 }
558 `)
559
Paul Duffin36474d32021-03-12 12:19:43 +0000560 CheckSnapshot(t, result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000561 checkAndroidBpContents(`
562// This is auto-generated. DO NOT EDIT.
563
564java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000565 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000566 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100567 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000568 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000569 device_supported: false,
570 host_supported: true,
571 jars: ["java/myjavalib.jar"],
572}
573
574java_import {
575 name: "myjavalib",
576 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100577 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000578 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000579 device_supported: false,
580 host_supported: true,
581 jars: ["java/myjavalib.jar"],
582}
583
Paul Duffine6029182019-12-16 17:43:48 +0000584module_exports_snapshot {
585 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100586 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000587 device_supported: false,
588 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000589 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000590}
591`),
592 checkAllCopyRules(`
593.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
594aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
595`),
596 )
597}
598
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000599func TestSnapshotWithJavaTest(t *testing.T) {
600 result := testSdkWithJava(t, `
601 module_exports {
602 name: "myexports",
603 java_tests: ["myjavatests"],
604 }
605
606 java_test {
607 name: "myjavatests",
608 srcs: ["Test.java"],
609 system_modules: "none",
610 sdk_version: "none",
611 compile_dex: true,
612 host_supported: true,
613 }
614 `)
615
Paul Duffin36474d32021-03-12 12:19:43 +0000616 CheckSnapshot(t, result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000617 checkAndroidBpContents(`
618// This is auto-generated. DO NOT EDIT.
619
620java_test_import {
621 name: "myexports_myjavatests@current",
622 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100623 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000624 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000625 jars: ["java/myjavatests.jar"],
626 test_config: "java/myjavatests-AndroidTest.xml",
627}
628
629java_test_import {
630 name: "myjavatests",
631 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100632 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000633 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000634 jars: ["java/myjavatests.jar"],
635 test_config: "java/myjavatests-AndroidTest.xml",
636}
637
638module_exports_snapshot {
639 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100640 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000641 java_tests: ["myexports_myjavatests@current"],
642}
643`),
644 checkAllCopyRules(`
645.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
646.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
647`),
648 )
649}
650
651func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000652 result := testSdkWithJava(t, `
653 module_exports {
654 name: "myexports",
655 device_supported: false,
656 host_supported: true,
657 java_tests: ["myjavatests"],
658 }
659
660 java_test {
661 name: "myjavatests",
662 device_supported: false,
663 host_supported: true,
664 srcs: ["Test.java"],
665 system_modules: "none",
666 sdk_version: "none",
667 compile_dex: true,
668 }
669 `)
670
Paul Duffin36474d32021-03-12 12:19:43 +0000671 CheckSnapshot(t, result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000672 checkAndroidBpContents(`
673// This is auto-generated. DO NOT EDIT.
674
675java_test_import {
676 name: "myexports_myjavatests@current",
677 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100678 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000679 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000680 device_supported: false,
681 host_supported: true,
682 jars: ["java/myjavatests.jar"],
683 test_config: "java/myjavatests-AndroidTest.xml",
684}
685
686java_test_import {
687 name: "myjavatests",
688 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100689 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000690 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000691 device_supported: false,
692 host_supported: true,
693 jars: ["java/myjavatests.jar"],
694 test_config: "java/myjavatests-AndroidTest.xml",
695}
696
697module_exports_snapshot {
698 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100699 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000700 device_supported: false,
701 host_supported: true,
702 java_tests: ["myexports_myjavatests@current"],
703}
704`),
705 checkAllCopyRules(`
706.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
707.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
708`),
709 )
710}
711
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000712func TestSnapshotWithJavaSystemModules(t *testing.T) {
713 result := testSdkWithJava(t, `
714 sdk {
715 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000716 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000717 java_system_modules: ["my-system-modules"],
718 }
719
720 java_system_modules {
721 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000722 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000723 }
724
725 java_library {
726 name: "system-module",
727 srcs: ["Test.java"],
728 sdk_version: "none",
729 system_modules: "none",
730 }
Paul Duffin72910952020-01-20 18:16:30 +0000731
732 java_library {
733 name: "exported-system-module",
734 srcs: ["Test.java"],
735 sdk_version: "none",
736 system_modules: "none",
737 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000738 `)
739
Paul Duffin36474d32021-03-12 12:19:43 +0000740 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000741 checkAndroidBpContents(`
742// This is auto-generated. DO NOT EDIT.
743
744java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000745 name: "mysdk_exported-system-module@current",
746 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100747 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000748 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000749 jars: ["java/exported-system-module.jar"],
750}
751
752java_import {
753 name: "exported-system-module",
754 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100755 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000756 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000757 jars: ["java/exported-system-module.jar"],
758}
759
760java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000761 name: "mysdk_system-module@current",
762 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000763 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000764 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000765 jars: ["java/system-module.jar"],
766}
767
768java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000769 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000770 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000771 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000772 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000773 jars: ["java/system-module.jar"],
774}
775
776java_system_modules_import {
777 name: "mysdk_my-system-modules@current",
778 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100779 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000780 libs: [
781 "mysdk_system-module@current",
782 "mysdk_exported-system-module@current",
783 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000784}
785
786java_system_modules_import {
787 name: "my-system-modules",
788 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100789 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000790 libs: [
791 "mysdk_system-module",
792 "exported-system-module",
793 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000794}
795
796sdk_snapshot {
797 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100798 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000799 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000800 java_system_modules: ["mysdk_my-system-modules@current"],
801}
802`),
Paul Duffin72910952020-01-20 18:16:30 +0000803 checkAllCopyRules(`
804.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
805.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
806`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000807 )
808}
809
810func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000811 result := testSdkWithJava(t, `
812 sdk {
813 name: "mysdk",
814 device_supported: false,
815 host_supported: true,
816 java_system_modules: ["my-system-modules"],
817 }
818
819 java_system_modules {
820 name: "my-system-modules",
821 device_supported: false,
822 host_supported: true,
823 libs: ["system-module"],
824 }
825
826 java_library {
827 name: "system-module",
828 device_supported: false,
829 host_supported: true,
830 srcs: ["Test.java"],
831 sdk_version: "none",
832 system_modules: "none",
833 }
834 `)
835
Paul Duffin36474d32021-03-12 12:19:43 +0000836 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000837 checkAndroidBpContents(`
838// This is auto-generated. DO NOT EDIT.
839
840java_import {
841 name: "mysdk_system-module@current",
842 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000843 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000844 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000845 device_supported: false,
846 host_supported: true,
847 jars: ["java/system-module.jar"],
848}
849
850java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000851 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000852 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000853 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000854 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000855 device_supported: false,
856 host_supported: true,
857 jars: ["java/system-module.jar"],
858}
859
860java_system_modules_import {
861 name: "mysdk_my-system-modules@current",
862 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100863 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000864 device_supported: false,
865 host_supported: true,
866 libs: ["mysdk_system-module@current"],
867}
868
869java_system_modules_import {
870 name: "my-system-modules",
871 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100872 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000873 device_supported: false,
874 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000875 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000876}
877
878sdk_snapshot {
879 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100880 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000881 device_supported: false,
882 host_supported: true,
883 java_system_modules: ["mysdk_my-system-modules@current"],
884}
885`),
886 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
887 )
888}
Paul Duffin865171e2020-03-02 18:38:15 +0000889
890func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000891 result := testSdkWithJava(t, `
892 module_exports {
893 name: "myexports",
894 host_supported: true,
895 java_libs: ["myjavalib"],
896 target: {
897 android: {
898 java_header_libs: ["androidjavalib"],
899 },
900 host: {
901 java_header_libs: ["hostjavalib"],
902 },
903 },
904 }
905
906 java_library {
907 name: "myjavalib",
908 host_supported: true,
909 srcs: ["Test.java"],
910 system_modules: "none",
911 sdk_version: "none",
912 }
913
914 java_library {
915 name: "androidjavalib",
916 srcs: ["Test.java"],
917 system_modules: "none",
918 sdk_version: "none",
919 }
920
921 java_library_host {
922 name: "hostjavalib",
923 srcs: ["Test.java"],
924 }
925 `)
926
Paul Duffin36474d32021-03-12 12:19:43 +0000927 CheckSnapshot(t, result, "myexports", "",
Paul Duffin865171e2020-03-02 18:38:15 +0000928 checkAndroidBpContents(`
929// This is auto-generated. DO NOT EDIT.
930
931java_import {
932 name: "myexports_hostjavalib@current",
933 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100934 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000935 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000936 device_supported: false,
937 host_supported: true,
938 jars: ["java/hostjavalib.jar"],
939}
940
941java_import {
942 name: "hostjavalib",
943 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100944 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000945 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000946 device_supported: false,
947 host_supported: true,
948 jars: ["java/hostjavalib.jar"],
949}
950
951java_import {
952 name: "myexports_androidjavalib@current",
953 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100954 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000955 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000956 jars: ["java/androidjavalib.jar"],
957}
958
959java_import {
960 name: "androidjavalib",
961 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100962 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000963 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000964 jars: ["java/androidjavalib.jar"],
965}
966
967java_import {
968 name: "myexports_myjavalib@current",
969 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100970 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000971 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000972 host_supported: true,
973 target: {
974 android: {
975 jars: ["java/android/myjavalib.jar"],
976 },
977 linux_glibc: {
978 jars: ["java/linux_glibc/myjavalib.jar"],
979 },
980 },
981}
982
983java_import {
984 name: "myjavalib",
985 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100986 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000987 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000988 host_supported: true,
989 target: {
990 android: {
991 jars: ["java/android/myjavalib.jar"],
992 },
993 linux_glibc: {
994 jars: ["java/linux_glibc/myjavalib.jar"],
995 },
996 },
997}
998
999module_exports_snapshot {
1000 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001001 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001002 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001003 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001004 target: {
1005 android: {
1006 java_header_libs: ["myexports_androidjavalib@current"],
1007 },
1008 linux_glibc: {
1009 java_header_libs: ["myexports_hostjavalib@current"],
1010 },
1011 },
Paul Duffin865171e2020-03-02 18:38:15 +00001012}
1013`),
1014 checkAllCopyRules(`
1015.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1016.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1017.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1018.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1019`),
1020 )
1021}
Paul Duffindd46f712020-02-10 13:37:10 +00001022
1023func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1024 result := testSdkWithJava(t, `
1025 sdk {
1026 name: "mysdk",
1027 java_sdk_libs: ["myjavalib"],
1028 }
1029
1030 java_sdk_library {
1031 name: "myjavalib",
1032 apex_available: ["//apex_available:anyapex"],
1033 srcs: ["Test.java"],
1034 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001035 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001036 stubs_library_visibility: ["//other"],
1037 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001038 }
1039 `)
1040
Paul Duffin36474d32021-03-12 12:19:43 +00001041 CheckSnapshot(t, result, "mysdk", "",
Paul Duffindd46f712020-02-10 13:37:10 +00001042 checkAndroidBpContents(`
1043// This is auto-generated. DO NOT EDIT.
1044
1045java_sdk_library_import {
1046 name: "mysdk_myjavalib@current",
1047 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001048 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001049 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001050 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001051 public: {
1052 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001053 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001054 current_api: "sdk_library/public/myjavalib.txt",
1055 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001056 sdk_version: "current",
1057 },
1058 system: {
1059 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001060 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001061 current_api: "sdk_library/system/myjavalib.txt",
1062 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001063 sdk_version: "system_current",
1064 },
1065 test: {
1066 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001067 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001068 current_api: "sdk_library/test/myjavalib.txt",
1069 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001070 sdk_version: "test_current",
1071 },
1072}
1073
1074java_sdk_library_import {
1075 name: "myjavalib",
1076 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001077 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001078 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001079 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001080 public: {
1081 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001082 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001083 current_api: "sdk_library/public/myjavalib.txt",
1084 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001085 sdk_version: "current",
1086 },
1087 system: {
1088 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001089 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001090 current_api: "sdk_library/system/myjavalib.txt",
1091 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001092 sdk_version: "system_current",
1093 },
1094 test: {
1095 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001096 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001097 current_api: "sdk_library/test/myjavalib.txt",
1098 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001099 sdk_version: "test_current",
1100 },
1101}
1102
1103sdk_snapshot {
1104 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001105 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001106 java_sdk_libs: ["mysdk_myjavalib@current"],
1107}
1108`),
1109 checkAllCopyRules(`
1110.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001111.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001112.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001113.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001114.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 +01001115.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 +00001116.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001117.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 +01001118.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 +00001119`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001120 checkMergeZips(
1121 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1122 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1123 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001124 )
1125}
Paul Duffin3375e352020-04-28 10:44:03 +01001126
Paul Duffin780c5f42020-05-12 15:52:55 +01001127func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1128 result := testSdkWithJava(t, `
1129 sdk {
1130 name: "mysdk",
1131 java_sdk_libs: ["myjavalib"],
1132 }
1133
1134 java_sdk_library {
1135 name: "myjavalib",
1136 srcs: ["Test.java"],
1137 sdk_version: "none",
1138 system_modules: "none",
1139 }
1140 `)
1141
Paul Duffin36474d32021-03-12 12:19:43 +00001142 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin780c5f42020-05-12 15:52:55 +01001143 checkAndroidBpContents(`
1144// This is auto-generated. DO NOT EDIT.
1145
1146java_sdk_library_import {
1147 name: "mysdk_myjavalib@current",
1148 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001149 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001150 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001151 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001152 public: {
1153 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001154 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001155 current_api: "sdk_library/public/myjavalib.txt",
1156 removed_api: "sdk_library/public/myjavalib-removed.txt",
1157 sdk_version: "none",
1158 },
1159}
1160
1161java_sdk_library_import {
1162 name: "myjavalib",
1163 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001164 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001165 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001166 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001167 public: {
1168 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001169 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001170 current_api: "sdk_library/public/myjavalib.txt",
1171 removed_api: "sdk_library/public/myjavalib-removed.txt",
1172 sdk_version: "none",
1173 },
1174}
1175
1176sdk_snapshot {
1177 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001178 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001179 java_sdk_libs: ["mysdk_myjavalib@current"],
1180}
1181`),
1182 checkAllCopyRules(`
1183.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1184.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001185.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001186`),
1187 checkMergeZips(
1188 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1189 ),
1190 )
1191}
1192
Paul Duffin87a05a32020-05-12 11:50:28 +01001193func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1194 result := testSdkWithJava(t, `
1195 sdk {
1196 name: "mysdk",
1197 java_sdk_libs: ["myjavalib"],
1198 }
1199
1200 java_sdk_library {
1201 name: "myjavalib",
1202 srcs: ["Test.java"],
1203 sdk_version: "module_current",
1204 public: {
1205 enabled: true,
1206 sdk_version: "module_current",
1207 },
1208 }
1209 `)
1210
Paul Duffin36474d32021-03-12 12:19:43 +00001211 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin87a05a32020-05-12 11:50:28 +01001212 checkAndroidBpContents(`
1213// This is auto-generated. DO NOT EDIT.
1214
1215java_sdk_library_import {
1216 name: "mysdk_myjavalib@current",
1217 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001218 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001219 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001220 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001221 public: {
1222 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001223 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001224 current_api: "sdk_library/public/myjavalib.txt",
1225 removed_api: "sdk_library/public/myjavalib-removed.txt",
1226 sdk_version: "module_current",
1227 },
1228}
1229
1230java_sdk_library_import {
1231 name: "myjavalib",
1232 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001233 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001234 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001235 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001236 public: {
1237 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001238 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001239 current_api: "sdk_library/public/myjavalib.txt",
1240 removed_api: "sdk_library/public/myjavalib-removed.txt",
1241 sdk_version: "module_current",
1242 },
1243}
1244
1245sdk_snapshot {
1246 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001247 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001248 java_sdk_libs: ["mysdk_myjavalib@current"],
1249}
1250`),
1251 checkAllCopyRules(`
1252.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1253.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001254.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001255`),
1256 checkMergeZips(
1257 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1258 ),
1259 )
1260}
1261
1262func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001263 result := testSdkWithJava(t, `
1264 sdk {
1265 name: "mysdk",
1266 java_sdk_libs: ["myjavalib"],
1267 }
1268
1269 java_sdk_library {
1270 name: "myjavalib",
1271 apex_available: ["//apex_available:anyapex"],
1272 srcs: ["Test.java"],
1273 sdk_version: "current",
1274 public: {
1275 enabled: true,
1276 },
1277 system: {
1278 enabled: true,
1279 },
1280 }
1281 `)
1282
Paul Duffin36474d32021-03-12 12:19:43 +00001283 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin3375e352020-04-28 10:44:03 +01001284 checkAndroidBpContents(`
1285// This is auto-generated. DO NOT EDIT.
1286
1287java_sdk_library_import {
1288 name: "mysdk_myjavalib@current",
1289 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001290 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001291 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001292 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001293 public: {
1294 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001295 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001296 current_api: "sdk_library/public/myjavalib.txt",
1297 removed_api: "sdk_library/public/myjavalib-removed.txt",
1298 sdk_version: "current",
1299 },
1300 system: {
1301 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001302 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001303 current_api: "sdk_library/system/myjavalib.txt",
1304 removed_api: "sdk_library/system/myjavalib-removed.txt",
1305 sdk_version: "system_current",
1306 },
1307}
1308
1309java_sdk_library_import {
1310 name: "myjavalib",
1311 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001312 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001313 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001314 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001315 public: {
1316 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001317 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001318 current_api: "sdk_library/public/myjavalib.txt",
1319 removed_api: "sdk_library/public/myjavalib-removed.txt",
1320 sdk_version: "current",
1321 },
1322 system: {
1323 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001324 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001325 current_api: "sdk_library/system/myjavalib.txt",
1326 removed_api: "sdk_library/system/myjavalib-removed.txt",
1327 sdk_version: "system_current",
1328 },
1329}
1330
1331sdk_snapshot {
1332 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001333 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001334 java_sdk_libs: ["mysdk_myjavalib@current"],
1335}
1336`),
1337 checkAllCopyRules(`
1338.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1339.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001340.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001341.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1342.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 +01001343.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 +01001344`),
1345 checkMergeZips(
1346 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1347 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1348 ),
1349 )
1350}
Paul Duffin8f265b92020-04-28 14:13:56 +01001351
1352func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1353 result := testSdkWithJava(t, `
1354 sdk {
1355 name: "mysdk",
1356 java_sdk_libs: ["myjavalib"],
1357 }
1358
1359 java_sdk_library {
1360 name: "myjavalib",
1361 apex_available: ["//apex_available:anyapex"],
1362 srcs: ["Test.java"],
1363 sdk_version: "current",
1364 public: {
1365 enabled: true,
1366 },
1367 system: {
1368 enabled: true,
1369 },
1370 module_lib: {
1371 enabled: true,
1372 },
1373 }
1374 `)
1375
Paul Duffin36474d32021-03-12 12:19:43 +00001376 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin8f265b92020-04-28 14:13:56 +01001377 checkAndroidBpContents(`
1378// This is auto-generated. DO NOT EDIT.
1379
1380java_sdk_library_import {
1381 name: "mysdk_myjavalib@current",
1382 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001383 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001384 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001385 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001386 public: {
1387 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001388 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001389 current_api: "sdk_library/public/myjavalib.txt",
1390 removed_api: "sdk_library/public/myjavalib-removed.txt",
1391 sdk_version: "current",
1392 },
1393 system: {
1394 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001395 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001396 current_api: "sdk_library/system/myjavalib.txt",
1397 removed_api: "sdk_library/system/myjavalib-removed.txt",
1398 sdk_version: "system_current",
1399 },
1400 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001401 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001402 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001403 current_api: "sdk_library/module-lib/myjavalib.txt",
1404 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001405 sdk_version: "module_current",
1406 },
1407}
1408
1409java_sdk_library_import {
1410 name: "myjavalib",
1411 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001412 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001413 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001414 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001415 public: {
1416 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001417 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001418 current_api: "sdk_library/public/myjavalib.txt",
1419 removed_api: "sdk_library/public/myjavalib-removed.txt",
1420 sdk_version: "current",
1421 },
1422 system: {
1423 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001424 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001425 current_api: "sdk_library/system/myjavalib.txt",
1426 removed_api: "sdk_library/system/myjavalib-removed.txt",
1427 sdk_version: "system_current",
1428 },
1429 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001430 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001431 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001432 current_api: "sdk_library/module-lib/myjavalib.txt",
1433 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001434 sdk_version: "module_current",
1435 },
1436}
1437
1438sdk_snapshot {
1439 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001440 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001441 java_sdk_libs: ["mysdk_myjavalib@current"],
1442}
1443`),
1444 checkAllCopyRules(`
1445.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1446.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001447.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001448.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1449.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 +01001450.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 +01001451.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 +01001452.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1453.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 +01001454`),
1455 checkMergeZips(
1456 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1457 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001458 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001459 ),
1460 )
1461}
Paul Duffinf7a64332020-05-13 16:54:55 +01001462
Paul Duffin0c5bae52020-06-02 13:00:08 +01001463func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1464 result := testSdkWithJava(t, `
1465 sdk {
1466 name: "mysdk",
1467 java_sdk_libs: ["myjavalib"],
1468 }
1469
1470 java_sdk_library {
1471 name: "myjavalib",
1472 apex_available: ["//apex_available:anyapex"],
1473 srcs: ["Test.java"],
1474 sdk_version: "current",
1475 public: {
1476 enabled: true,
1477 },
1478 system_server: {
1479 enabled: true,
1480 },
1481 }
1482 `)
1483
Paul Duffin36474d32021-03-12 12:19:43 +00001484 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin0c5bae52020-06-02 13:00:08 +01001485 checkAndroidBpContents(`
1486// This is auto-generated. DO NOT EDIT.
1487
1488java_sdk_library_import {
1489 name: "mysdk_myjavalib@current",
1490 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001491 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001492 apex_available: ["//apex_available:anyapex"],
1493 shared_library: true,
1494 public: {
1495 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001496 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001497 current_api: "sdk_library/public/myjavalib.txt",
1498 removed_api: "sdk_library/public/myjavalib-removed.txt",
1499 sdk_version: "current",
1500 },
1501 system_server: {
1502 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001503 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001504 current_api: "sdk_library/system-server/myjavalib.txt",
1505 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1506 sdk_version: "system_server_current",
1507 },
1508}
1509
1510java_sdk_library_import {
1511 name: "myjavalib",
1512 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001513 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001514 apex_available: ["//apex_available:anyapex"],
1515 shared_library: true,
1516 public: {
1517 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001518 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001519 current_api: "sdk_library/public/myjavalib.txt",
1520 removed_api: "sdk_library/public/myjavalib-removed.txt",
1521 sdk_version: "current",
1522 },
1523 system_server: {
1524 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001525 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001526 current_api: "sdk_library/system-server/myjavalib.txt",
1527 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1528 sdk_version: "system_server_current",
1529 },
1530}
1531
1532sdk_snapshot {
1533 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001534 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001535 java_sdk_libs: ["mysdk_myjavalib@current"],
1536}
1537`),
1538 checkAllCopyRules(`
1539.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1540.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1541.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1542.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1543.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1544.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1545`),
1546 checkMergeZips(
1547 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1548 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1549 ),
1550 )
1551}
1552
Paul Duffinf7a64332020-05-13 16:54:55 +01001553func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1554 result := testSdkWithJava(t, `
1555 sdk {
1556 name: "mysdk",
1557 java_sdk_libs: ["myjavalib"],
1558 }
1559
1560 java_sdk_library {
1561 name: "myjavalib",
1562 apex_available: ["//apex_available:anyapex"],
1563 srcs: ["Test.java"],
1564 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001565 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001566 public: {
1567 enabled: true,
1568 },
1569 }
1570 `)
1571
Paul Duffin36474d32021-03-12 12:19:43 +00001572 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinf7a64332020-05-13 16:54:55 +01001573 checkAndroidBpContents(`
1574// This is auto-generated. DO NOT EDIT.
1575
1576java_sdk_library_import {
1577 name: "mysdk_myjavalib@current",
1578 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001579 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001580 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001581 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001582 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001583 public: {
1584 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001585 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001586 current_api: "sdk_library/public/myjavalib.txt",
1587 removed_api: "sdk_library/public/myjavalib-removed.txt",
1588 sdk_version: "current",
1589 },
1590}
1591
1592java_sdk_library_import {
1593 name: "myjavalib",
1594 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001595 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001596 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001597 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001598 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001599 public: {
1600 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001601 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001602 current_api: "sdk_library/public/myjavalib.txt",
1603 removed_api: "sdk_library/public/myjavalib-removed.txt",
1604 sdk_version: "current",
1605 },
1606}
1607
1608sdk_snapshot {
1609 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001610 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001611 java_sdk_libs: ["mysdk_myjavalib@current"],
1612}
1613`),
1614 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001615.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1616.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1617.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001618`),
1619 checkMergeZips(
1620 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1621 ),
1622 )
1623}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001624
1625func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1626 result := testSdkWithJava(t, `
1627 sdk {
1628 name: "mysdk",
1629 java_sdk_libs: ["myjavalib"],
1630 }
1631
1632 java_sdk_library {
1633 name: "myjavalib",
1634 srcs: ["Test.java"],
1635 sdk_version: "current",
1636 public: {
1637 enabled: true,
1638 },
1639 doctag_files: ["docs/known_doctags"],
1640 }
1641
1642 filegroup {
1643 name: "mygroup",
1644 srcs: [":myjavalib{.doctags}"],
1645 }
1646 `)
1647
Paul Duffin36474d32021-03-12 12:19:43 +00001648 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina2ae7e02020-09-11 11:55:00 +01001649 checkAndroidBpContents(`
1650// This is auto-generated. DO NOT EDIT.
1651
1652java_sdk_library_import {
1653 name: "mysdk_myjavalib@current",
1654 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001655 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001656 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001657 shared_library: true,
1658 doctag_files: ["doctags/docs/known_doctags"],
1659 public: {
1660 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001661 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001662 current_api: "sdk_library/public/myjavalib.txt",
1663 removed_api: "sdk_library/public/myjavalib-removed.txt",
1664 sdk_version: "current",
1665 },
1666}
1667
1668java_sdk_library_import {
1669 name: "myjavalib",
1670 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001671 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001672 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001673 shared_library: true,
1674 doctag_files: ["doctags/docs/known_doctags"],
1675 public: {
1676 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001677 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001678 current_api: "sdk_library/public/myjavalib.txt",
1679 removed_api: "sdk_library/public/myjavalib-removed.txt",
1680 sdk_version: "current",
1681 },
1682}
1683
1684sdk_snapshot {
1685 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001686 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001687 java_sdk_libs: ["mysdk_myjavalib@current"],
1688}
1689`),
1690 checkAllCopyRules(`
1691.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1692.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1693.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1694docs/known_doctags -> doctags/docs/known_doctags
1695`),
1696 )
1697}