blob: 7496b207d72683ce992db4236fad3855b1f83403 [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,
Paul Duffin4e772842020-06-24 12:10:42 +010026 "resource.test": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000027 "aidl/foo/bar/Test.aidl": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000028
29 // For java_sdk_library
30 "api/current.txt": nil,
31 "api/removed.txt": nil,
32 "api/system-current.txt": nil,
33 "api/system-removed.txt": nil,
34 "api/test-current.txt": nil,
35 "api/test-removed.txt": nil,
Paul Duffin8f265b92020-04-28 14:13:56 +010036 "api/module-lib-current.txt": nil,
37 "api/module-lib-removed.txt": nil,
Paul Duffin0c5bae52020-06-02 13:00:08 +010038 "api/system-server-current.txt": nil,
39 "api/system-server-removed.txt": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000040 "build/soong/scripts/gen-java-current-api-files.sh": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000041 }
Paul Duffindd46f712020-02-10 13:37:10 +000042
43 // for java_sdk_library tests
44 bp = `
45java_system_modules_import {
46 name: "core-current-stubs-system-modules",
47}
48java_system_modules_import {
Pete Gillin1f41dbf2020-06-02 15:59:45 +010049 name: "legacy-core-platform-api-stubs-system-modules",
Paul Duffindd46f712020-02-10 13:37:10 +000050}
51java_import {
Pete Gillin1f41dbf2020-06-02 15:59:45 +010052 name: "legacy.core.platform.api.stubs",
Paul Duffindd46f712020-02-10 13:37:10 +000053}
Paul Duffin260bd312020-04-28 14:15:17 +010054java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000055 name: "android_stubs_current",
56}
Paul Duffin260bd312020-04-28 14:15:17 +010057java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000058 name: "android_system_stubs_current",
59}
Paul Duffin260bd312020-04-28 14:15:17 +010060java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000061 name: "android_test_stubs_current",
62}
63java_import {
Paul Duffin8f265b92020-04-28 14:13:56 +010064 name: "android_module_lib_stubs_current",
65}
66java_import {
Paul Duffin0c5bae52020-06-02 13:00:08 +010067 name: "android_system_server_stubs_current",
68}
69java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000070 name: "core-lambda-stubs",
71 sdk_version: "none",
72}
73java_import {
74 name: "ext",
75 sdk_version: "none",
76}
77java_import {
78 name: "framework",
79 sdk_version: "none",
80}
81` + bp
82
Paul Duffind835daa2019-11-30 17:49:09 +000083 return testSdkWithFs(t, bp, fs)
84}
85
Paul Duffina80fdec2019-12-03 15:25:00 +000086// Contains tests for SDK members provided by the java package.
87
88func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +000089 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +000090 sdk {
91 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +090092 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +000093 }
94
95 sdk_snapshot {
96 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +000097 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +000098 }
99
100 sdk_snapshot {
101 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +0000102 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000103 }
104
Jiyong Park0f80c182020-01-31 02:49:53 +0900105 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000106 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900107 srcs: ["Test.java"],
108 system_modules: "none",
109 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000110 host_supported: true,
111 }
112
113 java_import {
114 name: "sdkmember_mysdk_1",
115 sdk_member_name: "sdkmember",
116 host_supported: true,
117 }
118
119 java_import {
120 name: "sdkmember_mysdk_2",
121 sdk_member_name: "sdkmember",
122 host_supported: true,
123 }
124
125 java_library {
126 name: "myjavalib",
127 srcs: ["Test.java"],
128 libs: ["sdkmember"],
129 system_modules: "none",
130 sdk_version: "none",
131 compile_dex: true,
132 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000133 apex_available: [
134 "myapex",
135 "myapex2",
136 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000137 }
138
139 apex {
140 name: "myapex",
141 java_libs: ["myjavalib"],
142 uses_sdks: ["mysdk@1"],
143 key: "myapex.key",
144 certificate: ":myapex.cert",
145 }
146
147 apex {
148 name: "myapex2",
149 java_libs: ["myjavalib"],
150 uses_sdks: ["mysdk@2"],
151 key: "myapex.key",
152 certificate: ":myapex.cert",
153 }
154 `)
155
156 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common_myapex").Rule("combineJar").Output
157 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common_myapex2").Rule("combineJar").Output
158
159 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_myapex")
160 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_myapex2")
161
162 // Depending on the uses_sdks value, different libs are linked
163 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
164 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
165}
166
Paul Duffina0dbf432019-12-05 11:25:53 +0000167func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
168 result := testSdkWithJava(t, `
169 sdk {
170 name: "mysdk",
171 java_header_libs: ["myjavalib"],
172 }
173
174 java_library {
175 name: "myjavalib",
176 srcs: ["Test.java"],
177 aidl: {
178 export_include_dirs: ["aidl"],
179 },
180 system_modules: "none",
181 sdk_version: "none",
182 compile_dex: true,
183 host_supported: true,
184 }
185 `)
186
Paul Duffin1356d8c2020-02-25 19:26:33 +0000187 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000188 checkAndroidBpContents(`
189// This is auto-generated. DO NOT EDIT.
190
191java_import {
192 name: "mysdk_myjavalib@current",
193 sdk_member_name: "myjavalib",
194 jars: ["java/myjavalib.jar"],
195}
196
197java_import {
198 name: "myjavalib",
199 prefer: false,
200 jars: ["java/myjavalib.jar"],
201}
202
203sdk_snapshot {
204 name: "mysdk@current",
205 java_header_libs: ["mysdk_myjavalib@current"],
206}
207
208`),
209 checkAllCopyRules(`
210.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
211aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
212`),
213 )
214}
215
216func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
217 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
218 SkipIfNotLinux(t)
219
220 result := testSdkWithJava(t, `
221 sdk {
222 name: "mysdk",
223 device_supported: false,
224 host_supported: true,
225 java_header_libs: ["myjavalib"],
226 }
227
228 java_library {
229 name: "myjavalib",
230 device_supported: false,
231 host_supported: true,
232 srcs: ["Test.java"],
233 aidl: {
234 export_include_dirs: ["aidl"],
235 },
236 system_modules: "none",
237 sdk_version: "none",
238 compile_dex: true,
239 }
240 `)
241
Paul Duffin1356d8c2020-02-25 19:26:33 +0000242 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000243 checkAndroidBpContents(`
244// This is auto-generated. DO NOT EDIT.
245
246java_import {
247 name: "mysdk_myjavalib@current",
248 sdk_member_name: "myjavalib",
249 device_supported: false,
250 host_supported: true,
251 jars: ["java/myjavalib.jar"],
252}
253
254java_import {
255 name: "myjavalib",
256 prefer: false,
257 device_supported: false,
258 host_supported: true,
259 jars: ["java/myjavalib.jar"],
260}
261
262sdk_snapshot {
263 name: "mysdk@current",
264 device_supported: false,
265 host_supported: true,
266 java_header_libs: ["mysdk_myjavalib@current"],
267}
268`),
269 checkAllCopyRules(`
270.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
271aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
272`),
273 )
274}
275
Paul Duffina04c1072020-03-02 10:16:35 +0000276func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
277 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
278 SkipIfNotLinux(t)
279
280 result := testSdkWithJava(t, `
281 sdk {
282 name: "mysdk",
283 host_supported: true,
284 java_header_libs: ["myjavalib"],
285 }
286
287 java_library {
288 name: "myjavalib",
289 host_supported: true,
290 srcs: ["Test.java"],
291 system_modules: "none",
292 sdk_version: "none",
293 compile_dex: true,
294 }
295 `)
296
297 result.CheckSnapshot("mysdk", "",
298 checkAndroidBpContents(`
299// This is auto-generated. DO NOT EDIT.
300
301java_import {
302 name: "mysdk_myjavalib@current",
303 sdk_member_name: "myjavalib",
304 host_supported: true,
305 target: {
306 android: {
307 jars: ["java/android/myjavalib.jar"],
308 },
309 linux_glibc: {
310 jars: ["java/linux_glibc/myjavalib.jar"],
311 },
312 },
313}
314
315java_import {
316 name: "myjavalib",
317 prefer: false,
318 host_supported: true,
319 target: {
320 android: {
321 jars: ["java/android/myjavalib.jar"],
322 },
323 linux_glibc: {
324 jars: ["java/linux_glibc/myjavalib.jar"],
325 },
326 },
327}
328
329sdk_snapshot {
330 name: "mysdk@current",
331 host_supported: true,
332 java_header_libs: ["mysdk_myjavalib@current"],
333}
334`),
335 checkAllCopyRules(`
336.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
337.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
338`),
339 )
340}
341
Paul Duffina0dbf432019-12-05 11:25:53 +0000342func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000343 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000344 module_exports {
345 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000346 java_libs: ["myjavalib"],
347 }
348
349 java_library {
350 name: "myjavalib",
351 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100352 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000353 aidl: {
354 export_include_dirs: ["aidl"],
355 },
356 system_modules: "none",
357 sdk_version: "none",
358 compile_dex: true,
359 host_supported: true,
360 }
361 `)
362
Paul Duffin1356d8c2020-02-25 19:26:33 +0000363 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000364 checkAndroidBpContents(`
365// This is auto-generated. DO NOT EDIT.
366
367java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000368 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000369 sdk_member_name: "myjavalib",
370 jars: ["java/myjavalib.jar"],
371}
372
373java_import {
374 name: "myjavalib",
375 prefer: false,
376 jars: ["java/myjavalib.jar"],
377}
378
Paul Duffine6029182019-12-16 17:43:48 +0000379module_exports_snapshot {
380 name: "myexports@current",
381 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000382}
383
384`),
385 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100386.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000387aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
388`),
389 )
390}
391
Paul Duffina0dbf432019-12-05 11:25:53 +0000392func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffina80fdec2019-12-03 15:25:00 +0000393 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
394 SkipIfNotLinux(t)
395
Paul Duffind835daa2019-11-30 17:49:09 +0000396 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000397 module_exports {
398 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000399 device_supported: false,
400 host_supported: true,
401 java_libs: ["myjavalib"],
402 }
403
404 java_library {
405 name: "myjavalib",
406 device_supported: false,
407 host_supported: true,
408 srcs: ["Test.java"],
409 aidl: {
410 export_include_dirs: ["aidl"],
411 },
412 system_modules: "none",
413 sdk_version: "none",
414 compile_dex: true,
415 }
416 `)
417
Paul Duffin1356d8c2020-02-25 19:26:33 +0000418 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000419 checkAndroidBpContents(`
420// This is auto-generated. DO NOT EDIT.
421
422java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000423 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000424 sdk_member_name: "myjavalib",
425 device_supported: false,
426 host_supported: true,
427 jars: ["java/myjavalib.jar"],
428}
429
430java_import {
431 name: "myjavalib",
432 prefer: false,
433 device_supported: false,
434 host_supported: true,
435 jars: ["java/myjavalib.jar"],
436}
437
Paul Duffine6029182019-12-16 17:43:48 +0000438module_exports_snapshot {
439 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000440 device_supported: false,
441 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000442 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000443}
444`),
445 checkAllCopyRules(`
446.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
447aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
448`),
449 )
450}
451
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000452func TestSnapshotWithJavaTest(t *testing.T) {
453 result := testSdkWithJava(t, `
454 module_exports {
455 name: "myexports",
456 java_tests: ["myjavatests"],
457 }
458
459 java_test {
460 name: "myjavatests",
461 srcs: ["Test.java"],
462 system_modules: "none",
463 sdk_version: "none",
464 compile_dex: true,
465 host_supported: true,
466 }
467 `)
468
Paul Duffin1356d8c2020-02-25 19:26:33 +0000469 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000470 checkAndroidBpContents(`
471// This is auto-generated. DO NOT EDIT.
472
473java_test_import {
474 name: "myexports_myjavatests@current",
475 sdk_member_name: "myjavatests",
476 jars: ["java/myjavatests.jar"],
477 test_config: "java/myjavatests-AndroidTest.xml",
478}
479
480java_test_import {
481 name: "myjavatests",
482 prefer: false,
483 jars: ["java/myjavatests.jar"],
484 test_config: "java/myjavatests-AndroidTest.xml",
485}
486
487module_exports_snapshot {
488 name: "myexports@current",
489 java_tests: ["myexports_myjavatests@current"],
490}
491`),
492 checkAllCopyRules(`
493.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
494.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
495`),
496 )
497}
498
499func TestHostSnapshotWithJavaTest(t *testing.T) {
500 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
501 SkipIfNotLinux(t)
502
503 result := testSdkWithJava(t, `
504 module_exports {
505 name: "myexports",
506 device_supported: false,
507 host_supported: true,
508 java_tests: ["myjavatests"],
509 }
510
511 java_test {
512 name: "myjavatests",
513 device_supported: false,
514 host_supported: true,
515 srcs: ["Test.java"],
516 system_modules: "none",
517 sdk_version: "none",
518 compile_dex: true,
519 }
520 `)
521
Paul Duffin1356d8c2020-02-25 19:26:33 +0000522 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000523 checkAndroidBpContents(`
524// This is auto-generated. DO NOT EDIT.
525
526java_test_import {
527 name: "myexports_myjavatests@current",
528 sdk_member_name: "myjavatests",
529 device_supported: false,
530 host_supported: true,
531 jars: ["java/myjavatests.jar"],
532 test_config: "java/myjavatests-AndroidTest.xml",
533}
534
535java_test_import {
536 name: "myjavatests",
537 prefer: false,
538 device_supported: false,
539 host_supported: true,
540 jars: ["java/myjavatests.jar"],
541 test_config: "java/myjavatests-AndroidTest.xml",
542}
543
544module_exports_snapshot {
545 name: "myexports@current",
546 device_supported: false,
547 host_supported: true,
548 java_tests: ["myexports_myjavatests@current"],
549}
550`),
551 checkAllCopyRules(`
552.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
553.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
554`),
555 )
556}
557
Paul Duffind835daa2019-11-30 17:49:09 +0000558func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult {
559 t.Helper()
560
561 fs := map[string][]byte{
562 "foo/bar/Foo.java": nil,
563 "stubs-sources/foo/bar/Foo.java": nil,
564 }
565 return testSdkWithFs(t, bp, fs)
566}
567
Paul Duffina80fdec2019-12-03 15:25:00 +0000568// Note: This test does not verify that a droidstubs can be referenced, either
569// directly or indirectly from an APEX as droidstubs can never be a part of an
570// apex.
571func TestBasicSdkWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000572 testSdkWithDroidstubs(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000573 sdk {
574 name: "mysdk",
575 stubs_sources: ["mystub"],
576 }
577 sdk_snapshot {
578 name: "mysdk@10",
579 stubs_sources: ["mystub_mysdk@10"],
580 }
581 prebuilt_stubs_sources {
582 name: "mystub_mysdk@10",
583 sdk_member_name: "mystub",
584 srcs: ["stubs-sources/foo/bar/Foo.java"],
585 }
586 droidstubs {
587 name: "mystub",
588 srcs: ["foo/bar/Foo.java"],
589 sdk_version: "none",
590 system_modules: "none",
591 }
592 java_library {
593 name: "myjavalib",
594 srcs: [":mystub"],
595 sdk_version: "none",
596 system_modules: "none",
597 }
598 `)
599}
600
601func TestSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000602 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000603 module_exports {
604 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000605 stubs_sources: ["myjavaapistubs"],
606 }
607
608 droidstubs {
609 name: "myjavaapistubs",
610 srcs: ["foo/bar/Foo.java"],
611 system_modules: "none",
612 sdk_version: "none",
613 }
614 `)
615
Paul Duffin1356d8c2020-02-25 19:26:33 +0000616 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000617 checkAndroidBpContents(`
618// This is auto-generated. DO NOT EDIT.
619
620prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000621 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000622 sdk_member_name: "myjavaapistubs",
623 srcs: ["java/myjavaapistubs_stubs_sources"],
624}
625
626prebuilt_stubs_sources {
627 name: "myjavaapistubs",
628 prefer: false,
629 srcs: ["java/myjavaapistubs_stubs_sources"],
630}
631
Paul Duffine6029182019-12-16 17:43:48 +0000632module_exports_snapshot {
633 name: "myexports@current",
634 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000635}
636
637`),
638 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100639 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000640 )
641}
642
643func TestHostSnapshotWithDroidstubs(t *testing.T) {
644 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
645 SkipIfNotLinux(t)
646
Paul Duffind835daa2019-11-30 17:49:09 +0000647 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000648 module_exports {
649 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000650 device_supported: false,
651 host_supported: true,
652 stubs_sources: ["myjavaapistubs"],
653 }
654
655 droidstubs {
656 name: "myjavaapistubs",
657 device_supported: false,
658 host_supported: true,
659 srcs: ["foo/bar/Foo.java"],
660 system_modules: "none",
661 sdk_version: "none",
662 }
663 `)
664
Paul Duffin1356d8c2020-02-25 19:26:33 +0000665 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000666 checkAndroidBpContents(`
667// This is auto-generated. DO NOT EDIT.
668
669prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000670 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000671 sdk_member_name: "myjavaapistubs",
672 device_supported: false,
673 host_supported: true,
674 srcs: ["java/myjavaapistubs_stubs_sources"],
675}
676
677prebuilt_stubs_sources {
678 name: "myjavaapistubs",
679 prefer: false,
680 device_supported: false,
681 host_supported: true,
682 srcs: ["java/myjavaapistubs_stubs_sources"],
683}
684
Paul Duffine6029182019-12-16 17:43:48 +0000685module_exports_snapshot {
686 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000687 device_supported: false,
688 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000689 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000690}
691`),
692 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100693 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000694 )
695}
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000696
697func TestSnapshotWithJavaSystemModules(t *testing.T) {
698 result := testSdkWithJava(t, `
699 sdk {
700 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000701 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000702 java_system_modules: ["my-system-modules"],
703 }
704
705 java_system_modules {
706 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000707 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000708 }
709
710 java_library {
711 name: "system-module",
712 srcs: ["Test.java"],
713 sdk_version: "none",
714 system_modules: "none",
715 }
Paul Duffin72910952020-01-20 18:16:30 +0000716
717 java_library {
718 name: "exported-system-module",
719 srcs: ["Test.java"],
720 sdk_version: "none",
721 system_modules: "none",
722 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000723 `)
724
Paul Duffin1356d8c2020-02-25 19:26:33 +0000725 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000726 checkAndroidBpContents(`
727// This is auto-generated. DO NOT EDIT.
728
729java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000730 name: "mysdk_exported-system-module@current",
731 sdk_member_name: "exported-system-module",
732 jars: ["java/exported-system-module.jar"],
733}
734
735java_import {
736 name: "exported-system-module",
737 prefer: false,
738 jars: ["java/exported-system-module.jar"],
739}
740
741java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000742 name: "mysdk_system-module@current",
743 sdk_member_name: "system-module",
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_import {
Paul Duffin72910952020-01-20 18:16:30 +0000749 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000750 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000751 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000752 jars: ["java/system-module.jar"],
753}
754
755java_system_modules_import {
756 name: "mysdk_my-system-modules@current",
757 sdk_member_name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000758 libs: [
759 "mysdk_system-module@current",
760 "mysdk_exported-system-module@current",
761 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000762}
763
764java_system_modules_import {
765 name: "my-system-modules",
766 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000767 libs: [
768 "mysdk_system-module",
769 "exported-system-module",
770 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000771}
772
773sdk_snapshot {
774 name: "mysdk@current",
Paul Duffin72910952020-01-20 18:16:30 +0000775 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000776 java_system_modules: ["mysdk_my-system-modules@current"],
777}
778`),
Paul Duffin72910952020-01-20 18:16:30 +0000779 checkAllCopyRules(`
780.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
781.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
782`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000783 )
784}
785
786func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
787 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
788 SkipIfNotLinux(t)
789
790 result := testSdkWithJava(t, `
791 sdk {
792 name: "mysdk",
793 device_supported: false,
794 host_supported: true,
795 java_system_modules: ["my-system-modules"],
796 }
797
798 java_system_modules {
799 name: "my-system-modules",
800 device_supported: false,
801 host_supported: true,
802 libs: ["system-module"],
803 }
804
805 java_library {
806 name: "system-module",
807 device_supported: false,
808 host_supported: true,
809 srcs: ["Test.java"],
810 sdk_version: "none",
811 system_modules: "none",
812 }
813 `)
814
Paul Duffin1356d8c2020-02-25 19:26:33 +0000815 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000816 checkAndroidBpContents(`
817// This is auto-generated. DO NOT EDIT.
818
819java_import {
820 name: "mysdk_system-module@current",
821 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000822 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000823 device_supported: false,
824 host_supported: true,
825 jars: ["java/system-module.jar"],
826}
827
828java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000829 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000830 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000831 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000832 device_supported: false,
833 host_supported: true,
834 jars: ["java/system-module.jar"],
835}
836
837java_system_modules_import {
838 name: "mysdk_my-system-modules@current",
839 sdk_member_name: "my-system-modules",
840 device_supported: false,
841 host_supported: true,
842 libs: ["mysdk_system-module@current"],
843}
844
845java_system_modules_import {
846 name: "my-system-modules",
847 prefer: false,
848 device_supported: false,
849 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000850 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000851}
852
853sdk_snapshot {
854 name: "mysdk@current",
855 device_supported: false,
856 host_supported: true,
857 java_system_modules: ["mysdk_my-system-modules@current"],
858}
859`),
860 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
861 )
862}
Paul Duffin865171e2020-03-02 18:38:15 +0000863
864func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
865 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
866 SkipIfNotLinux(t)
867
868 result := testSdkWithJava(t, `
869 module_exports {
870 name: "myexports",
871 host_supported: true,
872 java_libs: ["myjavalib"],
873 target: {
874 android: {
875 java_header_libs: ["androidjavalib"],
876 },
877 host: {
878 java_header_libs: ["hostjavalib"],
879 },
880 },
881 }
882
883 java_library {
884 name: "myjavalib",
885 host_supported: true,
886 srcs: ["Test.java"],
887 system_modules: "none",
888 sdk_version: "none",
889 }
890
891 java_library {
892 name: "androidjavalib",
893 srcs: ["Test.java"],
894 system_modules: "none",
895 sdk_version: "none",
896 }
897
898 java_library_host {
899 name: "hostjavalib",
900 srcs: ["Test.java"],
901 }
902 `)
903
904 result.CheckSnapshot("myexports", "",
905 checkAndroidBpContents(`
906// This is auto-generated. DO NOT EDIT.
907
908java_import {
909 name: "myexports_hostjavalib@current",
910 sdk_member_name: "hostjavalib",
911 device_supported: false,
912 host_supported: true,
913 jars: ["java/hostjavalib.jar"],
914}
915
916java_import {
917 name: "hostjavalib",
918 prefer: false,
919 device_supported: false,
920 host_supported: true,
921 jars: ["java/hostjavalib.jar"],
922}
923
924java_import {
925 name: "myexports_androidjavalib@current",
926 sdk_member_name: "androidjavalib",
927 jars: ["java/androidjavalib.jar"],
928}
929
930java_import {
931 name: "androidjavalib",
932 prefer: false,
933 jars: ["java/androidjavalib.jar"],
934}
935
936java_import {
937 name: "myexports_myjavalib@current",
938 sdk_member_name: "myjavalib",
939 host_supported: true,
940 target: {
941 android: {
942 jars: ["java/android/myjavalib.jar"],
943 },
944 linux_glibc: {
945 jars: ["java/linux_glibc/myjavalib.jar"],
946 },
947 },
948}
949
950java_import {
951 name: "myjavalib",
952 prefer: false,
953 host_supported: true,
954 target: {
955 android: {
956 jars: ["java/android/myjavalib.jar"],
957 },
958 linux_glibc: {
959 jars: ["java/linux_glibc/myjavalib.jar"],
960 },
961 },
962}
963
964module_exports_snapshot {
965 name: "myexports@current",
966 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000967 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000968 target: {
969 android: {
970 java_header_libs: ["myexports_androidjavalib@current"],
971 },
972 linux_glibc: {
973 java_header_libs: ["myexports_hostjavalib@current"],
974 },
975 },
Paul Duffin865171e2020-03-02 18:38:15 +0000976}
977`),
978 checkAllCopyRules(`
979.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
980.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
981.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
982.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
983`),
984 )
985}
Paul Duffindd46f712020-02-10 13:37:10 +0000986
987func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
988 result := testSdkWithJava(t, `
989 sdk {
990 name: "mysdk",
991 java_sdk_libs: ["myjavalib"],
992 }
993
994 java_sdk_library {
995 name: "myjavalib",
996 apex_available: ["//apex_available:anyapex"],
997 srcs: ["Test.java"],
998 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100999 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001000 stubs_library_visibility: ["//other"],
1001 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001002 }
1003 `)
1004
1005 result.CheckSnapshot("mysdk", "",
1006 checkAndroidBpContents(`
1007// This is auto-generated. DO NOT EDIT.
1008
1009java_sdk_library_import {
1010 name: "mysdk_myjavalib@current",
1011 sdk_member_name: "myjavalib",
1012 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001013 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001014 public: {
1015 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001016 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001017 current_api: "sdk_library/public/myjavalib.txt",
1018 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001019 sdk_version: "current",
1020 },
1021 system: {
1022 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001023 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001024 current_api: "sdk_library/system/myjavalib.txt",
1025 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001026 sdk_version: "system_current",
1027 },
1028 test: {
1029 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001030 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001031 current_api: "sdk_library/test/myjavalib.txt",
1032 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001033 sdk_version: "test_current",
1034 },
1035}
1036
1037java_sdk_library_import {
1038 name: "myjavalib",
1039 prefer: false,
1040 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001041 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001042 public: {
1043 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001044 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001045 current_api: "sdk_library/public/myjavalib.txt",
1046 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001047 sdk_version: "current",
1048 },
1049 system: {
1050 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001051 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001052 current_api: "sdk_library/system/myjavalib.txt",
1053 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001054 sdk_version: "system_current",
1055 },
1056 test: {
1057 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001058 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001059 current_api: "sdk_library/test/myjavalib.txt",
1060 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001061 sdk_version: "test_current",
1062 },
1063}
1064
1065sdk_snapshot {
1066 name: "mysdk@current",
1067 java_sdk_libs: ["mysdk_myjavalib@current"],
1068}
1069`),
1070 checkAllCopyRules(`
1071.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001072.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001073.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001074.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001075.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001076.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001077.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001078.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001079.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_removed.txt -> sdk_library/test/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001080`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001081 checkMergeZips(
1082 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1083 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1084 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001085 )
1086}
Paul Duffin3375e352020-04-28 10:44:03 +01001087
Paul Duffin780c5f42020-05-12 15:52:55 +01001088func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1089 result := testSdkWithJava(t, `
1090 sdk {
1091 name: "mysdk",
1092 java_sdk_libs: ["myjavalib"],
1093 }
1094
1095 java_sdk_library {
1096 name: "myjavalib",
1097 srcs: ["Test.java"],
1098 sdk_version: "none",
1099 system_modules: "none",
1100 }
1101 `)
1102
1103 result.CheckSnapshot("mysdk", "",
1104 checkAndroidBpContents(`
1105// This is auto-generated. DO NOT EDIT.
1106
1107java_sdk_library_import {
1108 name: "mysdk_myjavalib@current",
1109 sdk_member_name: "myjavalib",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001110 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001111 public: {
1112 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1113 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1114 current_api: "sdk_library/public/myjavalib.txt",
1115 removed_api: "sdk_library/public/myjavalib-removed.txt",
1116 sdk_version: "none",
1117 },
1118}
1119
1120java_sdk_library_import {
1121 name: "myjavalib",
1122 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001123 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001124 public: {
1125 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1126 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1127 current_api: "sdk_library/public/myjavalib.txt",
1128 removed_api: "sdk_library/public/myjavalib-removed.txt",
1129 sdk_version: "none",
1130 },
1131}
1132
1133sdk_snapshot {
1134 name: "mysdk@current",
1135 java_sdk_libs: ["mysdk_myjavalib@current"],
1136}
1137`),
1138 checkAllCopyRules(`
1139.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1140.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001141.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001142`),
1143 checkMergeZips(
1144 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1145 ),
1146 )
1147}
1148
Paul Duffin87a05a32020-05-12 11:50:28 +01001149func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1150 result := testSdkWithJava(t, `
1151 sdk {
1152 name: "mysdk",
1153 java_sdk_libs: ["myjavalib"],
1154 }
1155
1156 java_sdk_library {
1157 name: "myjavalib",
1158 srcs: ["Test.java"],
1159 sdk_version: "module_current",
1160 public: {
1161 enabled: true,
1162 sdk_version: "module_current",
1163 },
1164 }
1165 `)
1166
1167 result.CheckSnapshot("mysdk", "",
1168 checkAndroidBpContents(`
1169// This is auto-generated. DO NOT EDIT.
1170
1171java_sdk_library_import {
1172 name: "mysdk_myjavalib@current",
1173 sdk_member_name: "myjavalib",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001174 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001175 public: {
1176 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1177 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1178 current_api: "sdk_library/public/myjavalib.txt",
1179 removed_api: "sdk_library/public/myjavalib-removed.txt",
1180 sdk_version: "module_current",
1181 },
1182}
1183
1184java_sdk_library_import {
1185 name: "myjavalib",
1186 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001187 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001188 public: {
1189 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1190 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1191 current_api: "sdk_library/public/myjavalib.txt",
1192 removed_api: "sdk_library/public/myjavalib-removed.txt",
1193 sdk_version: "module_current",
1194 },
1195}
1196
1197sdk_snapshot {
1198 name: "mysdk@current",
1199 java_sdk_libs: ["mysdk_myjavalib@current"],
1200}
1201`),
1202 checkAllCopyRules(`
1203.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1204.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001205.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001206`),
1207 checkMergeZips(
1208 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1209 ),
1210 )
1211}
1212
1213func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001214 result := testSdkWithJava(t, `
1215 sdk {
1216 name: "mysdk",
1217 java_sdk_libs: ["myjavalib"],
1218 }
1219
1220 java_sdk_library {
1221 name: "myjavalib",
1222 apex_available: ["//apex_available:anyapex"],
1223 srcs: ["Test.java"],
1224 sdk_version: "current",
1225 public: {
1226 enabled: true,
1227 },
1228 system: {
1229 enabled: true,
1230 },
1231 }
1232 `)
1233
1234 result.CheckSnapshot("mysdk", "",
1235 checkAndroidBpContents(`
1236// This is auto-generated. DO NOT EDIT.
1237
1238java_sdk_library_import {
1239 name: "mysdk_myjavalib@current",
1240 sdk_member_name: "myjavalib",
1241 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001242 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001243 public: {
1244 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1245 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1246 current_api: "sdk_library/public/myjavalib.txt",
1247 removed_api: "sdk_library/public/myjavalib-removed.txt",
1248 sdk_version: "current",
1249 },
1250 system: {
1251 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1252 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1253 current_api: "sdk_library/system/myjavalib.txt",
1254 removed_api: "sdk_library/system/myjavalib-removed.txt",
1255 sdk_version: "system_current",
1256 },
1257}
1258
1259java_sdk_library_import {
1260 name: "myjavalib",
1261 prefer: false,
1262 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001263 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001264 public: {
1265 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1266 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1267 current_api: "sdk_library/public/myjavalib.txt",
1268 removed_api: "sdk_library/public/myjavalib-removed.txt",
1269 sdk_version: "current",
1270 },
1271 system: {
1272 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1273 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1274 current_api: "sdk_library/system/myjavalib.txt",
1275 removed_api: "sdk_library/system/myjavalib-removed.txt",
1276 sdk_version: "system_current",
1277 },
1278}
1279
1280sdk_snapshot {
1281 name: "mysdk@current",
1282 java_sdk_libs: ["mysdk_myjavalib@current"],
1283}
1284`),
1285 checkAllCopyRules(`
1286.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1287.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001288.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001289.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1290.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001291.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001292`),
1293 checkMergeZips(
1294 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1295 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1296 ),
1297 )
1298}
Paul Duffin8f265b92020-04-28 14:13:56 +01001299
1300func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1301 result := testSdkWithJava(t, `
1302 sdk {
1303 name: "mysdk",
1304 java_sdk_libs: ["myjavalib"],
1305 }
1306
1307 java_sdk_library {
1308 name: "myjavalib",
1309 apex_available: ["//apex_available:anyapex"],
1310 srcs: ["Test.java"],
1311 sdk_version: "current",
1312 public: {
1313 enabled: true,
1314 },
1315 system: {
1316 enabled: true,
1317 },
1318 module_lib: {
1319 enabled: true,
1320 },
1321 }
1322 `)
1323
1324 result.CheckSnapshot("mysdk", "",
1325 checkAndroidBpContents(`
1326// This is auto-generated. DO NOT EDIT.
1327
1328java_sdk_library_import {
1329 name: "mysdk_myjavalib@current",
1330 sdk_member_name: "myjavalib",
1331 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001332 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001333 public: {
1334 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1335 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1336 current_api: "sdk_library/public/myjavalib.txt",
1337 removed_api: "sdk_library/public/myjavalib-removed.txt",
1338 sdk_version: "current",
1339 },
1340 system: {
1341 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1342 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1343 current_api: "sdk_library/system/myjavalib.txt",
1344 removed_api: "sdk_library/system/myjavalib-removed.txt",
1345 sdk_version: "system_current",
1346 },
1347 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001348 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1349 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1350 current_api: "sdk_library/module-lib/myjavalib.txt",
1351 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001352 sdk_version: "module_current",
1353 },
1354}
1355
1356java_sdk_library_import {
1357 name: "myjavalib",
1358 prefer: false,
1359 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001360 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001361 public: {
1362 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1363 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1364 current_api: "sdk_library/public/myjavalib.txt",
1365 removed_api: "sdk_library/public/myjavalib-removed.txt",
1366 sdk_version: "current",
1367 },
1368 system: {
1369 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1370 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1371 current_api: "sdk_library/system/myjavalib.txt",
1372 removed_api: "sdk_library/system/myjavalib-removed.txt",
1373 sdk_version: "system_current",
1374 },
1375 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001376 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1377 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1378 current_api: "sdk_library/module-lib/myjavalib.txt",
1379 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001380 sdk_version: "module_current",
1381 },
1382}
1383
1384sdk_snapshot {
1385 name: "mysdk@current",
1386 java_sdk_libs: ["mysdk_myjavalib@current"],
1387}
1388`),
1389 checkAllCopyRules(`
1390.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1391.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001392.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001393.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1394.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001395.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin6b836ba2020-05-13 19:19:49 +01001396.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
1397.intermediates/myjavalib.api.module_lib/android_common/myjavalib.api.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001398.intermediates/myjavalib.api.module_lib/android_common/myjavalib.api.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001399`),
1400 checkMergeZips(
1401 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1402 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001403 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001404 ),
1405 )
1406}
Paul Duffinf7a64332020-05-13 16:54:55 +01001407
Paul Duffin0c5bae52020-06-02 13:00:08 +01001408func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1409 result := testSdkWithJava(t, `
1410 sdk {
1411 name: "mysdk",
1412 java_sdk_libs: ["myjavalib"],
1413 }
1414
1415 java_sdk_library {
1416 name: "myjavalib",
1417 apex_available: ["//apex_available:anyapex"],
1418 srcs: ["Test.java"],
1419 sdk_version: "current",
1420 public: {
1421 enabled: true,
1422 },
1423 system_server: {
1424 enabled: true,
1425 },
1426 }
1427 `)
1428
1429 result.CheckSnapshot("mysdk", "",
1430 checkAndroidBpContents(`
1431// This is auto-generated. DO NOT EDIT.
1432
1433java_sdk_library_import {
1434 name: "mysdk_myjavalib@current",
1435 sdk_member_name: "myjavalib",
1436 apex_available: ["//apex_available:anyapex"],
1437 shared_library: true,
1438 public: {
1439 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1440 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1441 current_api: "sdk_library/public/myjavalib.txt",
1442 removed_api: "sdk_library/public/myjavalib-removed.txt",
1443 sdk_version: "current",
1444 },
1445 system_server: {
1446 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1447 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1448 current_api: "sdk_library/system-server/myjavalib.txt",
1449 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1450 sdk_version: "system_server_current",
1451 },
1452}
1453
1454java_sdk_library_import {
1455 name: "myjavalib",
1456 prefer: false,
1457 apex_available: ["//apex_available:anyapex"],
1458 shared_library: true,
1459 public: {
1460 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1461 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1462 current_api: "sdk_library/public/myjavalib.txt",
1463 removed_api: "sdk_library/public/myjavalib-removed.txt",
1464 sdk_version: "current",
1465 },
1466 system_server: {
1467 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1468 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1469 current_api: "sdk_library/system-server/myjavalib.txt",
1470 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1471 sdk_version: "system_server_current",
1472 },
1473}
1474
1475sdk_snapshot {
1476 name: "mysdk@current",
1477 java_sdk_libs: ["mysdk_myjavalib@current"],
1478}
1479`),
1480 checkAllCopyRules(`
1481.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1482.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1483.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1484.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1485.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1486.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1487`),
1488 checkMergeZips(
1489 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1490 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1491 ),
1492 )
1493}
1494
Paul Duffinf7a64332020-05-13 16:54:55 +01001495func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1496 result := testSdkWithJava(t, `
1497 sdk {
1498 name: "mysdk",
1499 java_sdk_libs: ["myjavalib"],
1500 }
1501
1502 java_sdk_library {
1503 name: "myjavalib",
1504 apex_available: ["//apex_available:anyapex"],
1505 srcs: ["Test.java"],
1506 sdk_version: "current",
1507 naming_scheme: "framework-modules",
1508 public: {
1509 enabled: true,
1510 },
1511 }
1512 `)
1513
1514 result.CheckSnapshot("mysdk", "",
1515 checkAndroidBpContents(`
1516// This is auto-generated. DO NOT EDIT.
1517
1518java_sdk_library_import {
1519 name: "mysdk_myjavalib@current",
1520 sdk_member_name: "myjavalib",
1521 apex_available: ["//apex_available:anyapex"],
1522 naming_scheme: "framework-modules",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001523 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001524 public: {
1525 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1526 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1527 current_api: "sdk_library/public/myjavalib.txt",
1528 removed_api: "sdk_library/public/myjavalib-removed.txt",
1529 sdk_version: "current",
1530 },
1531}
1532
1533java_sdk_library_import {
1534 name: "myjavalib",
1535 prefer: false,
1536 apex_available: ["//apex_available:anyapex"],
1537 naming_scheme: "framework-modules",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001538 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001539 public: {
1540 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1541 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1542 current_api: "sdk_library/public/myjavalib.txt",
1543 removed_api: "sdk_library/public/myjavalib-removed.txt",
1544 sdk_version: "current",
1545 },
1546}
1547
1548sdk_snapshot {
1549 name: "mysdk@current",
1550 java_sdk_libs: ["mysdk_myjavalib@current"],
1551}
1552`),
1553 checkAllCopyRules(`
1554.intermediates/myjavalib-stubs-publicapi/android_common/javac/myjavalib-stubs-publicapi.jar -> sdk_library/public/myjavalib-stubs.jar
1555.intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001556.intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001557`),
1558 checkMergeZips(
1559 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1560 ),
1561 )
1562}