blob: bbd63849443d8b3a7cc575eac5b5cc0aae81e059 [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 Duffin4911a892020-04-29 23:35:13 +0100992 stubs_library_visibility: ["//other"],
993 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +0000994 }
995 `)
996
997 result.CheckSnapshot("mysdk", "",
998 checkAndroidBpContents(`
999// This is auto-generated. DO NOT EDIT.
1000
1001java_sdk_library_import {
1002 name: "mysdk_myjavalib@current",
1003 sdk_member_name: "myjavalib",
1004 apex_available: ["//apex_available:anyapex"],
1005 public: {
1006 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001007 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001008 current_api: "sdk_library/public/myjavalib.txt",
1009 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001010 sdk_version: "current",
1011 },
1012 system: {
1013 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001014 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001015 current_api: "sdk_library/system/myjavalib.txt",
1016 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001017 sdk_version: "system_current",
1018 },
1019 test: {
1020 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001021 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001022 current_api: "sdk_library/test/myjavalib.txt",
1023 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001024 sdk_version: "test_current",
1025 },
1026}
1027
1028java_sdk_library_import {
1029 name: "myjavalib",
1030 prefer: false,
1031 apex_available: ["//apex_available:anyapex"],
1032 public: {
1033 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001034 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001035 current_api: "sdk_library/public/myjavalib.txt",
1036 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001037 sdk_version: "current",
1038 },
1039 system: {
1040 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001041 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001042 current_api: "sdk_library/system/myjavalib.txt",
1043 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001044 sdk_version: "system_current",
1045 },
1046 test: {
1047 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001048 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001049 current_api: "sdk_library/test/myjavalib.txt",
1050 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001051 sdk_version: "test_current",
1052 },
1053}
1054
1055sdk_snapshot {
1056 name: "mysdk@current",
1057 java_sdk_libs: ["mysdk_myjavalib@current"],
1058}
1059`),
1060 checkAllCopyRules(`
1061.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001062.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1063.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001064.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001065.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1066.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 +00001067.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001068.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1069.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 +00001070`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001071 checkMergeZips(
1072 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1073 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1074 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001075 )
1076}
Paul Duffin3375e352020-04-28 10:44:03 +01001077
Paul Duffin780c5f42020-05-12 15:52:55 +01001078func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1079 result := testSdkWithJava(t, `
1080 sdk {
1081 name: "mysdk",
1082 java_sdk_libs: ["myjavalib"],
1083 }
1084
1085 java_sdk_library {
1086 name: "myjavalib",
1087 srcs: ["Test.java"],
1088 sdk_version: "none",
1089 system_modules: "none",
1090 }
1091 `)
1092
1093 result.CheckSnapshot("mysdk", "",
1094 checkAndroidBpContents(`
1095// This is auto-generated. DO NOT EDIT.
1096
1097java_sdk_library_import {
1098 name: "mysdk_myjavalib@current",
1099 sdk_member_name: "myjavalib",
1100 public: {
1101 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1102 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1103 current_api: "sdk_library/public/myjavalib.txt",
1104 removed_api: "sdk_library/public/myjavalib-removed.txt",
1105 sdk_version: "none",
1106 },
1107}
1108
1109java_sdk_library_import {
1110 name: "myjavalib",
1111 prefer: false,
1112 public: {
1113 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1114 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1115 current_api: "sdk_library/public/myjavalib.txt",
1116 removed_api: "sdk_library/public/myjavalib-removed.txt",
1117 sdk_version: "none",
1118 },
1119}
1120
1121sdk_snapshot {
1122 name: "mysdk@current",
1123 java_sdk_libs: ["mysdk_myjavalib@current"],
1124}
1125`),
1126 checkAllCopyRules(`
1127.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1128.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1129.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1130`),
1131 checkMergeZips(
1132 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1133 ),
1134 )
1135}
1136
Paul Duffin87a05a32020-05-12 11:50:28 +01001137func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1138 result := testSdkWithJava(t, `
1139 sdk {
1140 name: "mysdk",
1141 java_sdk_libs: ["myjavalib"],
1142 }
1143
1144 java_sdk_library {
1145 name: "myjavalib",
1146 srcs: ["Test.java"],
1147 sdk_version: "module_current",
1148 public: {
1149 enabled: true,
1150 sdk_version: "module_current",
1151 },
1152 }
1153 `)
1154
1155 result.CheckSnapshot("mysdk", "",
1156 checkAndroidBpContents(`
1157// This is auto-generated. DO NOT EDIT.
1158
1159java_sdk_library_import {
1160 name: "mysdk_myjavalib@current",
1161 sdk_member_name: "myjavalib",
1162 public: {
1163 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1164 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1165 current_api: "sdk_library/public/myjavalib.txt",
1166 removed_api: "sdk_library/public/myjavalib-removed.txt",
1167 sdk_version: "module_current",
1168 },
1169}
1170
1171java_sdk_library_import {
1172 name: "myjavalib",
1173 prefer: false,
1174 public: {
1175 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1176 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1177 current_api: "sdk_library/public/myjavalib.txt",
1178 removed_api: "sdk_library/public/myjavalib-removed.txt",
1179 sdk_version: "module_current",
1180 },
1181}
1182
1183sdk_snapshot {
1184 name: "mysdk@current",
1185 java_sdk_libs: ["mysdk_myjavalib@current"],
1186}
1187`),
1188 checkAllCopyRules(`
1189.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1190.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1191.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1192`),
1193 checkMergeZips(
1194 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1195 ),
1196 )
1197}
1198
1199func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001200 result := testSdkWithJava(t, `
1201 sdk {
1202 name: "mysdk",
1203 java_sdk_libs: ["myjavalib"],
1204 }
1205
1206 java_sdk_library {
1207 name: "myjavalib",
1208 apex_available: ["//apex_available:anyapex"],
1209 srcs: ["Test.java"],
1210 sdk_version: "current",
1211 public: {
1212 enabled: true,
1213 },
1214 system: {
1215 enabled: true,
1216 },
1217 }
1218 `)
1219
1220 result.CheckSnapshot("mysdk", "",
1221 checkAndroidBpContents(`
1222// This is auto-generated. DO NOT EDIT.
1223
1224java_sdk_library_import {
1225 name: "mysdk_myjavalib@current",
1226 sdk_member_name: "myjavalib",
1227 apex_available: ["//apex_available:anyapex"],
1228 public: {
1229 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1230 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1231 current_api: "sdk_library/public/myjavalib.txt",
1232 removed_api: "sdk_library/public/myjavalib-removed.txt",
1233 sdk_version: "current",
1234 },
1235 system: {
1236 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1237 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1238 current_api: "sdk_library/system/myjavalib.txt",
1239 removed_api: "sdk_library/system/myjavalib-removed.txt",
1240 sdk_version: "system_current",
1241 },
1242}
1243
1244java_sdk_library_import {
1245 name: "myjavalib",
1246 prefer: false,
1247 apex_available: ["//apex_available:anyapex"],
1248 public: {
1249 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1250 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1251 current_api: "sdk_library/public/myjavalib.txt",
1252 removed_api: "sdk_library/public/myjavalib-removed.txt",
1253 sdk_version: "current",
1254 },
1255 system: {
1256 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1257 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1258 current_api: "sdk_library/system/myjavalib.txt",
1259 removed_api: "sdk_library/system/myjavalib-removed.txt",
1260 sdk_version: "system_current",
1261 },
1262}
1263
1264sdk_snapshot {
1265 name: "mysdk@current",
1266 java_sdk_libs: ["mysdk_myjavalib@current"],
1267}
1268`),
1269 checkAllCopyRules(`
1270.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1271.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1272.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1273.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1274.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1275.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib-removed.txt
1276`),
1277 checkMergeZips(
1278 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1279 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1280 ),
1281 )
1282}
Paul Duffin8f265b92020-04-28 14:13:56 +01001283
1284func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1285 result := testSdkWithJava(t, `
1286 sdk {
1287 name: "mysdk",
1288 java_sdk_libs: ["myjavalib"],
1289 }
1290
1291 java_sdk_library {
1292 name: "myjavalib",
1293 apex_available: ["//apex_available:anyapex"],
1294 srcs: ["Test.java"],
1295 sdk_version: "current",
1296 public: {
1297 enabled: true,
1298 },
1299 system: {
1300 enabled: true,
1301 },
1302 module_lib: {
1303 enabled: true,
1304 },
1305 }
1306 `)
1307
1308 result.CheckSnapshot("mysdk", "",
1309 checkAndroidBpContents(`
1310// This is auto-generated. DO NOT EDIT.
1311
1312java_sdk_library_import {
1313 name: "mysdk_myjavalib@current",
1314 sdk_member_name: "myjavalib",
1315 apex_available: ["//apex_available:anyapex"],
1316 public: {
1317 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1318 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1319 current_api: "sdk_library/public/myjavalib.txt",
1320 removed_api: "sdk_library/public/myjavalib-removed.txt",
1321 sdk_version: "current",
1322 },
1323 system: {
1324 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1325 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1326 current_api: "sdk_library/system/myjavalib.txt",
1327 removed_api: "sdk_library/system/myjavalib-removed.txt",
1328 sdk_version: "system_current",
1329 },
1330 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001331 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1332 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1333 current_api: "sdk_library/module-lib/myjavalib.txt",
1334 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001335 sdk_version: "module_current",
1336 },
1337}
1338
1339java_sdk_library_import {
1340 name: "myjavalib",
1341 prefer: false,
1342 apex_available: ["//apex_available:anyapex"],
1343 public: {
1344 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1345 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1346 current_api: "sdk_library/public/myjavalib.txt",
1347 removed_api: "sdk_library/public/myjavalib-removed.txt",
1348 sdk_version: "current",
1349 },
1350 system: {
1351 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1352 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1353 current_api: "sdk_library/system/myjavalib.txt",
1354 removed_api: "sdk_library/system/myjavalib-removed.txt",
1355 sdk_version: "system_current",
1356 },
1357 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001358 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1359 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1360 current_api: "sdk_library/module-lib/myjavalib.txt",
1361 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001362 sdk_version: "module_current",
1363 },
1364}
1365
1366sdk_snapshot {
1367 name: "mysdk@current",
1368 java_sdk_libs: ["mysdk_myjavalib@current"],
1369}
1370`),
1371 checkAllCopyRules(`
1372.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1373.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1374.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt
1375.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1376.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1377.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 +01001378.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
1379.intermediates/myjavalib.api.module_lib/android_common/myjavalib.api.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1380.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 +01001381`),
1382 checkMergeZips(
1383 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1384 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001385 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001386 ),
1387 )
1388}
Paul Duffinf7a64332020-05-13 16:54:55 +01001389
1390func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1391 result := testSdkWithJava(t, `
1392 sdk {
1393 name: "mysdk",
1394 java_sdk_libs: ["myjavalib"],
1395 }
1396
1397 java_sdk_library {
1398 name: "myjavalib",
1399 apex_available: ["//apex_available:anyapex"],
1400 srcs: ["Test.java"],
1401 sdk_version: "current",
1402 naming_scheme: "framework-modules",
1403 public: {
1404 enabled: true,
1405 },
1406 }
1407 `)
1408
1409 result.CheckSnapshot("mysdk", "",
1410 checkAndroidBpContents(`
1411// This is auto-generated. DO NOT EDIT.
1412
1413java_sdk_library_import {
1414 name: "mysdk_myjavalib@current",
1415 sdk_member_name: "myjavalib",
1416 apex_available: ["//apex_available:anyapex"],
1417 naming_scheme: "framework-modules",
1418 public: {
1419 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1420 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1421 current_api: "sdk_library/public/myjavalib.txt",
1422 removed_api: "sdk_library/public/myjavalib-removed.txt",
1423 sdk_version: "current",
1424 },
1425}
1426
1427java_sdk_library_import {
1428 name: "myjavalib",
1429 prefer: false,
1430 apex_available: ["//apex_available:anyapex"],
1431 naming_scheme: "framework-modules",
1432 public: {
1433 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1434 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1435 current_api: "sdk_library/public/myjavalib.txt",
1436 removed_api: "sdk_library/public/myjavalib-removed.txt",
1437 sdk_version: "current",
1438 },
1439}
1440
1441sdk_snapshot {
1442 name: "mysdk@current",
1443 java_sdk_libs: ["mysdk_myjavalib@current"],
1444}
1445`),
1446 checkAllCopyRules(`
1447.intermediates/myjavalib-stubs-publicapi/android_common/javac/myjavalib-stubs-publicapi.jar -> sdk_library/public/myjavalib-stubs.jar
1448.intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_api.txt -> sdk_library/public/myjavalib.txt
1449.intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_api.txt -> sdk_library/public/myjavalib-removed.txt
1450`),
1451 checkMergeZips(
1452 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1453 ),
1454 )
1455}