blob: f8e9fc163c9bfded4b68ed7cea82e6c10f68e77b [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 Duffindd46f712020-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 Duffin8f265b92020-04-28 14:13:56 +010035 "api/module-lib-current.txt": nil,
36 "api/module-lib-removed.txt": nil,
Paul Duffindd46f712020-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 Duffindd46f712020-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 Duffin260bd312020-04-28 14:15:17 +010051java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000052 name: "android_stubs_current",
53}
Paul Duffin260bd312020-04-28 14:15:17 +010054java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000055 name: "android_system_stubs_current",
56}
Paul Duffin260bd312020-04-28 14:15:17 +010057java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000058 name: "android_test_stubs_current",
59}
60java_import {
Paul Duffin8f265b92020-04-28 14:13:56 +010061 name: "android_module_lib_stubs_current",
62}
63java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000064 name: "core-lambda-stubs",
65 sdk_version: "none",
66}
67java_import {
68 name: "ext",
69 sdk_version: "none",
70}
71java_import {
72 name: "framework",
73 sdk_version: "none",
74}
75` + bp
76
Paul Duffind835daa2019-11-30 17:49:09 +000077 return testSdkWithFs(t, bp, fs)
78}
79
Paul Duffina80fdec2019-12-03 15:25:00 +000080// Contains tests for SDK members provided by the java package.
81
82func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +000083 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +000084 sdk {
85 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +090086 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +000087 }
88
89 sdk_snapshot {
90 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +000091 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +000092 }
93
94 sdk_snapshot {
95 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +000096 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +000097 }
98
Jiyong Park0f80c182020-01-31 02:49:53 +090099 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000100 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900101 srcs: ["Test.java"],
102 system_modules: "none",
103 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000104 host_supported: true,
105 }
106
107 java_import {
108 name: "sdkmember_mysdk_1",
109 sdk_member_name: "sdkmember",
110 host_supported: true,
111 }
112
113 java_import {
114 name: "sdkmember_mysdk_2",
115 sdk_member_name: "sdkmember",
116 host_supported: true,
117 }
118
119 java_library {
120 name: "myjavalib",
121 srcs: ["Test.java"],
122 libs: ["sdkmember"],
123 system_modules: "none",
124 sdk_version: "none",
125 compile_dex: true,
126 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000127 apex_available: [
128 "myapex",
129 "myapex2",
130 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000131 }
132
133 apex {
134 name: "myapex",
135 java_libs: ["myjavalib"],
136 uses_sdks: ["mysdk@1"],
137 key: "myapex.key",
138 certificate: ":myapex.cert",
139 }
140
141 apex {
142 name: "myapex2",
143 java_libs: ["myjavalib"],
144 uses_sdks: ["mysdk@2"],
145 key: "myapex.key",
146 certificate: ":myapex.cert",
147 }
148 `)
149
150 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common_myapex").Rule("combineJar").Output
151 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common_myapex2").Rule("combineJar").Output
152
153 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_myapex")
154 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_myapex2")
155
156 // Depending on the uses_sdks value, different libs are linked
157 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
158 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
159}
160
Paul Duffina0dbf432019-12-05 11:25:53 +0000161func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
162 result := testSdkWithJava(t, `
163 sdk {
164 name: "mysdk",
165 java_header_libs: ["myjavalib"],
166 }
167
168 java_library {
169 name: "myjavalib",
170 srcs: ["Test.java"],
171 aidl: {
172 export_include_dirs: ["aidl"],
173 },
174 system_modules: "none",
175 sdk_version: "none",
176 compile_dex: true,
177 host_supported: true,
178 }
179 `)
180
Paul Duffin1356d8c2020-02-25 19:26:33 +0000181 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000182 checkAndroidBpContents(`
183// This is auto-generated. DO NOT EDIT.
184
185java_import {
186 name: "mysdk_myjavalib@current",
187 sdk_member_name: "myjavalib",
188 jars: ["java/myjavalib.jar"],
189}
190
191java_import {
192 name: "myjavalib",
193 prefer: false,
194 jars: ["java/myjavalib.jar"],
195}
196
197sdk_snapshot {
198 name: "mysdk@current",
199 java_header_libs: ["mysdk_myjavalib@current"],
200}
201
202`),
203 checkAllCopyRules(`
204.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
205aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
206`),
207 )
208}
209
210func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
211 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
212 SkipIfNotLinux(t)
213
214 result := testSdkWithJava(t, `
215 sdk {
216 name: "mysdk",
217 device_supported: false,
218 host_supported: true,
219 java_header_libs: ["myjavalib"],
220 }
221
222 java_library {
223 name: "myjavalib",
224 device_supported: false,
225 host_supported: true,
226 srcs: ["Test.java"],
227 aidl: {
228 export_include_dirs: ["aidl"],
229 },
230 system_modules: "none",
231 sdk_version: "none",
232 compile_dex: true,
233 }
234 `)
235
Paul Duffin1356d8c2020-02-25 19:26:33 +0000236 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000237 checkAndroidBpContents(`
238// This is auto-generated. DO NOT EDIT.
239
240java_import {
241 name: "mysdk_myjavalib@current",
242 sdk_member_name: "myjavalib",
243 device_supported: false,
244 host_supported: true,
245 jars: ["java/myjavalib.jar"],
246}
247
248java_import {
249 name: "myjavalib",
250 prefer: false,
251 device_supported: false,
252 host_supported: true,
253 jars: ["java/myjavalib.jar"],
254}
255
256sdk_snapshot {
257 name: "mysdk@current",
258 device_supported: false,
259 host_supported: true,
260 java_header_libs: ["mysdk_myjavalib@current"],
261}
262`),
263 checkAllCopyRules(`
264.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
265aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
266`),
267 )
268}
269
Paul Duffina04c1072020-03-02 10:16:35 +0000270func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
271 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
272 SkipIfNotLinux(t)
273
274 result := testSdkWithJava(t, `
275 sdk {
276 name: "mysdk",
277 host_supported: true,
278 java_header_libs: ["myjavalib"],
279 }
280
281 java_library {
282 name: "myjavalib",
283 host_supported: true,
284 srcs: ["Test.java"],
285 system_modules: "none",
286 sdk_version: "none",
287 compile_dex: true,
288 }
289 `)
290
291 result.CheckSnapshot("mysdk", "",
292 checkAndroidBpContents(`
293// This is auto-generated. DO NOT EDIT.
294
295java_import {
296 name: "mysdk_myjavalib@current",
297 sdk_member_name: "myjavalib",
298 host_supported: true,
299 target: {
300 android: {
301 jars: ["java/android/myjavalib.jar"],
302 },
303 linux_glibc: {
304 jars: ["java/linux_glibc/myjavalib.jar"],
305 },
306 },
307}
308
309java_import {
310 name: "myjavalib",
311 prefer: false,
312 host_supported: true,
313 target: {
314 android: {
315 jars: ["java/android/myjavalib.jar"],
316 },
317 linux_glibc: {
318 jars: ["java/linux_glibc/myjavalib.jar"],
319 },
320 },
321}
322
323sdk_snapshot {
324 name: "mysdk@current",
325 host_supported: true,
326 java_header_libs: ["mysdk_myjavalib@current"],
327}
328`),
329 checkAllCopyRules(`
330.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
331.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
332`),
333 )
334}
335
Paul Duffina0dbf432019-12-05 11:25:53 +0000336func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000337 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000338 module_exports {
339 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000340 java_libs: ["myjavalib"],
341 }
342
343 java_library {
344 name: "myjavalib",
345 srcs: ["Test.java"],
346 aidl: {
347 export_include_dirs: ["aidl"],
348 },
349 system_modules: "none",
350 sdk_version: "none",
351 compile_dex: true,
352 host_supported: true,
353 }
354 `)
355
Paul Duffin1356d8c2020-02-25 19:26:33 +0000356 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000357 checkAndroidBpContents(`
358// This is auto-generated. DO NOT EDIT.
359
360java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000361 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000362 sdk_member_name: "myjavalib",
363 jars: ["java/myjavalib.jar"],
364}
365
366java_import {
367 name: "myjavalib",
368 prefer: false,
369 jars: ["java/myjavalib.jar"],
370}
371
Paul Duffine6029182019-12-16 17:43:48 +0000372module_exports_snapshot {
373 name: "myexports@current",
374 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000375}
376
377`),
378 checkAllCopyRules(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000379.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000380aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
381`),
382 )
383}
384
Paul Duffina0dbf432019-12-05 11:25:53 +0000385func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffina80fdec2019-12-03 15:25:00 +0000386 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
387 SkipIfNotLinux(t)
388
Paul Duffind835daa2019-11-30 17:49:09 +0000389 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000390 module_exports {
391 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000392 device_supported: false,
393 host_supported: true,
394 java_libs: ["myjavalib"],
395 }
396
397 java_library {
398 name: "myjavalib",
399 device_supported: false,
400 host_supported: true,
401 srcs: ["Test.java"],
402 aidl: {
403 export_include_dirs: ["aidl"],
404 },
405 system_modules: "none",
406 sdk_version: "none",
407 compile_dex: true,
408 }
409 `)
410
Paul Duffin1356d8c2020-02-25 19:26:33 +0000411 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000412 checkAndroidBpContents(`
413// This is auto-generated. DO NOT EDIT.
414
415java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000416 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000417 sdk_member_name: "myjavalib",
418 device_supported: false,
419 host_supported: true,
420 jars: ["java/myjavalib.jar"],
421}
422
423java_import {
424 name: "myjavalib",
425 prefer: false,
426 device_supported: false,
427 host_supported: true,
428 jars: ["java/myjavalib.jar"],
429}
430
Paul Duffine6029182019-12-16 17:43:48 +0000431module_exports_snapshot {
432 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000433 device_supported: false,
434 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000435 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000436}
437`),
438 checkAllCopyRules(`
439.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
440aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
441`),
442 )
443}
444
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000445func TestSnapshotWithJavaTest(t *testing.T) {
446 result := testSdkWithJava(t, `
447 module_exports {
448 name: "myexports",
449 java_tests: ["myjavatests"],
450 }
451
452 java_test {
453 name: "myjavatests",
454 srcs: ["Test.java"],
455 system_modules: "none",
456 sdk_version: "none",
457 compile_dex: true,
458 host_supported: true,
459 }
460 `)
461
Paul Duffin1356d8c2020-02-25 19:26:33 +0000462 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000463 checkAndroidBpContents(`
464// This is auto-generated. DO NOT EDIT.
465
466java_test_import {
467 name: "myexports_myjavatests@current",
468 sdk_member_name: "myjavatests",
469 jars: ["java/myjavatests.jar"],
470 test_config: "java/myjavatests-AndroidTest.xml",
471}
472
473java_test_import {
474 name: "myjavatests",
475 prefer: false,
476 jars: ["java/myjavatests.jar"],
477 test_config: "java/myjavatests-AndroidTest.xml",
478}
479
480module_exports_snapshot {
481 name: "myexports@current",
482 java_tests: ["myexports_myjavatests@current"],
483}
484`),
485 checkAllCopyRules(`
486.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
487.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
488`),
489 )
490}
491
492func TestHostSnapshotWithJavaTest(t *testing.T) {
493 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
494 SkipIfNotLinux(t)
495
496 result := testSdkWithJava(t, `
497 module_exports {
498 name: "myexports",
499 device_supported: false,
500 host_supported: true,
501 java_tests: ["myjavatests"],
502 }
503
504 java_test {
505 name: "myjavatests",
506 device_supported: false,
507 host_supported: true,
508 srcs: ["Test.java"],
509 system_modules: "none",
510 sdk_version: "none",
511 compile_dex: true,
512 }
513 `)
514
Paul Duffin1356d8c2020-02-25 19:26:33 +0000515 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000516 checkAndroidBpContents(`
517// This is auto-generated. DO NOT EDIT.
518
519java_test_import {
520 name: "myexports_myjavatests@current",
521 sdk_member_name: "myjavatests",
522 device_supported: false,
523 host_supported: true,
524 jars: ["java/myjavatests.jar"],
525 test_config: "java/myjavatests-AndroidTest.xml",
526}
527
528java_test_import {
529 name: "myjavatests",
530 prefer: false,
531 device_supported: false,
532 host_supported: true,
533 jars: ["java/myjavatests.jar"],
534 test_config: "java/myjavatests-AndroidTest.xml",
535}
536
537module_exports_snapshot {
538 name: "myexports@current",
539 device_supported: false,
540 host_supported: true,
541 java_tests: ["myexports_myjavatests@current"],
542}
543`),
544 checkAllCopyRules(`
545.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
546.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
547`),
548 )
549}
550
Paul Duffind835daa2019-11-30 17:49:09 +0000551func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult {
552 t.Helper()
553
554 fs := map[string][]byte{
555 "foo/bar/Foo.java": nil,
556 "stubs-sources/foo/bar/Foo.java": nil,
557 }
558 return testSdkWithFs(t, bp, fs)
559}
560
Paul Duffina80fdec2019-12-03 15:25:00 +0000561// Note: This test does not verify that a droidstubs can be referenced, either
562// directly or indirectly from an APEX as droidstubs can never be a part of an
563// apex.
564func TestBasicSdkWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000565 testSdkWithDroidstubs(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000566 sdk {
567 name: "mysdk",
568 stubs_sources: ["mystub"],
569 }
570 sdk_snapshot {
571 name: "mysdk@10",
572 stubs_sources: ["mystub_mysdk@10"],
573 }
574 prebuilt_stubs_sources {
575 name: "mystub_mysdk@10",
576 sdk_member_name: "mystub",
577 srcs: ["stubs-sources/foo/bar/Foo.java"],
578 }
579 droidstubs {
580 name: "mystub",
581 srcs: ["foo/bar/Foo.java"],
582 sdk_version: "none",
583 system_modules: "none",
584 }
585 java_library {
586 name: "myjavalib",
587 srcs: [":mystub"],
588 sdk_version: "none",
589 system_modules: "none",
590 }
591 `)
592}
593
594func TestSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000595 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000596 module_exports {
597 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000598 stubs_sources: ["myjavaapistubs"],
599 }
600
601 droidstubs {
602 name: "myjavaapistubs",
603 srcs: ["foo/bar/Foo.java"],
604 system_modules: "none",
605 sdk_version: "none",
606 }
607 `)
608
Paul Duffin1356d8c2020-02-25 19:26:33 +0000609 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000610 checkAndroidBpContents(`
611// This is auto-generated. DO NOT EDIT.
612
613prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000614 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000615 sdk_member_name: "myjavaapistubs",
616 srcs: ["java/myjavaapistubs_stubs_sources"],
617}
618
619prebuilt_stubs_sources {
620 name: "myjavaapistubs",
621 prefer: false,
622 srcs: ["java/myjavaapistubs_stubs_sources"],
623}
624
Paul Duffine6029182019-12-16 17:43:48 +0000625module_exports_snapshot {
626 name: "myexports@current",
627 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000628}
629
630`),
631 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100632 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000633 )
634}
635
636func TestHostSnapshotWithDroidstubs(t *testing.T) {
637 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
638 SkipIfNotLinux(t)
639
Paul Duffind835daa2019-11-30 17:49:09 +0000640 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000641 module_exports {
642 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000643 device_supported: false,
644 host_supported: true,
645 stubs_sources: ["myjavaapistubs"],
646 }
647
648 droidstubs {
649 name: "myjavaapistubs",
650 device_supported: false,
651 host_supported: true,
652 srcs: ["foo/bar/Foo.java"],
653 system_modules: "none",
654 sdk_version: "none",
655 }
656 `)
657
Paul Duffin1356d8c2020-02-25 19:26:33 +0000658 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000659 checkAndroidBpContents(`
660// This is auto-generated. DO NOT EDIT.
661
662prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000663 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000664 sdk_member_name: "myjavaapistubs",
665 device_supported: false,
666 host_supported: true,
667 srcs: ["java/myjavaapistubs_stubs_sources"],
668}
669
670prebuilt_stubs_sources {
671 name: "myjavaapistubs",
672 prefer: false,
673 device_supported: false,
674 host_supported: true,
675 srcs: ["java/myjavaapistubs_stubs_sources"],
676}
677
Paul Duffine6029182019-12-16 17:43:48 +0000678module_exports_snapshot {
679 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000680 device_supported: false,
681 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000682 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000683}
684`),
685 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100686 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000687 )
688}
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000689
690func TestSnapshotWithJavaSystemModules(t *testing.T) {
691 result := testSdkWithJava(t, `
692 sdk {
693 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000694 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000695 java_system_modules: ["my-system-modules"],
696 }
697
698 java_system_modules {
699 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000700 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000701 }
702
703 java_library {
704 name: "system-module",
705 srcs: ["Test.java"],
706 sdk_version: "none",
707 system_modules: "none",
708 }
Paul Duffin72910952020-01-20 18:16:30 +0000709
710 java_library {
711 name: "exported-system-module",
712 srcs: ["Test.java"],
713 sdk_version: "none",
714 system_modules: "none",
715 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000716 `)
717
Paul Duffin1356d8c2020-02-25 19:26:33 +0000718 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000719 checkAndroidBpContents(`
720// This is auto-generated. DO NOT EDIT.
721
722java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000723 name: "mysdk_exported-system-module@current",
724 sdk_member_name: "exported-system-module",
725 jars: ["java/exported-system-module.jar"],
726}
727
728java_import {
729 name: "exported-system-module",
730 prefer: false,
731 jars: ["java/exported-system-module.jar"],
732}
733
734java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000735 name: "mysdk_system-module@current",
736 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000737 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000738 jars: ["java/system-module.jar"],
739}
740
741java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000742 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000743 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000744 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000745 jars: ["java/system-module.jar"],
746}
747
748java_system_modules_import {
749 name: "mysdk_my-system-modules@current",
750 sdk_member_name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000751 libs: [
752 "mysdk_system-module@current",
753 "mysdk_exported-system-module@current",
754 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000755}
756
757java_system_modules_import {
758 name: "my-system-modules",
759 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000760 libs: [
761 "mysdk_system-module",
762 "exported-system-module",
763 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000764}
765
766sdk_snapshot {
767 name: "mysdk@current",
Paul Duffin72910952020-01-20 18:16:30 +0000768 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000769 java_system_modules: ["mysdk_my-system-modules@current"],
770}
771`),
Paul Duffin72910952020-01-20 18:16:30 +0000772 checkAllCopyRules(`
773.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
774.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
775`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000776 )
777}
778
779func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
780 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
781 SkipIfNotLinux(t)
782
783 result := testSdkWithJava(t, `
784 sdk {
785 name: "mysdk",
786 device_supported: false,
787 host_supported: true,
788 java_system_modules: ["my-system-modules"],
789 }
790
791 java_system_modules {
792 name: "my-system-modules",
793 device_supported: false,
794 host_supported: true,
795 libs: ["system-module"],
796 }
797
798 java_library {
799 name: "system-module",
800 device_supported: false,
801 host_supported: true,
802 srcs: ["Test.java"],
803 sdk_version: "none",
804 system_modules: "none",
805 }
806 `)
807
Paul Duffin1356d8c2020-02-25 19:26:33 +0000808 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000809 checkAndroidBpContents(`
810// This is auto-generated. DO NOT EDIT.
811
812java_import {
813 name: "mysdk_system-module@current",
814 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000815 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000816 device_supported: false,
817 host_supported: true,
818 jars: ["java/system-module.jar"],
819}
820
821java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000822 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000823 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000824 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000825 device_supported: false,
826 host_supported: true,
827 jars: ["java/system-module.jar"],
828}
829
830java_system_modules_import {
831 name: "mysdk_my-system-modules@current",
832 sdk_member_name: "my-system-modules",
833 device_supported: false,
834 host_supported: true,
835 libs: ["mysdk_system-module@current"],
836}
837
838java_system_modules_import {
839 name: "my-system-modules",
840 prefer: false,
841 device_supported: false,
842 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000843 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000844}
845
846sdk_snapshot {
847 name: "mysdk@current",
848 device_supported: false,
849 host_supported: true,
850 java_system_modules: ["mysdk_my-system-modules@current"],
851}
852`),
853 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
854 )
855}
Paul Duffin865171e2020-03-02 18:38:15 +0000856
857func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
858 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
859 SkipIfNotLinux(t)
860
861 result := testSdkWithJava(t, `
862 module_exports {
863 name: "myexports",
864 host_supported: true,
865 java_libs: ["myjavalib"],
866 target: {
867 android: {
868 java_header_libs: ["androidjavalib"],
869 },
870 host: {
871 java_header_libs: ["hostjavalib"],
872 },
873 },
874 }
875
876 java_library {
877 name: "myjavalib",
878 host_supported: true,
879 srcs: ["Test.java"],
880 system_modules: "none",
881 sdk_version: "none",
882 }
883
884 java_library {
885 name: "androidjavalib",
886 srcs: ["Test.java"],
887 system_modules: "none",
888 sdk_version: "none",
889 }
890
891 java_library_host {
892 name: "hostjavalib",
893 srcs: ["Test.java"],
894 }
895 `)
896
897 result.CheckSnapshot("myexports", "",
898 checkAndroidBpContents(`
899// This is auto-generated. DO NOT EDIT.
900
901java_import {
902 name: "myexports_hostjavalib@current",
903 sdk_member_name: "hostjavalib",
904 device_supported: false,
905 host_supported: true,
906 jars: ["java/hostjavalib.jar"],
907}
908
909java_import {
910 name: "hostjavalib",
911 prefer: false,
912 device_supported: false,
913 host_supported: true,
914 jars: ["java/hostjavalib.jar"],
915}
916
917java_import {
918 name: "myexports_androidjavalib@current",
919 sdk_member_name: "androidjavalib",
920 jars: ["java/androidjavalib.jar"],
921}
922
923java_import {
924 name: "androidjavalib",
925 prefer: false,
926 jars: ["java/androidjavalib.jar"],
927}
928
929java_import {
930 name: "myexports_myjavalib@current",
931 sdk_member_name: "myjavalib",
932 host_supported: true,
933 target: {
934 android: {
935 jars: ["java/android/myjavalib.jar"],
936 },
937 linux_glibc: {
938 jars: ["java/linux_glibc/myjavalib.jar"],
939 },
940 },
941}
942
943java_import {
944 name: "myjavalib",
945 prefer: false,
946 host_supported: true,
947 target: {
948 android: {
949 jars: ["java/android/myjavalib.jar"],
950 },
951 linux_glibc: {
952 jars: ["java/linux_glibc/myjavalib.jar"],
953 },
954 },
955}
956
957module_exports_snapshot {
958 name: "myexports@current",
959 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000960 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000961 target: {
962 android: {
963 java_header_libs: ["myexports_androidjavalib@current"],
964 },
965 linux_glibc: {
966 java_header_libs: ["myexports_hostjavalib@current"],
967 },
968 },
Paul Duffin865171e2020-03-02 18:38:15 +0000969}
970`),
971 checkAllCopyRules(`
972.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
973.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
974.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
975.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
976`),
977 )
978}
Paul Duffindd46f712020-02-10 13:37:10 +0000979
980func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
981 result := testSdkWithJava(t, `
982 sdk {
983 name: "mysdk",
984 java_sdk_libs: ["myjavalib"],
985 }
986
987 java_sdk_library {
988 name: "myjavalib",
989 apex_available: ["//apex_available:anyapex"],
990 srcs: ["Test.java"],
991 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100992 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100993 stubs_library_visibility: ["//other"],
994 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +0000995 }
996 `)
997
998 result.CheckSnapshot("mysdk", "",
999 checkAndroidBpContents(`
1000// This is auto-generated. DO NOT EDIT.
1001
1002java_sdk_library_import {
1003 name: "mysdk_myjavalib@current",
1004 sdk_member_name: "myjavalib",
1005 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001006 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001007 public: {
1008 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001009 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001010 current_api: "sdk_library/public/myjavalib.txt",
1011 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001012 sdk_version: "current",
1013 },
1014 system: {
1015 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001016 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001017 current_api: "sdk_library/system/myjavalib.txt",
1018 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001019 sdk_version: "system_current",
1020 },
1021 test: {
1022 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001023 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001024 current_api: "sdk_library/test/myjavalib.txt",
1025 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001026 sdk_version: "test_current",
1027 },
1028}
1029
1030java_sdk_library_import {
1031 name: "myjavalib",
1032 prefer: false,
1033 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001034 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001035 public: {
1036 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001037 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001038 current_api: "sdk_library/public/myjavalib.txt",
1039 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001040 sdk_version: "current",
1041 },
1042 system: {
1043 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001044 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001045 current_api: "sdk_library/system/myjavalib.txt",
1046 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001047 sdk_version: "system_current",
1048 },
1049 test: {
1050 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001051 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001052 current_api: "sdk_library/test/myjavalib.txt",
1053 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-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 Duffin1fd005d2020-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 Duffindd46f712020-02-10 13:37:10 +00001067.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-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 Duffindd46f712020-02-10 13:37:10 +00001070.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-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 Duffindd46f712020-02-10 13:37:10 +00001073`),
Paul Duffin3d1248c2020-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 Duffindd46f712020-02-10 13:37:10 +00001078 )
1079}
Paul Duffin3375e352020-04-28 10:44:03 +01001080
Paul Duffin780c5f42020-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",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001103 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001104 public: {
1105 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1106 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1107 current_api: "sdk_library/public/myjavalib.txt",
1108 removed_api: "sdk_library/public/myjavalib-removed.txt",
1109 sdk_version: "none",
1110 },
1111}
1112
1113java_sdk_library_import {
1114 name: "myjavalib",
1115 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001116 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001117 public: {
1118 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1119 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1120 current_api: "sdk_library/public/myjavalib.txt",
1121 removed_api: "sdk_library/public/myjavalib-removed.txt",
1122 sdk_version: "none",
1123 },
1124}
1125
1126sdk_snapshot {
1127 name: "mysdk@current",
1128 java_sdk_libs: ["mysdk_myjavalib@current"],
1129}
1130`),
1131 checkAllCopyRules(`
1132.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1133.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1134.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1135`),
1136 checkMergeZips(
1137 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1138 ),
1139 )
1140}
1141
Paul Duffin87a05a32020-05-12 11:50:28 +01001142func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1143 result := testSdkWithJava(t, `
1144 sdk {
1145 name: "mysdk",
1146 java_sdk_libs: ["myjavalib"],
1147 }
1148
1149 java_sdk_library {
1150 name: "myjavalib",
1151 srcs: ["Test.java"],
1152 sdk_version: "module_current",
1153 public: {
1154 enabled: true,
1155 sdk_version: "module_current",
1156 },
1157 }
1158 `)
1159
1160 result.CheckSnapshot("mysdk", "",
1161 checkAndroidBpContents(`
1162// This is auto-generated. DO NOT EDIT.
1163
1164java_sdk_library_import {
1165 name: "mysdk_myjavalib@current",
1166 sdk_member_name: "myjavalib",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001167 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001168 public: {
1169 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1170 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1171 current_api: "sdk_library/public/myjavalib.txt",
1172 removed_api: "sdk_library/public/myjavalib-removed.txt",
1173 sdk_version: "module_current",
1174 },
1175}
1176
1177java_sdk_library_import {
1178 name: "myjavalib",
1179 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001180 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001181 public: {
1182 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1183 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1184 current_api: "sdk_library/public/myjavalib.txt",
1185 removed_api: "sdk_library/public/myjavalib-removed.txt",
1186 sdk_version: "module_current",
1187 },
1188}
1189
1190sdk_snapshot {
1191 name: "mysdk@current",
1192 java_sdk_libs: ["mysdk_myjavalib@current"],
1193}
1194`),
1195 checkAllCopyRules(`
1196.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1197.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1198.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1199`),
1200 checkMergeZips(
1201 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1202 ),
1203 )
1204}
1205
1206func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001207 result := testSdkWithJava(t, `
1208 sdk {
1209 name: "mysdk",
1210 java_sdk_libs: ["myjavalib"],
1211 }
1212
1213 java_sdk_library {
1214 name: "myjavalib",
1215 apex_available: ["//apex_available:anyapex"],
1216 srcs: ["Test.java"],
1217 sdk_version: "current",
1218 public: {
1219 enabled: true,
1220 },
1221 system: {
1222 enabled: true,
1223 },
1224 }
1225 `)
1226
1227 result.CheckSnapshot("mysdk", "",
1228 checkAndroidBpContents(`
1229// This is auto-generated. DO NOT EDIT.
1230
1231java_sdk_library_import {
1232 name: "mysdk_myjavalib@current",
1233 sdk_member_name: "myjavalib",
1234 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001235 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001236 public: {
1237 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1238 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1239 current_api: "sdk_library/public/myjavalib.txt",
1240 removed_api: "sdk_library/public/myjavalib-removed.txt",
1241 sdk_version: "current",
1242 },
1243 system: {
1244 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1245 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1246 current_api: "sdk_library/system/myjavalib.txt",
1247 removed_api: "sdk_library/system/myjavalib-removed.txt",
1248 sdk_version: "system_current",
1249 },
1250}
1251
1252java_sdk_library_import {
1253 name: "myjavalib",
1254 prefer: false,
1255 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001256 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001257 public: {
1258 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1259 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1260 current_api: "sdk_library/public/myjavalib.txt",
1261 removed_api: "sdk_library/public/myjavalib-removed.txt",
1262 sdk_version: "current",
1263 },
1264 system: {
1265 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1266 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1267 current_api: "sdk_library/system/myjavalib.txt",
1268 removed_api: "sdk_library/system/myjavalib-removed.txt",
1269 sdk_version: "system_current",
1270 },
1271}
1272
1273sdk_snapshot {
1274 name: "mysdk@current",
1275 java_sdk_libs: ["mysdk_myjavalib@current"],
1276}
1277`),
1278 checkAllCopyRules(`
1279.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1280.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1281.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1282.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1283.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1284.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib-removed.txt
1285`),
1286 checkMergeZips(
1287 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1288 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1289 ),
1290 )
1291}
Paul Duffin8f265b92020-04-28 14:13:56 +01001292
1293func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1294 result := testSdkWithJava(t, `
1295 sdk {
1296 name: "mysdk",
1297 java_sdk_libs: ["myjavalib"],
1298 }
1299
1300 java_sdk_library {
1301 name: "myjavalib",
1302 apex_available: ["//apex_available:anyapex"],
1303 srcs: ["Test.java"],
1304 sdk_version: "current",
1305 public: {
1306 enabled: true,
1307 },
1308 system: {
1309 enabled: true,
1310 },
1311 module_lib: {
1312 enabled: true,
1313 },
1314 }
1315 `)
1316
1317 result.CheckSnapshot("mysdk", "",
1318 checkAndroidBpContents(`
1319// This is auto-generated. DO NOT EDIT.
1320
1321java_sdk_library_import {
1322 name: "mysdk_myjavalib@current",
1323 sdk_member_name: "myjavalib",
1324 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001325 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001326 public: {
1327 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1328 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1329 current_api: "sdk_library/public/myjavalib.txt",
1330 removed_api: "sdk_library/public/myjavalib-removed.txt",
1331 sdk_version: "current",
1332 },
1333 system: {
1334 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1335 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1336 current_api: "sdk_library/system/myjavalib.txt",
1337 removed_api: "sdk_library/system/myjavalib-removed.txt",
1338 sdk_version: "system_current",
1339 },
1340 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001341 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1342 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1343 current_api: "sdk_library/module-lib/myjavalib.txt",
1344 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001345 sdk_version: "module_current",
1346 },
1347}
1348
1349java_sdk_library_import {
1350 name: "myjavalib",
1351 prefer: false,
1352 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001353 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001354 public: {
1355 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1356 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1357 current_api: "sdk_library/public/myjavalib.txt",
1358 removed_api: "sdk_library/public/myjavalib-removed.txt",
1359 sdk_version: "current",
1360 },
1361 system: {
1362 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1363 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1364 current_api: "sdk_library/system/myjavalib.txt",
1365 removed_api: "sdk_library/system/myjavalib-removed.txt",
1366 sdk_version: "system_current",
1367 },
1368 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001369 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1370 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1371 current_api: "sdk_library/module-lib/myjavalib.txt",
1372 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001373 sdk_version: "module_current",
1374 },
1375}
1376
1377sdk_snapshot {
1378 name: "mysdk@current",
1379 java_sdk_libs: ["mysdk_myjavalib@current"],
1380}
1381`),
1382 checkAllCopyRules(`
1383.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1384.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1385.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1386.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1387.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1388.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin6b836ba2020-05-13 19:19:49 +01001389.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
1390.intermediates/myjavalib.api.module_lib/android_common/myjavalib.api.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1391.intermediates/myjavalib.api.module_lib/android_common/myjavalib.api.module_lib_api.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001392`),
1393 checkMergeZips(
1394 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1395 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001396 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001397 ),
1398 )
1399}
Paul Duffinf7a64332020-05-13 16:54:55 +01001400
1401func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1402 result := testSdkWithJava(t, `
1403 sdk {
1404 name: "mysdk",
1405 java_sdk_libs: ["myjavalib"],
1406 }
1407
1408 java_sdk_library {
1409 name: "myjavalib",
1410 apex_available: ["//apex_available:anyapex"],
1411 srcs: ["Test.java"],
1412 sdk_version: "current",
1413 naming_scheme: "framework-modules",
1414 public: {
1415 enabled: true,
1416 },
1417 }
1418 `)
1419
1420 result.CheckSnapshot("mysdk", "",
1421 checkAndroidBpContents(`
1422// This is auto-generated. DO NOT EDIT.
1423
1424java_sdk_library_import {
1425 name: "mysdk_myjavalib@current",
1426 sdk_member_name: "myjavalib",
1427 apex_available: ["//apex_available:anyapex"],
1428 naming_scheme: "framework-modules",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001429 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001430 public: {
1431 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1432 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1433 current_api: "sdk_library/public/myjavalib.txt",
1434 removed_api: "sdk_library/public/myjavalib-removed.txt",
1435 sdk_version: "current",
1436 },
1437}
1438
1439java_sdk_library_import {
1440 name: "myjavalib",
1441 prefer: false,
1442 apex_available: ["//apex_available:anyapex"],
1443 naming_scheme: "framework-modules",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001444 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001445 public: {
1446 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1447 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1448 current_api: "sdk_library/public/myjavalib.txt",
1449 removed_api: "sdk_library/public/myjavalib-removed.txt",
1450 sdk_version: "current",
1451 },
1452}
1453
1454sdk_snapshot {
1455 name: "mysdk@current",
1456 java_sdk_libs: ["mysdk_myjavalib@current"],
1457}
1458`),
1459 checkAllCopyRules(`
1460.intermediates/myjavalib-stubs-publicapi/android_common/javac/myjavalib-stubs-publicapi.jar -> sdk_library/public/myjavalib-stubs.jar
1461.intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_api.txt -> sdk_library/public/myjavalib.txt
1462.intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_api.txt -> sdk_library/public/myjavalib-removed.txt
1463`),
1464 checkMergeZips(
1465 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1466 ),
1467 )
1468}