blob: e223e56e7f1fe13eb849809347f654fea7f6fd3b [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"
19)
20
Paul Duffind835daa2019-11-30 17:49:09 +000021func testSdkWithJava(t *testing.T, bp string) *testSdkResult {
22 t.Helper()
23
24 fs := map[string][]byte{
25 "Test.java": nil,
26 "aidl/foo/bar/Test.aidl": nil,
Paul Duffin61871622020-02-10 13:37:10 +000027
28 // For java_sdk_library
29 "api/current.txt": nil,
30 "api/removed.txt": nil,
31 "api/system-current.txt": nil,
32 "api/system-removed.txt": nil,
33 "api/test-current.txt": nil,
34 "api/test-removed.txt": nil,
Paul Duffin6d7f0a72020-04-28 14:13:56 +010035 "api/module-lib-current.txt": nil,
36 "api/module-lib-removed.txt": nil,
Paul Duffin61871622020-02-10 13:37:10 +000037 "build/soong/scripts/gen-java-current-api-files.sh": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000038 }
Paul Duffin61871622020-02-10 13:37:10 +000039
40 // for java_sdk_library tests
41 bp = `
42java_system_modules_import {
43 name: "core-current-stubs-system-modules",
44}
45java_system_modules_import {
46 name: "core-platform-api-stubs-system-modules",
47}
48java_import {
49 name: "core.platform.api.stubs",
50}
Paul Duffin608bcf72020-04-28 14:15:17 +010051java_import {
Paul Duffin61871622020-02-10 13:37:10 +000052 name: "android_stubs_current",
53}
Paul Duffin608bcf72020-04-28 14:15:17 +010054java_import {
Paul Duffin61871622020-02-10 13:37:10 +000055 name: "android_system_stubs_current",
56}
Paul Duffin608bcf72020-04-28 14:15:17 +010057java_import {
Paul Duffin61871622020-02-10 13:37:10 +000058 name: "android_test_stubs_current",
59}
60java_import {
Paul Duffin6d7f0a72020-04-28 14:13:56 +010061 name: "android_module_lib_stubs_current",
62}
63java_import {
Anton Hanssona9a31732020-05-21 10:38:30 +010064 name: "core-lambda-stubs",
Paul Duffin61871622020-02-10 13:37:10 +000065 sdk_version: "none",
66}
67java_import {
Anton Hanssona9a31732020-05-21 10:38:30 +010068 name: "ext",
Paul Duffin61871622020-02-10 13:37:10 +000069 sdk_version: "none",
70}
71java_import {
Anton Hanssona9a31732020-05-21 10:38:30 +010072 name: "framework",
Paul Duffin61871622020-02-10 13:37:10 +000073 sdk_version: "none",
74}
Anton Hanssona9a31732020-05-21 10:38:30 +010075java_library {
76 name: "stub-annotations",
77}
Paul Duffin61871622020-02-10 13:37:10 +000078` + bp
79
Paul Duffind835daa2019-11-30 17:49:09 +000080 return testSdkWithFs(t, bp, fs)
81}
82
Paul Duffina80fdec2019-12-03 15:25:00 +000083// Contains tests for SDK members provided by the java package.
84
85func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +000086 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +000087 sdk {
88 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +090089 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +000090 }
91
92 sdk_snapshot {
93 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +000094 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +000095 }
96
97 sdk_snapshot {
98 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +000099 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000100 }
101
Jiyong Park0f80c182020-01-31 02:49:53 +0900102 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000103 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900104 srcs: ["Test.java"],
105 system_modules: "none",
106 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000107 host_supported: true,
108 }
109
110 java_import {
111 name: "sdkmember_mysdk_1",
112 sdk_member_name: "sdkmember",
113 host_supported: true,
114 }
115
116 java_import {
117 name: "sdkmember_mysdk_2",
118 sdk_member_name: "sdkmember",
119 host_supported: true,
120 }
121
122 java_library {
123 name: "myjavalib",
124 srcs: ["Test.java"],
125 libs: ["sdkmember"],
126 system_modules: "none",
127 sdk_version: "none",
128 compile_dex: true,
129 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000130 apex_available: [
131 "myapex",
132 "myapex2",
133 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000134 }
135
136 apex {
137 name: "myapex",
138 java_libs: ["myjavalib"],
139 uses_sdks: ["mysdk@1"],
140 key: "myapex.key",
141 certificate: ":myapex.cert",
142 }
143
144 apex {
145 name: "myapex2",
146 java_libs: ["myjavalib"],
147 uses_sdks: ["mysdk@2"],
148 key: "myapex.key",
149 certificate: ":myapex.cert",
150 }
151 `)
152
153 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common_myapex").Rule("combineJar").Output
154 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common_myapex2").Rule("combineJar").Output
155
156 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_myapex")
157 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_myapex2")
158
159 // Depending on the uses_sdks value, different libs are linked
160 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
161 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
162}
163
Paul Duffina0dbf432019-12-05 11:25:53 +0000164func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
165 result := testSdkWithJava(t, `
166 sdk {
167 name: "mysdk",
168 java_header_libs: ["myjavalib"],
169 }
170
171 java_library {
172 name: "myjavalib",
173 srcs: ["Test.java"],
174 aidl: {
175 export_include_dirs: ["aidl"],
176 },
177 system_modules: "none",
178 sdk_version: "none",
179 compile_dex: true,
180 host_supported: true,
181 }
182 `)
183
Paul Duffinb0cbec32020-02-25 19:26:33 +0000184 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000185 checkAndroidBpContents(`
186// This is auto-generated. DO NOT EDIT.
187
188java_import {
189 name: "mysdk_myjavalib@current",
190 sdk_member_name: "myjavalib",
191 jars: ["java/myjavalib.jar"],
192}
193
194java_import {
195 name: "myjavalib",
196 prefer: false,
197 jars: ["java/myjavalib.jar"],
198}
199
200sdk_snapshot {
201 name: "mysdk@current",
202 java_header_libs: ["mysdk_myjavalib@current"],
203}
204
205`),
206 checkAllCopyRules(`
207.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
208aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
209`),
210 )
211}
212
213func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
214 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
215 SkipIfNotLinux(t)
216
217 result := testSdkWithJava(t, `
218 sdk {
219 name: "mysdk",
220 device_supported: false,
221 host_supported: true,
222 java_header_libs: ["myjavalib"],
223 }
224
225 java_library {
226 name: "myjavalib",
227 device_supported: false,
228 host_supported: true,
229 srcs: ["Test.java"],
230 aidl: {
231 export_include_dirs: ["aidl"],
232 },
233 system_modules: "none",
234 sdk_version: "none",
235 compile_dex: true,
236 }
237 `)
238
Paul Duffinb0cbec32020-02-25 19:26:33 +0000239 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000240 checkAndroidBpContents(`
241// This is auto-generated. DO NOT EDIT.
242
243java_import {
244 name: "mysdk_myjavalib@current",
245 sdk_member_name: "myjavalib",
246 device_supported: false,
247 host_supported: true,
248 jars: ["java/myjavalib.jar"],
249}
250
251java_import {
252 name: "myjavalib",
253 prefer: false,
254 device_supported: false,
255 host_supported: true,
256 jars: ["java/myjavalib.jar"],
257}
258
259sdk_snapshot {
260 name: "mysdk@current",
261 device_supported: false,
262 host_supported: true,
263 java_header_libs: ["mysdk_myjavalib@current"],
264}
265`),
266 checkAllCopyRules(`
267.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
268aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
269`),
270 )
271}
272
Paul Duffin9b358d72020-03-02 10:16:35 +0000273func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
274 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
275 SkipIfNotLinux(t)
276
277 result := testSdkWithJava(t, `
278 sdk {
279 name: "mysdk",
280 host_supported: true,
281 java_header_libs: ["myjavalib"],
282 }
283
284 java_library {
285 name: "myjavalib",
286 host_supported: true,
287 srcs: ["Test.java"],
288 system_modules: "none",
289 sdk_version: "none",
290 compile_dex: true,
291 }
292 `)
293
294 result.CheckSnapshot("mysdk", "",
295 checkAndroidBpContents(`
296// This is auto-generated. DO NOT EDIT.
297
298java_import {
299 name: "mysdk_myjavalib@current",
300 sdk_member_name: "myjavalib",
301 host_supported: true,
302 target: {
303 android: {
304 jars: ["java/android/myjavalib.jar"],
305 },
306 linux_glibc: {
307 jars: ["java/linux_glibc/myjavalib.jar"],
308 },
309 },
310}
311
312java_import {
313 name: "myjavalib",
314 prefer: false,
315 host_supported: true,
316 target: {
317 android: {
318 jars: ["java/android/myjavalib.jar"],
319 },
320 linux_glibc: {
321 jars: ["java/linux_glibc/myjavalib.jar"],
322 },
323 },
324}
325
326sdk_snapshot {
327 name: "mysdk@current",
328 host_supported: true,
329 java_header_libs: ["mysdk_myjavalib@current"],
330}
331`),
332 checkAllCopyRules(`
333.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
334.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
335`),
336 )
337}
338
Paul Duffina0dbf432019-12-05 11:25:53 +0000339func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000340 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000341 module_exports {
342 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000343 java_libs: ["myjavalib"],
344 }
345
346 java_library {
347 name: "myjavalib",
348 srcs: ["Test.java"],
349 aidl: {
350 export_include_dirs: ["aidl"],
351 },
352 system_modules: "none",
353 sdk_version: "none",
354 compile_dex: true,
355 host_supported: true,
356 }
357 `)
358
Paul Duffinb0cbec32020-02-25 19:26:33 +0000359 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000360 checkAndroidBpContents(`
361// This is auto-generated. DO NOT EDIT.
362
363java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000364 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000365 sdk_member_name: "myjavalib",
366 jars: ["java/myjavalib.jar"],
367}
368
369java_import {
370 name: "myjavalib",
371 prefer: false,
372 jars: ["java/myjavalib.jar"],
373}
374
Paul Duffine6029182019-12-16 17:43:48 +0000375module_exports_snapshot {
376 name: "myexports@current",
377 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000378}
379
380`),
381 checkAllCopyRules(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000382.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000383aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
384`),
385 )
386}
387
Paul Duffina0dbf432019-12-05 11:25:53 +0000388func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffina80fdec2019-12-03 15:25:00 +0000389 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
390 SkipIfNotLinux(t)
391
Paul Duffind835daa2019-11-30 17:49:09 +0000392 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000393 module_exports {
394 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000395 device_supported: false,
396 host_supported: true,
397 java_libs: ["myjavalib"],
398 }
399
400 java_library {
401 name: "myjavalib",
402 device_supported: false,
403 host_supported: true,
404 srcs: ["Test.java"],
405 aidl: {
406 export_include_dirs: ["aidl"],
407 },
408 system_modules: "none",
409 sdk_version: "none",
410 compile_dex: true,
411 }
412 `)
413
Paul Duffinb0cbec32020-02-25 19:26:33 +0000414 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000415 checkAndroidBpContents(`
416// This is auto-generated. DO NOT EDIT.
417
418java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000419 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000420 sdk_member_name: "myjavalib",
421 device_supported: false,
422 host_supported: true,
423 jars: ["java/myjavalib.jar"],
424}
425
426java_import {
427 name: "myjavalib",
428 prefer: false,
429 device_supported: false,
430 host_supported: true,
431 jars: ["java/myjavalib.jar"],
432}
433
Paul Duffine6029182019-12-16 17:43:48 +0000434module_exports_snapshot {
435 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000436 device_supported: false,
437 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000438 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000439}
440`),
441 checkAllCopyRules(`
442.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
443aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
444`),
445 )
446}
447
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000448func TestSnapshotWithJavaTest(t *testing.T) {
449 result := testSdkWithJava(t, `
450 module_exports {
451 name: "myexports",
452 java_tests: ["myjavatests"],
453 }
454
455 java_test {
456 name: "myjavatests",
457 srcs: ["Test.java"],
458 system_modules: "none",
459 sdk_version: "none",
460 compile_dex: true,
461 host_supported: true,
462 }
463 `)
464
Paul Duffinb0cbec32020-02-25 19:26:33 +0000465 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000466 checkAndroidBpContents(`
467// This is auto-generated. DO NOT EDIT.
468
469java_test_import {
470 name: "myexports_myjavatests@current",
471 sdk_member_name: "myjavatests",
472 jars: ["java/myjavatests.jar"],
473 test_config: "java/myjavatests-AndroidTest.xml",
474}
475
476java_test_import {
477 name: "myjavatests",
478 prefer: false,
479 jars: ["java/myjavatests.jar"],
480 test_config: "java/myjavatests-AndroidTest.xml",
481}
482
483module_exports_snapshot {
484 name: "myexports@current",
485 java_tests: ["myexports_myjavatests@current"],
486}
487`),
488 checkAllCopyRules(`
489.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
490.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
491`),
492 )
493}
494
495func TestHostSnapshotWithJavaTest(t *testing.T) {
496 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
497 SkipIfNotLinux(t)
498
499 result := testSdkWithJava(t, `
500 module_exports {
501 name: "myexports",
502 device_supported: false,
503 host_supported: true,
504 java_tests: ["myjavatests"],
505 }
506
507 java_test {
508 name: "myjavatests",
509 device_supported: false,
510 host_supported: true,
511 srcs: ["Test.java"],
512 system_modules: "none",
513 sdk_version: "none",
514 compile_dex: true,
515 }
516 `)
517
Paul Duffinb0cbec32020-02-25 19:26:33 +0000518 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000519 checkAndroidBpContents(`
520// This is auto-generated. DO NOT EDIT.
521
522java_test_import {
523 name: "myexports_myjavatests@current",
524 sdk_member_name: "myjavatests",
525 device_supported: false,
526 host_supported: true,
527 jars: ["java/myjavatests.jar"],
528 test_config: "java/myjavatests-AndroidTest.xml",
529}
530
531java_test_import {
532 name: "myjavatests",
533 prefer: false,
534 device_supported: false,
535 host_supported: true,
536 jars: ["java/myjavatests.jar"],
537 test_config: "java/myjavatests-AndroidTest.xml",
538}
539
540module_exports_snapshot {
541 name: "myexports@current",
542 device_supported: false,
543 host_supported: true,
544 java_tests: ["myexports_myjavatests@current"],
545}
546`),
547 checkAllCopyRules(`
548.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
549.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
550`),
551 )
552}
553
Paul Duffind835daa2019-11-30 17:49:09 +0000554func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult {
555 t.Helper()
556
557 fs := map[string][]byte{
558 "foo/bar/Foo.java": nil,
559 "stubs-sources/foo/bar/Foo.java": nil,
560 }
561 return testSdkWithFs(t, bp, fs)
562}
563
Paul Duffina80fdec2019-12-03 15:25:00 +0000564// Note: This test does not verify that a droidstubs can be referenced, either
565// directly or indirectly from an APEX as droidstubs can never be a part of an
566// apex.
567func TestBasicSdkWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000568 testSdkWithDroidstubs(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000569 sdk {
570 name: "mysdk",
571 stubs_sources: ["mystub"],
572 }
573 sdk_snapshot {
574 name: "mysdk@10",
575 stubs_sources: ["mystub_mysdk@10"],
576 }
577 prebuilt_stubs_sources {
578 name: "mystub_mysdk@10",
579 sdk_member_name: "mystub",
580 srcs: ["stubs-sources/foo/bar/Foo.java"],
581 }
582 droidstubs {
583 name: "mystub",
584 srcs: ["foo/bar/Foo.java"],
585 sdk_version: "none",
586 system_modules: "none",
587 }
588 java_library {
589 name: "myjavalib",
590 srcs: [":mystub"],
591 sdk_version: "none",
592 system_modules: "none",
593 }
594 `)
595}
596
597func TestSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000598 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000599 module_exports {
600 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000601 stubs_sources: ["myjavaapistubs"],
602 }
603
604 droidstubs {
605 name: "myjavaapistubs",
606 srcs: ["foo/bar/Foo.java"],
607 system_modules: "none",
608 sdk_version: "none",
609 }
610 `)
611
Paul Duffinb0cbec32020-02-25 19:26:33 +0000612 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000613 checkAndroidBpContents(`
614// This is auto-generated. DO NOT EDIT.
615
616prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000617 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000618 sdk_member_name: "myjavaapistubs",
619 srcs: ["java/myjavaapistubs_stubs_sources"],
620}
621
622prebuilt_stubs_sources {
623 name: "myjavaapistubs",
624 prefer: false,
625 srcs: ["java/myjavaapistubs_stubs_sources"],
626}
627
Paul Duffine6029182019-12-16 17:43:48 +0000628module_exports_snapshot {
629 name: "myexports@current",
630 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000631}
632
633`),
634 checkAllCopyRules(""),
Paul Duffinf488ef22020-04-09 00:10:17 +0100635 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000636 )
637}
638
639func TestHostSnapshotWithDroidstubs(t *testing.T) {
640 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
641 SkipIfNotLinux(t)
642
Paul Duffind835daa2019-11-30 17:49:09 +0000643 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000644 module_exports {
645 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000646 device_supported: false,
647 host_supported: true,
648 stubs_sources: ["myjavaapistubs"],
649 }
650
651 droidstubs {
652 name: "myjavaapistubs",
653 device_supported: false,
654 host_supported: true,
655 srcs: ["foo/bar/Foo.java"],
656 system_modules: "none",
657 sdk_version: "none",
658 }
659 `)
660
Paul Duffinb0cbec32020-02-25 19:26:33 +0000661 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000662 checkAndroidBpContents(`
663// This is auto-generated. DO NOT EDIT.
664
665prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000666 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000667 sdk_member_name: "myjavaapistubs",
668 device_supported: false,
669 host_supported: true,
670 srcs: ["java/myjavaapistubs_stubs_sources"],
671}
672
673prebuilt_stubs_sources {
674 name: "myjavaapistubs",
675 prefer: false,
676 device_supported: false,
677 host_supported: true,
678 srcs: ["java/myjavaapistubs_stubs_sources"],
679}
680
Paul Duffine6029182019-12-16 17:43:48 +0000681module_exports_snapshot {
682 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000683 device_supported: false,
684 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000685 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000686}
687`),
688 checkAllCopyRules(""),
Paul Duffinf488ef22020-04-09 00:10:17 +0100689 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000690 )
691}
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000692
693func TestSnapshotWithJavaSystemModules(t *testing.T) {
694 result := testSdkWithJava(t, `
695 sdk {
696 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000697 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000698 java_system_modules: ["my-system-modules"],
699 }
700
701 java_system_modules {
702 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000703 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000704 }
705
706 java_library {
707 name: "system-module",
708 srcs: ["Test.java"],
709 sdk_version: "none",
710 system_modules: "none",
711 }
Paul Duffin72910952020-01-20 18:16:30 +0000712
713 java_library {
714 name: "exported-system-module",
715 srcs: ["Test.java"],
716 sdk_version: "none",
717 system_modules: "none",
718 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000719 `)
720
Paul Duffinb0cbec32020-02-25 19:26:33 +0000721 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000722 checkAndroidBpContents(`
723// This is auto-generated. DO NOT EDIT.
724
725java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000726 name: "mysdk_exported-system-module@current",
727 sdk_member_name: "exported-system-module",
728 jars: ["java/exported-system-module.jar"],
729}
730
731java_import {
732 name: "exported-system-module",
733 prefer: false,
734 jars: ["java/exported-system-module.jar"],
735}
736
737java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000738 name: "mysdk_system-module@current",
739 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000740 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000741 jars: ["java/system-module.jar"],
742}
743
744java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000745 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000746 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000747 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000748 jars: ["java/system-module.jar"],
749}
750
751java_system_modules_import {
752 name: "mysdk_my-system-modules@current",
753 sdk_member_name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000754 libs: [
755 "mysdk_system-module@current",
756 "mysdk_exported-system-module@current",
757 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000758}
759
760java_system_modules_import {
761 name: "my-system-modules",
762 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000763 libs: [
764 "mysdk_system-module",
765 "exported-system-module",
766 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000767}
768
769sdk_snapshot {
770 name: "mysdk@current",
Paul Duffin72910952020-01-20 18:16:30 +0000771 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000772 java_system_modules: ["mysdk_my-system-modules@current"],
773}
774`),
Paul Duffin72910952020-01-20 18:16:30 +0000775 checkAllCopyRules(`
776.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
777.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
778`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000779 )
780}
781
782func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
783 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
784 SkipIfNotLinux(t)
785
786 result := testSdkWithJava(t, `
787 sdk {
788 name: "mysdk",
789 device_supported: false,
790 host_supported: true,
791 java_system_modules: ["my-system-modules"],
792 }
793
794 java_system_modules {
795 name: "my-system-modules",
796 device_supported: false,
797 host_supported: true,
798 libs: ["system-module"],
799 }
800
801 java_library {
802 name: "system-module",
803 device_supported: false,
804 host_supported: true,
805 srcs: ["Test.java"],
806 sdk_version: "none",
807 system_modules: "none",
808 }
809 `)
810
Paul Duffinb0cbec32020-02-25 19:26:33 +0000811 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000812 checkAndroidBpContents(`
813// This is auto-generated. DO NOT EDIT.
814
815java_import {
816 name: "mysdk_system-module@current",
817 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000818 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000819 device_supported: false,
820 host_supported: true,
821 jars: ["java/system-module.jar"],
822}
823
824java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000825 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000826 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000827 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000828 device_supported: false,
829 host_supported: true,
830 jars: ["java/system-module.jar"],
831}
832
833java_system_modules_import {
834 name: "mysdk_my-system-modules@current",
835 sdk_member_name: "my-system-modules",
836 device_supported: false,
837 host_supported: true,
838 libs: ["mysdk_system-module@current"],
839}
840
841java_system_modules_import {
842 name: "my-system-modules",
843 prefer: false,
844 device_supported: false,
845 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000846 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000847}
848
849sdk_snapshot {
850 name: "mysdk@current",
851 device_supported: false,
852 host_supported: true,
853 java_system_modules: ["mysdk_my-system-modules@current"],
854}
855`),
856 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
857 )
858}
Paul Duffinacdd3082020-03-02 18:38:15 +0000859
860func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
861 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
862 SkipIfNotLinux(t)
863
864 result := testSdkWithJava(t, `
865 module_exports {
866 name: "myexports",
867 host_supported: true,
868 java_libs: ["myjavalib"],
869 target: {
870 android: {
871 java_header_libs: ["androidjavalib"],
872 },
873 host: {
874 java_header_libs: ["hostjavalib"],
875 },
876 },
877 }
878
879 java_library {
880 name: "myjavalib",
881 host_supported: true,
882 srcs: ["Test.java"],
883 system_modules: "none",
884 sdk_version: "none",
885 }
886
887 java_library {
888 name: "androidjavalib",
889 srcs: ["Test.java"],
890 system_modules: "none",
891 sdk_version: "none",
892 }
893
894 java_library_host {
895 name: "hostjavalib",
896 srcs: ["Test.java"],
897 }
898 `)
899
900 result.CheckSnapshot("myexports", "",
901 checkAndroidBpContents(`
902// This is auto-generated. DO NOT EDIT.
903
904java_import {
905 name: "myexports_hostjavalib@current",
906 sdk_member_name: "hostjavalib",
907 device_supported: false,
908 host_supported: true,
909 jars: ["java/hostjavalib.jar"],
910}
911
912java_import {
913 name: "hostjavalib",
914 prefer: false,
915 device_supported: false,
916 host_supported: true,
917 jars: ["java/hostjavalib.jar"],
918}
919
920java_import {
921 name: "myexports_androidjavalib@current",
922 sdk_member_name: "androidjavalib",
923 jars: ["java/androidjavalib.jar"],
924}
925
926java_import {
927 name: "androidjavalib",
928 prefer: false,
929 jars: ["java/androidjavalib.jar"],
930}
931
932java_import {
933 name: "myexports_myjavalib@current",
934 sdk_member_name: "myjavalib",
935 host_supported: true,
936 target: {
937 android: {
938 jars: ["java/android/myjavalib.jar"],
939 },
940 linux_glibc: {
941 jars: ["java/linux_glibc/myjavalib.jar"],
942 },
943 },
944}
945
946java_import {
947 name: "myjavalib",
948 prefer: false,
949 host_supported: true,
950 target: {
951 android: {
952 jars: ["java/android/myjavalib.jar"],
953 },
954 linux_glibc: {
955 jars: ["java/linux_glibc/myjavalib.jar"],
956 },
957 },
958}
959
960module_exports_snapshot {
961 name: "myexports@current",
962 host_supported: true,
Paul Duffin35dbafc2020-03-11 18:17:42 +0000963 java_libs: ["myexports_myjavalib@current"],
Paul Duffinacdd3082020-03-02 18:38:15 +0000964 target: {
965 android: {
966 java_header_libs: ["myexports_androidjavalib@current"],
967 },
968 linux_glibc: {
969 java_header_libs: ["myexports_hostjavalib@current"],
970 },
971 },
Paul Duffinacdd3082020-03-02 18:38:15 +0000972}
973`),
974 checkAllCopyRules(`
975.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
976.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
977.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
978.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
979`),
980 )
981}
Paul Duffin61871622020-02-10 13:37:10 +0000982
983func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
984 result := testSdkWithJava(t, `
985 sdk {
986 name: "mysdk",
987 java_sdk_libs: ["myjavalib"],
988 }
989
990 java_sdk_library {
991 name: "myjavalib",
992 apex_available: ["//apex_available:anyapex"],
993 srcs: ["Test.java"],
994 sdk_version: "current",
Paul Duffin344c4ee2020-04-29 23:35:13 +0100995 stubs_library_visibility: ["//other"],
996 stubs_source_visibility: ["//another"],
Paul Duffin61871622020-02-10 13:37:10 +0000997 }
998 `)
999
1000 result.CheckSnapshot("mysdk", "",
1001 checkAndroidBpContents(`
1002// This is auto-generated. DO NOT EDIT.
1003
1004java_sdk_library_import {
1005 name: "mysdk_myjavalib@current",
1006 sdk_member_name: "myjavalib",
1007 apex_available: ["//apex_available:anyapex"],
1008 public: {
1009 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinf488ef22020-04-09 00:10:17 +01001010 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin75dcc802020-04-09 01:08:11 +01001011 current_api: "sdk_library/public/myjavalib.txt",
1012 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffin61871622020-02-10 13:37:10 +00001013 sdk_version: "current",
1014 },
1015 system: {
1016 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinf488ef22020-04-09 00:10:17 +01001017 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin75dcc802020-04-09 01:08:11 +01001018 current_api: "sdk_library/system/myjavalib.txt",
1019 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffin61871622020-02-10 13:37:10 +00001020 sdk_version: "system_current",
1021 },
1022 test: {
1023 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinf488ef22020-04-09 00:10:17 +01001024 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin75dcc802020-04-09 01:08:11 +01001025 current_api: "sdk_library/test/myjavalib.txt",
1026 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffin61871622020-02-10 13:37:10 +00001027 sdk_version: "test_current",
1028 },
1029}
1030
1031java_sdk_library_import {
1032 name: "myjavalib",
1033 prefer: false,
1034 apex_available: ["//apex_available:anyapex"],
1035 public: {
1036 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinf488ef22020-04-09 00:10:17 +01001037 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin75dcc802020-04-09 01:08:11 +01001038 current_api: "sdk_library/public/myjavalib.txt",
1039 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffin61871622020-02-10 13:37:10 +00001040 sdk_version: "current",
1041 },
1042 system: {
1043 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinf488ef22020-04-09 00:10:17 +01001044 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin75dcc802020-04-09 01:08:11 +01001045 current_api: "sdk_library/system/myjavalib.txt",
1046 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffin61871622020-02-10 13:37:10 +00001047 sdk_version: "system_current",
1048 },
1049 test: {
1050 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinf488ef22020-04-09 00:10:17 +01001051 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin75dcc802020-04-09 01:08:11 +01001052 current_api: "sdk_library/test/myjavalib.txt",
1053 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffin61871622020-02-10 13:37:10 +00001054 sdk_version: "test_current",
1055 },
1056}
1057
1058sdk_snapshot {
1059 name: "mysdk@current",
1060 java_sdk_libs: ["mysdk_myjavalib@current"],
1061}
1062`),
1063 checkAllCopyRules(`
1064.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin75dcc802020-04-09 01:08:11 +01001065.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1066.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin61871622020-02-10 13:37:10 +00001067.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin75dcc802020-04-09 01:08:11 +01001068.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1069.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin61871622020-02-10 13:37:10 +00001070.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin75dcc802020-04-09 01:08:11 +01001071.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1072.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib-removed.txt
Paul Duffin61871622020-02-10 13:37:10 +00001073`),
Paul Duffinf488ef22020-04-09 00:10:17 +01001074 checkMergeZips(
1075 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1076 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1077 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffin61871622020-02-10 13:37:10 +00001078 )
1079}
Paul Duffin3a254982020-04-28 10:44:03 +01001080
Paul Duffin153501f2020-05-12 15:52:55 +01001081func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1082 result := testSdkWithJava(t, `
1083 sdk {
1084 name: "mysdk",
1085 java_sdk_libs: ["myjavalib"],
1086 }
1087
1088 java_sdk_library {
1089 name: "myjavalib",
1090 srcs: ["Test.java"],
1091 sdk_version: "none",
1092 system_modules: "none",
1093 }
1094 `)
1095
1096 result.CheckSnapshot("mysdk", "",
1097 checkAndroidBpContents(`
1098// This is auto-generated. DO NOT EDIT.
1099
1100java_sdk_library_import {
1101 name: "mysdk_myjavalib@current",
1102 sdk_member_name: "myjavalib",
1103 public: {
1104 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1105 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1106 current_api: "sdk_library/public/myjavalib.txt",
1107 removed_api: "sdk_library/public/myjavalib-removed.txt",
1108 sdk_version: "none",
1109 },
1110}
1111
1112java_sdk_library_import {
1113 name: "myjavalib",
1114 prefer: false,
1115 public: {
1116 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1117 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1118 current_api: "sdk_library/public/myjavalib.txt",
1119 removed_api: "sdk_library/public/myjavalib-removed.txt",
1120 sdk_version: "none",
1121 },
1122}
1123
1124sdk_snapshot {
1125 name: "mysdk@current",
1126 java_sdk_libs: ["mysdk_myjavalib@current"],
1127}
1128`),
1129 checkAllCopyRules(`
1130.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1131.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1132.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1133`),
1134 checkMergeZips(
1135 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1136 ),
1137 )
1138}
1139
Paul Duffin080f5ee2020-05-12 11:50:28 +01001140func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1141 result := testSdkWithJava(t, `
1142 sdk {
1143 name: "mysdk",
1144 java_sdk_libs: ["myjavalib"],
1145 }
1146
1147 java_sdk_library {
1148 name: "myjavalib",
1149 srcs: ["Test.java"],
1150 sdk_version: "module_current",
1151 public: {
1152 enabled: true,
1153 sdk_version: "module_current",
1154 },
1155 }
1156 `)
1157
1158 result.CheckSnapshot("mysdk", "",
1159 checkAndroidBpContents(`
1160// This is auto-generated. DO NOT EDIT.
1161
1162java_sdk_library_import {
1163 name: "mysdk_myjavalib@current",
1164 sdk_member_name: "myjavalib",
1165 public: {
1166 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1167 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1168 current_api: "sdk_library/public/myjavalib.txt",
1169 removed_api: "sdk_library/public/myjavalib-removed.txt",
1170 sdk_version: "module_current",
1171 },
1172}
1173
1174java_sdk_library_import {
1175 name: "myjavalib",
1176 prefer: false,
1177 public: {
1178 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1179 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1180 current_api: "sdk_library/public/myjavalib.txt",
1181 removed_api: "sdk_library/public/myjavalib-removed.txt",
1182 sdk_version: "module_current",
1183 },
1184}
1185
1186sdk_snapshot {
1187 name: "mysdk@current",
1188 java_sdk_libs: ["mysdk_myjavalib@current"],
1189}
1190`),
1191 checkAllCopyRules(`
1192.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1193.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1194.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1195`),
1196 checkMergeZips(
1197 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1198 ),
1199 )
1200}
1201
1202func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3a254982020-04-28 10:44:03 +01001203 result := testSdkWithJava(t, `
1204 sdk {
1205 name: "mysdk",
1206 java_sdk_libs: ["myjavalib"],
1207 }
1208
1209 java_sdk_library {
1210 name: "myjavalib",
1211 apex_available: ["//apex_available:anyapex"],
1212 srcs: ["Test.java"],
1213 sdk_version: "current",
1214 public: {
1215 enabled: true,
1216 },
1217 system: {
1218 enabled: true,
1219 },
1220 }
1221 `)
1222
1223 result.CheckSnapshot("mysdk", "",
1224 checkAndroidBpContents(`
1225// This is auto-generated. DO NOT EDIT.
1226
1227java_sdk_library_import {
1228 name: "mysdk_myjavalib@current",
1229 sdk_member_name: "myjavalib",
1230 apex_available: ["//apex_available:anyapex"],
1231 public: {
1232 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1233 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1234 current_api: "sdk_library/public/myjavalib.txt",
1235 removed_api: "sdk_library/public/myjavalib-removed.txt",
1236 sdk_version: "current",
1237 },
1238 system: {
1239 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1240 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1241 current_api: "sdk_library/system/myjavalib.txt",
1242 removed_api: "sdk_library/system/myjavalib-removed.txt",
1243 sdk_version: "system_current",
1244 },
1245}
1246
1247java_sdk_library_import {
1248 name: "myjavalib",
1249 prefer: false,
1250 apex_available: ["//apex_available:anyapex"],
1251 public: {
1252 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1253 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1254 current_api: "sdk_library/public/myjavalib.txt",
1255 removed_api: "sdk_library/public/myjavalib-removed.txt",
1256 sdk_version: "current",
1257 },
1258 system: {
1259 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1260 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1261 current_api: "sdk_library/system/myjavalib.txt",
1262 removed_api: "sdk_library/system/myjavalib-removed.txt",
1263 sdk_version: "system_current",
1264 },
1265}
1266
1267sdk_snapshot {
1268 name: "mysdk@current",
1269 java_sdk_libs: ["mysdk_myjavalib@current"],
1270}
1271`),
1272 checkAllCopyRules(`
1273.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1274.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1275.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1276.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1277.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1278.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib-removed.txt
1279`),
1280 checkMergeZips(
1281 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1282 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1283 ),
1284 )
1285}
Paul Duffin6d7f0a72020-04-28 14:13:56 +01001286
1287func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1288 result := testSdkWithJava(t, `
1289 sdk {
1290 name: "mysdk",
1291 java_sdk_libs: ["myjavalib"],
1292 }
1293
1294 java_sdk_library {
1295 name: "myjavalib",
1296 apex_available: ["//apex_available:anyapex"],
1297 srcs: ["Test.java"],
1298 sdk_version: "current",
1299 public: {
1300 enabled: true,
1301 },
1302 system: {
1303 enabled: true,
1304 },
1305 module_lib: {
1306 enabled: true,
1307 },
1308 }
1309 `)
1310
1311 result.CheckSnapshot("mysdk", "",
1312 checkAndroidBpContents(`
1313// This is auto-generated. DO NOT EDIT.
1314
1315java_sdk_library_import {
1316 name: "mysdk_myjavalib@current",
1317 sdk_member_name: "myjavalib",
1318 apex_available: ["//apex_available:anyapex"],
1319 public: {
1320 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1321 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1322 current_api: "sdk_library/public/myjavalib.txt",
1323 removed_api: "sdk_library/public/myjavalib-removed.txt",
1324 sdk_version: "current",
1325 },
1326 system: {
1327 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1328 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1329 current_api: "sdk_library/system/myjavalib.txt",
1330 removed_api: "sdk_library/system/myjavalib-removed.txt",
1331 sdk_version: "system_current",
1332 },
1333 module_lib: {
Paul Duffin0f270632020-05-13 19:19:49 +01001334 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1335 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1336 current_api: "sdk_library/module-lib/myjavalib.txt",
1337 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin6d7f0a72020-04-28 14:13:56 +01001338 sdk_version: "module_current",
1339 },
1340}
1341
1342java_sdk_library_import {
1343 name: "myjavalib",
1344 prefer: false,
1345 apex_available: ["//apex_available:anyapex"],
1346 public: {
1347 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1348 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1349 current_api: "sdk_library/public/myjavalib.txt",
1350 removed_api: "sdk_library/public/myjavalib-removed.txt",
1351 sdk_version: "current",
1352 },
1353 system: {
1354 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1355 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1356 current_api: "sdk_library/system/myjavalib.txt",
1357 removed_api: "sdk_library/system/myjavalib-removed.txt",
1358 sdk_version: "system_current",
1359 },
1360 module_lib: {
Paul Duffin0f270632020-05-13 19:19:49 +01001361 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1362 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1363 current_api: "sdk_library/module-lib/myjavalib.txt",
1364 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin6d7f0a72020-04-28 14:13:56 +01001365 sdk_version: "module_current",
1366 },
1367}
1368
1369sdk_snapshot {
1370 name: "mysdk@current",
1371 java_sdk_libs: ["mysdk_myjavalib@current"],
1372}
1373`),
1374 checkAllCopyRules(`
1375.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1376.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1377.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1378.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1379.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1380.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin0f270632020-05-13 19:19:49 +01001381.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
1382.intermediates/myjavalib.api.module_lib/android_common/myjavalib.api.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1383.intermediates/myjavalib.api.module_lib/android_common/myjavalib.api.module_lib_api.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin6d7f0a72020-04-28 14:13:56 +01001384`),
1385 checkMergeZips(
1386 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1387 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin0f270632020-05-13 19:19:49 +01001388 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin6d7f0a72020-04-28 14:13:56 +01001389 ),
1390 )
1391}
Paul Duffinf8e08b22020-05-13 16:54:55 +01001392
1393func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1394 result := testSdkWithJava(t, `
1395 sdk {
1396 name: "mysdk",
1397 java_sdk_libs: ["myjavalib"],
1398 }
1399
1400 java_sdk_library {
1401 name: "myjavalib",
1402 apex_available: ["//apex_available:anyapex"],
1403 srcs: ["Test.java"],
1404 sdk_version: "current",
1405 naming_scheme: "framework-modules",
1406 public: {
1407 enabled: true,
1408 },
1409 }
1410 `)
1411
1412 result.CheckSnapshot("mysdk", "",
1413 checkAndroidBpContents(`
1414// This is auto-generated. DO NOT EDIT.
1415
1416java_sdk_library_import {
1417 name: "mysdk_myjavalib@current",
1418 sdk_member_name: "myjavalib",
1419 apex_available: ["//apex_available:anyapex"],
1420 naming_scheme: "framework-modules",
1421 public: {
1422 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1423 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1424 current_api: "sdk_library/public/myjavalib.txt",
1425 removed_api: "sdk_library/public/myjavalib-removed.txt",
1426 sdk_version: "current",
1427 },
1428}
1429
1430java_sdk_library_import {
1431 name: "myjavalib",
1432 prefer: false,
1433 apex_available: ["//apex_available:anyapex"],
1434 naming_scheme: "framework-modules",
1435 public: {
1436 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1437 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1438 current_api: "sdk_library/public/myjavalib.txt",
1439 removed_api: "sdk_library/public/myjavalib-removed.txt",
1440 sdk_version: "current",
1441 },
1442}
1443
1444sdk_snapshot {
1445 name: "mysdk@current",
1446 java_sdk_libs: ["mysdk_myjavalib@current"],
1447}
1448`),
1449 checkAllCopyRules(`
1450.intermediates/myjavalib-stubs-publicapi/android_common/javac/myjavalib-stubs-publicapi.jar -> sdk_library/public/myjavalib-stubs.jar
1451.intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_api.txt -> sdk_library/public/myjavalib.txt
1452.intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_api.txt -> sdk_library/public/myjavalib-removed.txt
1453`),
1454 checkMergeZips(
1455 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1456 ),
1457 )
1458}