blob: 79da3f05f0683d4e4b32d46a72338d933a01298b [file] [log] [blame]
Paul Duffina80fdec2019-12-03 15:25:00 +00001// Copyright (C) 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package sdk
16
17import (
18 "testing"
Paul Duffincee7e662020-07-09 17:32:57 +010019
20 "android/soong/java"
Paul Duffina80fdec2019-12-03 15:25:00 +000021)
22
Paul Duffind835daa2019-11-30 17:49:09 +000023func testSdkWithJava(t *testing.T, bp string) *testSdkResult {
24 t.Helper()
25
26 fs := map[string][]byte{
27 "Test.java": nil,
Paul Duffin4e772842020-06-24 12:10:42 +010028 "resource.test": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000029 "aidl/foo/bar/Test.aidl": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000030
Paul Duffincee7e662020-07-09 17:32:57 +010031 // For java_import
32 "prebuilt.jar": nil,
33
Paul Duffindd46f712020-02-10 13:37:10 +000034 // For java_sdk_library
35 "api/current.txt": nil,
36 "api/removed.txt": nil,
37 "api/system-current.txt": nil,
38 "api/system-removed.txt": nil,
39 "api/test-current.txt": nil,
40 "api/test-removed.txt": nil,
Paul Duffin8f265b92020-04-28 14:13:56 +010041 "api/module-lib-current.txt": nil,
42 "api/module-lib-removed.txt": nil,
Paul Duffin0c5bae52020-06-02 13:00:08 +010043 "api/system-server-current.txt": nil,
44 "api/system-server-removed.txt": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000045 "build/soong/scripts/gen-java-current-api-files.sh": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000046 }
Paul Duffindd46f712020-02-10 13:37:10 +000047
48 // for java_sdk_library tests
49 bp = `
50java_system_modules_import {
51 name: "core-current-stubs-system-modules",
52}
53java_system_modules_import {
Pete Gillin1f41dbf2020-06-02 15:59:45 +010054 name: "legacy-core-platform-api-stubs-system-modules",
Paul Duffindd46f712020-02-10 13:37:10 +000055}
56java_import {
Pete Gillin1f41dbf2020-06-02 15:59:45 +010057 name: "legacy.core.platform.api.stubs",
Paul Duffindd46f712020-02-10 13:37:10 +000058}
Paul Duffin260bd312020-04-28 14:15:17 +010059java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000060 name: "android_stubs_current",
61}
Paul Duffin260bd312020-04-28 14:15:17 +010062java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000063 name: "android_system_stubs_current",
64}
Paul Duffin260bd312020-04-28 14:15:17 +010065java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000066 name: "android_test_stubs_current",
67}
68java_import {
Paul Duffin8f265b92020-04-28 14:13:56 +010069 name: "android_module_lib_stubs_current",
70}
71java_import {
Paul Duffin0c5bae52020-06-02 13:00:08 +010072 name: "android_system_server_stubs_current",
73}
74java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000075 name: "core-lambda-stubs",
76 sdk_version: "none",
77}
78java_import {
79 name: "ext",
80 sdk_version: "none",
81}
82java_import {
83 name: "framework",
84 sdk_version: "none",
85}
86` + bp
87
Paul Duffind835daa2019-11-30 17:49:09 +000088 return testSdkWithFs(t, bp, fs)
89}
90
Paul Duffina80fdec2019-12-03 15:25:00 +000091// Contains tests for SDK members provided by the java package.
92
Paul Duffincee7e662020-07-09 17:32:57 +010093func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
94 result := testSdkWithJava(t, `
95 sdk {
96 name: "mysdk",
97 java_header_libs: ["sdkmember"],
98 }
99
100 java_library {
101 name: "sdkmember",
102 srcs: ["Test.java"],
103 system_modules: "none",
104 sdk_version: "none",
105 }
106
107 java_import {
108 name: "sdkmember",
109 prefer: true,
110 jars: ["prebuilt.jar"],
111 }
112 `)
113
114 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
115 java.CheckModuleDependencies(t, result.ctx, "mysdk", "android_common", []string{"sdkmember"})
116
117 result.CheckSnapshot("mysdk", "",
118 checkAndroidBpContents(`// This is auto-generated. DO NOT EDIT.
119
120java_import {
121 name: "mysdk_sdkmember@current",
122 sdk_member_name: "sdkmember",
123 jars: ["java/sdkmember.jar"],
124}
125
126java_import {
127 name: "sdkmember",
128 prefer: false,
129 jars: ["java/sdkmember.jar"],
130}
131
132sdk_snapshot {
133 name: "mysdk@current",
134 java_header_libs: ["mysdk_sdkmember@current"],
135}
136`))
137}
138
Paul Duffina80fdec2019-12-03 15:25:00 +0000139func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000140 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000141 sdk {
142 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +0900143 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000144 }
145
146 sdk_snapshot {
147 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +0000148 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000149 }
150
151 sdk_snapshot {
152 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +0000153 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000154 }
155
Jiyong Park0f80c182020-01-31 02:49:53 +0900156 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000157 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900158 srcs: ["Test.java"],
159 system_modules: "none",
160 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000161 host_supported: true,
162 }
163
164 java_import {
165 name: "sdkmember_mysdk_1",
166 sdk_member_name: "sdkmember",
167 host_supported: true,
168 }
169
170 java_import {
171 name: "sdkmember_mysdk_2",
172 sdk_member_name: "sdkmember",
173 host_supported: true,
174 }
175
176 java_library {
177 name: "myjavalib",
178 srcs: ["Test.java"],
179 libs: ["sdkmember"],
180 system_modules: "none",
181 sdk_version: "none",
182 compile_dex: true,
183 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000184 apex_available: [
185 "myapex",
186 "myapex2",
187 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000188 }
189
190 apex {
191 name: "myapex",
192 java_libs: ["myjavalib"],
193 uses_sdks: ["mysdk@1"],
194 key: "myapex.key",
195 certificate: ":myapex.cert",
196 }
197
198 apex {
199 name: "myapex2",
200 java_libs: ["myjavalib"],
201 uses_sdks: ["mysdk@2"],
202 key: "myapex.key",
203 certificate: ":myapex.cert",
204 }
205 `)
206
207 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common_myapex").Rule("combineJar").Output
208 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common_myapex2").Rule("combineJar").Output
209
210 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_myapex")
211 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_myapex2")
212
213 // Depending on the uses_sdks value, different libs are linked
214 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
215 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
216}
217
Paul Duffina0dbf432019-12-05 11:25:53 +0000218func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
219 result := testSdkWithJava(t, `
220 sdk {
221 name: "mysdk",
222 java_header_libs: ["myjavalib"],
223 }
224
225 java_library {
226 name: "myjavalib",
227 srcs: ["Test.java"],
228 aidl: {
229 export_include_dirs: ["aidl"],
230 },
231 system_modules: "none",
232 sdk_version: "none",
233 compile_dex: true,
234 host_supported: true,
235 }
236 `)
237
Paul Duffin1356d8c2020-02-25 19:26:33 +0000238 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000239 checkAndroidBpContents(`
240// This is auto-generated. DO NOT EDIT.
241
242java_import {
243 name: "mysdk_myjavalib@current",
244 sdk_member_name: "myjavalib",
245 jars: ["java/myjavalib.jar"],
246}
247
248java_import {
249 name: "myjavalib",
250 prefer: false,
251 jars: ["java/myjavalib.jar"],
252}
253
254sdk_snapshot {
255 name: "mysdk@current",
256 java_header_libs: ["mysdk_myjavalib@current"],
257}
258
259`),
260 checkAllCopyRules(`
261.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
262aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
263`),
264 )
265}
266
267func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
268 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
269 SkipIfNotLinux(t)
270
271 result := testSdkWithJava(t, `
272 sdk {
273 name: "mysdk",
274 device_supported: false,
275 host_supported: true,
276 java_header_libs: ["myjavalib"],
277 }
278
279 java_library {
280 name: "myjavalib",
281 device_supported: false,
282 host_supported: true,
283 srcs: ["Test.java"],
284 aidl: {
285 export_include_dirs: ["aidl"],
286 },
287 system_modules: "none",
288 sdk_version: "none",
289 compile_dex: true,
290 }
291 `)
292
Paul Duffin1356d8c2020-02-25 19:26:33 +0000293 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000294 checkAndroidBpContents(`
295// This is auto-generated. DO NOT EDIT.
296
297java_import {
298 name: "mysdk_myjavalib@current",
299 sdk_member_name: "myjavalib",
300 device_supported: false,
301 host_supported: true,
302 jars: ["java/myjavalib.jar"],
303}
304
305java_import {
306 name: "myjavalib",
307 prefer: false,
308 device_supported: false,
309 host_supported: true,
310 jars: ["java/myjavalib.jar"],
311}
312
313sdk_snapshot {
314 name: "mysdk@current",
315 device_supported: false,
316 host_supported: true,
317 java_header_libs: ["mysdk_myjavalib@current"],
318}
319`),
320 checkAllCopyRules(`
321.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
322aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
323`),
324 )
325}
326
Paul Duffina04c1072020-03-02 10:16:35 +0000327func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
328 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
329 SkipIfNotLinux(t)
330
331 result := testSdkWithJava(t, `
332 sdk {
333 name: "mysdk",
334 host_supported: true,
335 java_header_libs: ["myjavalib"],
336 }
337
338 java_library {
339 name: "myjavalib",
340 host_supported: true,
341 srcs: ["Test.java"],
342 system_modules: "none",
343 sdk_version: "none",
344 compile_dex: true,
345 }
346 `)
347
348 result.CheckSnapshot("mysdk", "",
349 checkAndroidBpContents(`
350// This is auto-generated. DO NOT EDIT.
351
352java_import {
353 name: "mysdk_myjavalib@current",
354 sdk_member_name: "myjavalib",
355 host_supported: true,
356 target: {
357 android: {
358 jars: ["java/android/myjavalib.jar"],
359 },
360 linux_glibc: {
361 jars: ["java/linux_glibc/myjavalib.jar"],
362 },
363 },
364}
365
366java_import {
367 name: "myjavalib",
368 prefer: false,
369 host_supported: true,
370 target: {
371 android: {
372 jars: ["java/android/myjavalib.jar"],
373 },
374 linux_glibc: {
375 jars: ["java/linux_glibc/myjavalib.jar"],
376 },
377 },
378}
379
380sdk_snapshot {
381 name: "mysdk@current",
382 host_supported: true,
383 java_header_libs: ["mysdk_myjavalib@current"],
384}
385`),
386 checkAllCopyRules(`
387.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
388.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
389`),
390 )
391}
392
Paul Duffina0dbf432019-12-05 11:25:53 +0000393func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000394 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000395 module_exports {
396 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000397 java_libs: ["myjavalib"],
398 }
399
400 java_library {
401 name: "myjavalib",
402 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100403 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000404 aidl: {
405 export_include_dirs: ["aidl"],
406 },
407 system_modules: "none",
408 sdk_version: "none",
409 compile_dex: true,
410 host_supported: true,
411 }
412 `)
413
Paul Duffin1356d8c2020-02-25 19:26:33 +0000414 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000415 checkAndroidBpContents(`
416// This is auto-generated. DO NOT EDIT.
417
418java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000419 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000420 sdk_member_name: "myjavalib",
421 jars: ["java/myjavalib.jar"],
422}
423
424java_import {
425 name: "myjavalib",
426 prefer: false,
427 jars: ["java/myjavalib.jar"],
428}
429
Paul Duffine6029182019-12-16 17:43:48 +0000430module_exports_snapshot {
431 name: "myexports@current",
432 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000433}
434
435`),
436 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100437.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000438aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
439`),
440 )
441}
442
Paul Duffina0dbf432019-12-05 11:25:53 +0000443func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffina80fdec2019-12-03 15:25:00 +0000444 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
445 SkipIfNotLinux(t)
446
Paul Duffind835daa2019-11-30 17:49:09 +0000447 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000448 module_exports {
449 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000450 device_supported: false,
451 host_supported: true,
452 java_libs: ["myjavalib"],
453 }
454
455 java_library {
456 name: "myjavalib",
457 device_supported: false,
458 host_supported: true,
459 srcs: ["Test.java"],
460 aidl: {
461 export_include_dirs: ["aidl"],
462 },
463 system_modules: "none",
464 sdk_version: "none",
465 compile_dex: true,
466 }
467 `)
468
Paul Duffin1356d8c2020-02-25 19:26:33 +0000469 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000470 checkAndroidBpContents(`
471// This is auto-generated. DO NOT EDIT.
472
473java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000474 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000475 sdk_member_name: "myjavalib",
476 device_supported: false,
477 host_supported: true,
478 jars: ["java/myjavalib.jar"],
479}
480
481java_import {
482 name: "myjavalib",
483 prefer: false,
484 device_supported: false,
485 host_supported: true,
486 jars: ["java/myjavalib.jar"],
487}
488
Paul Duffine6029182019-12-16 17:43:48 +0000489module_exports_snapshot {
490 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000491 device_supported: false,
492 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000493 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000494}
495`),
496 checkAllCopyRules(`
497.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
498aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
499`),
500 )
501}
502
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000503func TestSnapshotWithJavaTest(t *testing.T) {
504 result := testSdkWithJava(t, `
505 module_exports {
506 name: "myexports",
507 java_tests: ["myjavatests"],
508 }
509
510 java_test {
511 name: "myjavatests",
512 srcs: ["Test.java"],
513 system_modules: "none",
514 sdk_version: "none",
515 compile_dex: true,
516 host_supported: true,
517 }
518 `)
519
Paul Duffin1356d8c2020-02-25 19:26:33 +0000520 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000521 checkAndroidBpContents(`
522// This is auto-generated. DO NOT EDIT.
523
524java_test_import {
525 name: "myexports_myjavatests@current",
526 sdk_member_name: "myjavatests",
527 jars: ["java/myjavatests.jar"],
528 test_config: "java/myjavatests-AndroidTest.xml",
529}
530
531java_test_import {
532 name: "myjavatests",
533 prefer: false,
534 jars: ["java/myjavatests.jar"],
535 test_config: "java/myjavatests-AndroidTest.xml",
536}
537
538module_exports_snapshot {
539 name: "myexports@current",
540 java_tests: ["myexports_myjavatests@current"],
541}
542`),
543 checkAllCopyRules(`
544.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
545.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
546`),
547 )
548}
549
550func TestHostSnapshotWithJavaTest(t *testing.T) {
551 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
552 SkipIfNotLinux(t)
553
554 result := testSdkWithJava(t, `
555 module_exports {
556 name: "myexports",
557 device_supported: false,
558 host_supported: true,
559 java_tests: ["myjavatests"],
560 }
561
562 java_test {
563 name: "myjavatests",
564 device_supported: false,
565 host_supported: true,
566 srcs: ["Test.java"],
567 system_modules: "none",
568 sdk_version: "none",
569 compile_dex: true,
570 }
571 `)
572
Paul Duffin1356d8c2020-02-25 19:26:33 +0000573 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000574 checkAndroidBpContents(`
575// This is auto-generated. DO NOT EDIT.
576
577java_test_import {
578 name: "myexports_myjavatests@current",
579 sdk_member_name: "myjavatests",
580 device_supported: false,
581 host_supported: true,
582 jars: ["java/myjavatests.jar"],
583 test_config: "java/myjavatests-AndroidTest.xml",
584}
585
586java_test_import {
587 name: "myjavatests",
588 prefer: false,
589 device_supported: false,
590 host_supported: true,
591 jars: ["java/myjavatests.jar"],
592 test_config: "java/myjavatests-AndroidTest.xml",
593}
594
595module_exports_snapshot {
596 name: "myexports@current",
597 device_supported: false,
598 host_supported: true,
599 java_tests: ["myexports_myjavatests@current"],
600}
601`),
602 checkAllCopyRules(`
603.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
604.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
605`),
606 )
607}
608
Paul Duffind835daa2019-11-30 17:49:09 +0000609func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult {
610 t.Helper()
611
612 fs := map[string][]byte{
613 "foo/bar/Foo.java": nil,
614 "stubs-sources/foo/bar/Foo.java": nil,
615 }
616 return testSdkWithFs(t, bp, fs)
617}
618
Paul Duffina80fdec2019-12-03 15:25:00 +0000619// Note: This test does not verify that a droidstubs can be referenced, either
620// directly or indirectly from an APEX as droidstubs can never be a part of an
621// apex.
622func TestBasicSdkWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000623 testSdkWithDroidstubs(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000624 sdk {
625 name: "mysdk",
626 stubs_sources: ["mystub"],
627 }
628 sdk_snapshot {
629 name: "mysdk@10",
630 stubs_sources: ["mystub_mysdk@10"],
631 }
632 prebuilt_stubs_sources {
633 name: "mystub_mysdk@10",
634 sdk_member_name: "mystub",
635 srcs: ["stubs-sources/foo/bar/Foo.java"],
636 }
637 droidstubs {
638 name: "mystub",
639 srcs: ["foo/bar/Foo.java"],
640 sdk_version: "none",
641 system_modules: "none",
642 }
643 java_library {
644 name: "myjavalib",
645 srcs: [":mystub"],
646 sdk_version: "none",
647 system_modules: "none",
648 }
649 `)
650}
651
652func TestSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000653 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000654 module_exports {
655 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000656 stubs_sources: ["myjavaapistubs"],
657 }
658
659 droidstubs {
660 name: "myjavaapistubs",
661 srcs: ["foo/bar/Foo.java"],
662 system_modules: "none",
663 sdk_version: "none",
664 }
665 `)
666
Paul Duffin1356d8c2020-02-25 19:26:33 +0000667 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000668 checkAndroidBpContents(`
669// This is auto-generated. DO NOT EDIT.
670
671prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000672 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000673 sdk_member_name: "myjavaapistubs",
674 srcs: ["java/myjavaapistubs_stubs_sources"],
675}
676
677prebuilt_stubs_sources {
678 name: "myjavaapistubs",
679 prefer: false,
680 srcs: ["java/myjavaapistubs_stubs_sources"],
681}
682
Paul Duffine6029182019-12-16 17:43:48 +0000683module_exports_snapshot {
684 name: "myexports@current",
685 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000686}
687
688`),
689 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100690 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000691 )
692}
693
694func TestHostSnapshotWithDroidstubs(t *testing.T) {
695 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
696 SkipIfNotLinux(t)
697
Paul Duffind835daa2019-11-30 17:49:09 +0000698 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000699 module_exports {
700 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000701 device_supported: false,
702 host_supported: true,
703 stubs_sources: ["myjavaapistubs"],
704 }
705
706 droidstubs {
707 name: "myjavaapistubs",
708 device_supported: false,
709 host_supported: true,
710 srcs: ["foo/bar/Foo.java"],
711 system_modules: "none",
712 sdk_version: "none",
713 }
714 `)
715
Paul Duffin1356d8c2020-02-25 19:26:33 +0000716 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000717 checkAndroidBpContents(`
718// This is auto-generated. DO NOT EDIT.
719
720prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000721 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000722 sdk_member_name: "myjavaapistubs",
723 device_supported: false,
724 host_supported: true,
725 srcs: ["java/myjavaapistubs_stubs_sources"],
726}
727
728prebuilt_stubs_sources {
729 name: "myjavaapistubs",
730 prefer: false,
731 device_supported: false,
732 host_supported: true,
733 srcs: ["java/myjavaapistubs_stubs_sources"],
734}
735
Paul Duffine6029182019-12-16 17:43:48 +0000736module_exports_snapshot {
737 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000738 device_supported: false,
739 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000740 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000741}
742`),
743 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100744 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000745 )
746}
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000747
748func TestSnapshotWithJavaSystemModules(t *testing.T) {
749 result := testSdkWithJava(t, `
750 sdk {
751 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000752 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000753 java_system_modules: ["my-system-modules"],
754 }
755
756 java_system_modules {
757 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000758 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000759 }
760
761 java_library {
762 name: "system-module",
763 srcs: ["Test.java"],
764 sdk_version: "none",
765 system_modules: "none",
766 }
Paul Duffin72910952020-01-20 18:16:30 +0000767
768 java_library {
769 name: "exported-system-module",
770 srcs: ["Test.java"],
771 sdk_version: "none",
772 system_modules: "none",
773 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000774 `)
775
Paul Duffin1356d8c2020-02-25 19:26:33 +0000776 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000777 checkAndroidBpContents(`
778// This is auto-generated. DO NOT EDIT.
779
780java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000781 name: "mysdk_exported-system-module@current",
782 sdk_member_name: "exported-system-module",
783 jars: ["java/exported-system-module.jar"],
784}
785
786java_import {
787 name: "exported-system-module",
788 prefer: false,
789 jars: ["java/exported-system-module.jar"],
790}
791
792java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000793 name: "mysdk_system-module@current",
794 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000795 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000796 jars: ["java/system-module.jar"],
797}
798
799java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000800 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000801 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000802 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000803 jars: ["java/system-module.jar"],
804}
805
806java_system_modules_import {
807 name: "mysdk_my-system-modules@current",
808 sdk_member_name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000809 libs: [
810 "mysdk_system-module@current",
811 "mysdk_exported-system-module@current",
812 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000813}
814
815java_system_modules_import {
816 name: "my-system-modules",
817 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000818 libs: [
819 "mysdk_system-module",
820 "exported-system-module",
821 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000822}
823
824sdk_snapshot {
825 name: "mysdk@current",
Paul Duffin72910952020-01-20 18:16:30 +0000826 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000827 java_system_modules: ["mysdk_my-system-modules@current"],
828}
829`),
Paul Duffin72910952020-01-20 18:16:30 +0000830 checkAllCopyRules(`
831.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
832.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
833`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000834 )
835}
836
837func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
838 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
839 SkipIfNotLinux(t)
840
841 result := testSdkWithJava(t, `
842 sdk {
843 name: "mysdk",
844 device_supported: false,
845 host_supported: true,
846 java_system_modules: ["my-system-modules"],
847 }
848
849 java_system_modules {
850 name: "my-system-modules",
851 device_supported: false,
852 host_supported: true,
853 libs: ["system-module"],
854 }
855
856 java_library {
857 name: "system-module",
858 device_supported: false,
859 host_supported: true,
860 srcs: ["Test.java"],
861 sdk_version: "none",
862 system_modules: "none",
863 }
864 `)
865
Paul Duffin1356d8c2020-02-25 19:26:33 +0000866 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000867 checkAndroidBpContents(`
868// This is auto-generated. DO NOT EDIT.
869
870java_import {
871 name: "mysdk_system-module@current",
872 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000873 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000874 device_supported: false,
875 host_supported: true,
876 jars: ["java/system-module.jar"],
877}
878
879java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000880 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000881 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000882 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000883 device_supported: false,
884 host_supported: true,
885 jars: ["java/system-module.jar"],
886}
887
888java_system_modules_import {
889 name: "mysdk_my-system-modules@current",
890 sdk_member_name: "my-system-modules",
891 device_supported: false,
892 host_supported: true,
893 libs: ["mysdk_system-module@current"],
894}
895
896java_system_modules_import {
897 name: "my-system-modules",
898 prefer: false,
899 device_supported: false,
900 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000901 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000902}
903
904sdk_snapshot {
905 name: "mysdk@current",
906 device_supported: false,
907 host_supported: true,
908 java_system_modules: ["mysdk_my-system-modules@current"],
909}
910`),
911 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
912 )
913}
Paul Duffin865171e2020-03-02 18:38:15 +0000914
915func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
916 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
917 SkipIfNotLinux(t)
918
919 result := testSdkWithJava(t, `
920 module_exports {
921 name: "myexports",
922 host_supported: true,
923 java_libs: ["myjavalib"],
924 target: {
925 android: {
926 java_header_libs: ["androidjavalib"],
927 },
928 host: {
929 java_header_libs: ["hostjavalib"],
930 },
931 },
932 }
933
934 java_library {
935 name: "myjavalib",
936 host_supported: true,
937 srcs: ["Test.java"],
938 system_modules: "none",
939 sdk_version: "none",
940 }
941
942 java_library {
943 name: "androidjavalib",
944 srcs: ["Test.java"],
945 system_modules: "none",
946 sdk_version: "none",
947 }
948
949 java_library_host {
950 name: "hostjavalib",
951 srcs: ["Test.java"],
952 }
953 `)
954
955 result.CheckSnapshot("myexports", "",
956 checkAndroidBpContents(`
957// This is auto-generated. DO NOT EDIT.
958
959java_import {
960 name: "myexports_hostjavalib@current",
961 sdk_member_name: "hostjavalib",
962 device_supported: false,
963 host_supported: true,
964 jars: ["java/hostjavalib.jar"],
965}
966
967java_import {
968 name: "hostjavalib",
969 prefer: false,
970 device_supported: false,
971 host_supported: true,
972 jars: ["java/hostjavalib.jar"],
973}
974
975java_import {
976 name: "myexports_androidjavalib@current",
977 sdk_member_name: "androidjavalib",
978 jars: ["java/androidjavalib.jar"],
979}
980
981java_import {
982 name: "androidjavalib",
983 prefer: false,
984 jars: ["java/androidjavalib.jar"],
985}
986
987java_import {
988 name: "myexports_myjavalib@current",
989 sdk_member_name: "myjavalib",
990 host_supported: true,
991 target: {
992 android: {
993 jars: ["java/android/myjavalib.jar"],
994 },
995 linux_glibc: {
996 jars: ["java/linux_glibc/myjavalib.jar"],
997 },
998 },
999}
1000
1001java_import {
1002 name: "myjavalib",
1003 prefer: false,
1004 host_supported: true,
1005 target: {
1006 android: {
1007 jars: ["java/android/myjavalib.jar"],
1008 },
1009 linux_glibc: {
1010 jars: ["java/linux_glibc/myjavalib.jar"],
1011 },
1012 },
1013}
1014
1015module_exports_snapshot {
1016 name: "myexports@current",
1017 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001018 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001019 target: {
1020 android: {
1021 java_header_libs: ["myexports_androidjavalib@current"],
1022 },
1023 linux_glibc: {
1024 java_header_libs: ["myexports_hostjavalib@current"],
1025 },
1026 },
Paul Duffin865171e2020-03-02 18:38:15 +00001027}
1028`),
1029 checkAllCopyRules(`
1030.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1031.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1032.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1033.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1034`),
1035 )
1036}
Paul Duffindd46f712020-02-10 13:37:10 +00001037
1038func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1039 result := testSdkWithJava(t, `
1040 sdk {
1041 name: "mysdk",
1042 java_sdk_libs: ["myjavalib"],
1043 }
1044
1045 java_sdk_library {
1046 name: "myjavalib",
1047 apex_available: ["//apex_available:anyapex"],
1048 srcs: ["Test.java"],
1049 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001050 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001051 stubs_library_visibility: ["//other"],
1052 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001053 }
1054 `)
1055
1056 result.CheckSnapshot("mysdk", "",
1057 checkAndroidBpContents(`
1058// This is auto-generated. DO NOT EDIT.
1059
1060java_sdk_library_import {
1061 name: "mysdk_myjavalib@current",
1062 sdk_member_name: "myjavalib",
1063 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001064 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001065 public: {
1066 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001067 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001068 current_api: "sdk_library/public/myjavalib.txt",
1069 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001070 sdk_version: "current",
1071 },
1072 system: {
1073 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001074 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001075 current_api: "sdk_library/system/myjavalib.txt",
1076 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001077 sdk_version: "system_current",
1078 },
1079 test: {
1080 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001081 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001082 current_api: "sdk_library/test/myjavalib.txt",
1083 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001084 sdk_version: "test_current",
1085 },
1086}
1087
1088java_sdk_library_import {
1089 name: "myjavalib",
1090 prefer: false,
1091 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001092 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001093 public: {
1094 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001095 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001096 current_api: "sdk_library/public/myjavalib.txt",
1097 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001098 sdk_version: "current",
1099 },
1100 system: {
1101 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001102 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001103 current_api: "sdk_library/system/myjavalib.txt",
1104 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001105 sdk_version: "system_current",
1106 },
1107 test: {
1108 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001109 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001110 current_api: "sdk_library/test/myjavalib.txt",
1111 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001112 sdk_version: "test_current",
1113 },
1114}
1115
1116sdk_snapshot {
1117 name: "mysdk@current",
1118 java_sdk_libs: ["mysdk_myjavalib@current"],
1119}
1120`),
1121 checkAllCopyRules(`
1122.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001123.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001124.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001125.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001126.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 +01001127.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 +00001128.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001129.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 +01001130.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 +00001131`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001132 checkMergeZips(
1133 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1134 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1135 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001136 )
1137}
Paul Duffin3375e352020-04-28 10:44:03 +01001138
Paul Duffin780c5f42020-05-12 15:52:55 +01001139func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1140 result := testSdkWithJava(t, `
1141 sdk {
1142 name: "mysdk",
1143 java_sdk_libs: ["myjavalib"],
1144 }
1145
1146 java_sdk_library {
1147 name: "myjavalib",
1148 srcs: ["Test.java"],
1149 sdk_version: "none",
1150 system_modules: "none",
1151 }
1152 `)
1153
1154 result.CheckSnapshot("mysdk", "",
1155 checkAndroidBpContents(`
1156// This is auto-generated. DO NOT EDIT.
1157
1158java_sdk_library_import {
1159 name: "mysdk_myjavalib@current",
1160 sdk_member_name: "myjavalib",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001161 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001162 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: "none",
1168 },
1169}
1170
1171java_sdk_library_import {
1172 name: "myjavalib",
1173 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001174 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +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: "none",
1181 },
1182}
1183
1184sdk_snapshot {
1185 name: "mysdk@current",
1186 java_sdk_libs: ["mysdk_myjavalib@current"],
1187}
1188`),
1189 checkAllCopyRules(`
1190.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1191.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001192.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001193`),
1194 checkMergeZips(
1195 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1196 ),
1197 )
1198}
1199
Paul Duffin87a05a32020-05-12 11:50:28 +01001200func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1201 result := testSdkWithJava(t, `
1202 sdk {
1203 name: "mysdk",
1204 java_sdk_libs: ["myjavalib"],
1205 }
1206
1207 java_sdk_library {
1208 name: "myjavalib",
1209 srcs: ["Test.java"],
1210 sdk_version: "module_current",
1211 public: {
1212 enabled: true,
1213 sdk_version: "module_current",
1214 },
1215 }
1216 `)
1217
1218 result.CheckSnapshot("mysdk", "",
1219 checkAndroidBpContents(`
1220// This is auto-generated. DO NOT EDIT.
1221
1222java_sdk_library_import {
1223 name: "mysdk_myjavalib@current",
1224 sdk_member_name: "myjavalib",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001225 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001226 public: {
1227 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1228 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1229 current_api: "sdk_library/public/myjavalib.txt",
1230 removed_api: "sdk_library/public/myjavalib-removed.txt",
1231 sdk_version: "module_current",
1232 },
1233}
1234
1235java_sdk_library_import {
1236 name: "myjavalib",
1237 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001238 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001239 public: {
1240 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1241 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1242 current_api: "sdk_library/public/myjavalib.txt",
1243 removed_api: "sdk_library/public/myjavalib-removed.txt",
1244 sdk_version: "module_current",
1245 },
1246}
1247
1248sdk_snapshot {
1249 name: "mysdk@current",
1250 java_sdk_libs: ["mysdk_myjavalib@current"],
1251}
1252`),
1253 checkAllCopyRules(`
1254.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1255.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001256.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001257`),
1258 checkMergeZips(
1259 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1260 ),
1261 )
1262}
1263
1264func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001265 result := testSdkWithJava(t, `
1266 sdk {
1267 name: "mysdk",
1268 java_sdk_libs: ["myjavalib"],
1269 }
1270
1271 java_sdk_library {
1272 name: "myjavalib",
1273 apex_available: ["//apex_available:anyapex"],
1274 srcs: ["Test.java"],
1275 sdk_version: "current",
1276 public: {
1277 enabled: true,
1278 },
1279 system: {
1280 enabled: true,
1281 },
1282 }
1283 `)
1284
1285 result.CheckSnapshot("mysdk", "",
1286 checkAndroidBpContents(`
1287// This is auto-generated. DO NOT EDIT.
1288
1289java_sdk_library_import {
1290 name: "mysdk_myjavalib@current",
1291 sdk_member_name: "myjavalib",
1292 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001293 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001294 public: {
1295 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1296 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1297 current_api: "sdk_library/public/myjavalib.txt",
1298 removed_api: "sdk_library/public/myjavalib-removed.txt",
1299 sdk_version: "current",
1300 },
1301 system: {
1302 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1303 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1304 current_api: "sdk_library/system/myjavalib.txt",
1305 removed_api: "sdk_library/system/myjavalib-removed.txt",
1306 sdk_version: "system_current",
1307 },
1308}
1309
1310java_sdk_library_import {
1311 name: "myjavalib",
1312 prefer: false,
1313 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001314 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001315 public: {
1316 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1317 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1318 current_api: "sdk_library/public/myjavalib.txt",
1319 removed_api: "sdk_library/public/myjavalib-removed.txt",
1320 sdk_version: "current",
1321 },
1322 system: {
1323 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1324 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1325 current_api: "sdk_library/system/myjavalib.txt",
1326 removed_api: "sdk_library/system/myjavalib-removed.txt",
1327 sdk_version: "system_current",
1328 },
1329}
1330
1331sdk_snapshot {
1332 name: "mysdk@current",
1333 java_sdk_libs: ["mysdk_myjavalib@current"],
1334}
1335`),
1336 checkAllCopyRules(`
1337.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1338.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001339.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001340.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1341.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 +01001342.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 +01001343`),
1344 checkMergeZips(
1345 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1346 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1347 ),
1348 )
1349}
Paul Duffin8f265b92020-04-28 14:13:56 +01001350
1351func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1352 result := testSdkWithJava(t, `
1353 sdk {
1354 name: "mysdk",
1355 java_sdk_libs: ["myjavalib"],
1356 }
1357
1358 java_sdk_library {
1359 name: "myjavalib",
1360 apex_available: ["//apex_available:anyapex"],
1361 srcs: ["Test.java"],
1362 sdk_version: "current",
1363 public: {
1364 enabled: true,
1365 },
1366 system: {
1367 enabled: true,
1368 },
1369 module_lib: {
1370 enabled: true,
1371 },
1372 }
1373 `)
1374
1375 result.CheckSnapshot("mysdk", "",
1376 checkAndroidBpContents(`
1377// This is auto-generated. DO NOT EDIT.
1378
1379java_sdk_library_import {
1380 name: "mysdk_myjavalib@current",
1381 sdk_member_name: "myjavalib",
1382 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001383 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001384 public: {
1385 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1386 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1387 current_api: "sdk_library/public/myjavalib.txt",
1388 removed_api: "sdk_library/public/myjavalib-removed.txt",
1389 sdk_version: "current",
1390 },
1391 system: {
1392 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1393 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1394 current_api: "sdk_library/system/myjavalib.txt",
1395 removed_api: "sdk_library/system/myjavalib-removed.txt",
1396 sdk_version: "system_current",
1397 },
1398 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001399 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1400 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1401 current_api: "sdk_library/module-lib/myjavalib.txt",
1402 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001403 sdk_version: "module_current",
1404 },
1405}
1406
1407java_sdk_library_import {
1408 name: "myjavalib",
1409 prefer: false,
1410 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001411 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001412 public: {
1413 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1414 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1415 current_api: "sdk_library/public/myjavalib.txt",
1416 removed_api: "sdk_library/public/myjavalib-removed.txt",
1417 sdk_version: "current",
1418 },
1419 system: {
1420 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1421 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1422 current_api: "sdk_library/system/myjavalib.txt",
1423 removed_api: "sdk_library/system/myjavalib-removed.txt",
1424 sdk_version: "system_current",
1425 },
1426 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001427 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1428 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1429 current_api: "sdk_library/module-lib/myjavalib.txt",
1430 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001431 sdk_version: "module_current",
1432 },
1433}
1434
1435sdk_snapshot {
1436 name: "mysdk@current",
1437 java_sdk_libs: ["mysdk_myjavalib@current"],
1438}
1439`),
1440 checkAllCopyRules(`
1441.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1442.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001443.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001444.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1445.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 +01001446.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 +01001447.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
1448.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 +01001449.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 +01001450`),
1451 checkMergeZips(
1452 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1453 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001454 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001455 ),
1456 )
1457}
Paul Duffinf7a64332020-05-13 16:54:55 +01001458
Paul Duffin0c5bae52020-06-02 13:00:08 +01001459func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1460 result := testSdkWithJava(t, `
1461 sdk {
1462 name: "mysdk",
1463 java_sdk_libs: ["myjavalib"],
1464 }
1465
1466 java_sdk_library {
1467 name: "myjavalib",
1468 apex_available: ["//apex_available:anyapex"],
1469 srcs: ["Test.java"],
1470 sdk_version: "current",
1471 public: {
1472 enabled: true,
1473 },
1474 system_server: {
1475 enabled: true,
1476 },
1477 }
1478 `)
1479
1480 result.CheckSnapshot("mysdk", "",
1481 checkAndroidBpContents(`
1482// This is auto-generated. DO NOT EDIT.
1483
1484java_sdk_library_import {
1485 name: "mysdk_myjavalib@current",
1486 sdk_member_name: "myjavalib",
1487 apex_available: ["//apex_available:anyapex"],
1488 shared_library: true,
1489 public: {
1490 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1491 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1492 current_api: "sdk_library/public/myjavalib.txt",
1493 removed_api: "sdk_library/public/myjavalib-removed.txt",
1494 sdk_version: "current",
1495 },
1496 system_server: {
1497 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1498 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1499 current_api: "sdk_library/system-server/myjavalib.txt",
1500 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1501 sdk_version: "system_server_current",
1502 },
1503}
1504
1505java_sdk_library_import {
1506 name: "myjavalib",
1507 prefer: false,
1508 apex_available: ["//apex_available:anyapex"],
1509 shared_library: true,
1510 public: {
1511 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1512 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1513 current_api: "sdk_library/public/myjavalib.txt",
1514 removed_api: "sdk_library/public/myjavalib-removed.txt",
1515 sdk_version: "current",
1516 },
1517 system_server: {
1518 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1519 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1520 current_api: "sdk_library/system-server/myjavalib.txt",
1521 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1522 sdk_version: "system_server_current",
1523 },
1524}
1525
1526sdk_snapshot {
1527 name: "mysdk@current",
1528 java_sdk_libs: ["mysdk_myjavalib@current"],
1529}
1530`),
1531 checkAllCopyRules(`
1532.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1533.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1534.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1535.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1536.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1537.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1538`),
1539 checkMergeZips(
1540 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1541 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1542 ),
1543 )
1544}
1545
Paul Duffinf7a64332020-05-13 16:54:55 +01001546func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1547 result := testSdkWithJava(t, `
1548 sdk {
1549 name: "mysdk",
1550 java_sdk_libs: ["myjavalib"],
1551 }
1552
1553 java_sdk_library {
1554 name: "myjavalib",
1555 apex_available: ["//apex_available:anyapex"],
1556 srcs: ["Test.java"],
1557 sdk_version: "current",
1558 naming_scheme: "framework-modules",
1559 public: {
1560 enabled: true,
1561 },
1562 }
1563 `)
1564
1565 result.CheckSnapshot("mysdk", "",
1566 checkAndroidBpContents(`
1567// This is auto-generated. DO NOT EDIT.
1568
1569java_sdk_library_import {
1570 name: "mysdk_myjavalib@current",
1571 sdk_member_name: "myjavalib",
1572 apex_available: ["//apex_available:anyapex"],
1573 naming_scheme: "framework-modules",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001574 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001575 public: {
1576 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1577 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1578 current_api: "sdk_library/public/myjavalib.txt",
1579 removed_api: "sdk_library/public/myjavalib-removed.txt",
1580 sdk_version: "current",
1581 },
1582}
1583
1584java_sdk_library_import {
1585 name: "myjavalib",
1586 prefer: false,
1587 apex_available: ["//apex_available:anyapex"],
1588 naming_scheme: "framework-modules",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001589 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001590 public: {
1591 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1592 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1593 current_api: "sdk_library/public/myjavalib.txt",
1594 removed_api: "sdk_library/public/myjavalib-removed.txt",
1595 sdk_version: "current",
1596 },
1597}
1598
1599sdk_snapshot {
1600 name: "mysdk@current",
1601 java_sdk_libs: ["mysdk_myjavalib@current"],
1602}
1603`),
1604 checkAllCopyRules(`
1605.intermediates/myjavalib-stubs-publicapi/android_common/javac/myjavalib-stubs-publicapi.jar -> sdk_library/public/myjavalib-stubs.jar
1606.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 +01001607.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 +01001608`),
1609 checkMergeZips(
1610 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1611 ),
1612 )
1613}