blob: 23ecb6d069b78eb77f35b16d6f7e8d3db41978c8 [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 Duffina2ae7e02020-09-11 11:55:00 +010046 "docs/known_doctags": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000047 }
Paul Duffindd46f712020-02-10 13:37:10 +000048
49 // for java_sdk_library tests
50 bp = `
51java_system_modules_import {
52 name: "core-current-stubs-system-modules",
53}
54java_system_modules_import {
Pete Gillin84c38072020-07-09 18:03:41 +010055 name: "stable-core-platform-api-stubs-system-modules",
Paul Duffindd46f712020-02-10 13:37:10 +000056}
57java_import {
Pete Gillin84c38072020-07-09 18:03:41 +010058 name: "stable.core.platform.api.stubs",
Paul Duffindd46f712020-02-10 13:37:10 +000059}
Paul Duffin260bd312020-04-28 14:15:17 +010060java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000061 name: "android_stubs_current",
62}
Paul Duffin260bd312020-04-28 14:15:17 +010063java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000064 name: "android_system_stubs_current",
65}
Paul Duffin260bd312020-04-28 14:15:17 +010066java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000067 name: "android_test_stubs_current",
68}
69java_import {
Paul Duffin8f265b92020-04-28 14:13:56 +010070 name: "android_module_lib_stubs_current",
71}
72java_import {
Paul Duffin0c5bae52020-06-02 13:00:08 +010073 name: "android_system_server_stubs_current",
74}
75java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000076 name: "core-lambda-stubs",
77 sdk_version: "none",
78}
79java_import {
80 name: "ext",
81 sdk_version: "none",
82}
83java_import {
84 name: "framework",
85 sdk_version: "none",
86}
87` + bp
88
Paul Duffind835daa2019-11-30 17:49:09 +000089 return testSdkWithFs(t, bp, fs)
90}
91
Paul Duffina80fdec2019-12-03 15:25:00 +000092// Contains tests for SDK members provided by the java package.
93
Paul Duffincee7e662020-07-09 17:32:57 +010094func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
95 result := testSdkWithJava(t, `
96 sdk {
97 name: "mysdk",
98 java_header_libs: ["sdkmember"],
99 }
100
101 java_library {
102 name: "sdkmember",
103 srcs: ["Test.java"],
104 system_modules: "none",
105 sdk_version: "none",
106 }
107
108 java_import {
109 name: "sdkmember",
110 prefer: true,
111 jars: ["prebuilt.jar"],
112 }
113 `)
114
115 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
116 java.CheckModuleDependencies(t, result.ctx, "mysdk", "android_common", []string{"sdkmember"})
117
118 result.CheckSnapshot("mysdk", "",
119 checkAndroidBpContents(`// This is auto-generated. DO NOT EDIT.
120
121java_import {
122 name: "mysdk_sdkmember@current",
123 sdk_member_name: "sdkmember",
124 jars: ["java/sdkmember.jar"],
125}
126
127java_import {
128 name: "sdkmember",
129 prefer: false,
130 jars: ["java/sdkmember.jar"],
131}
132
133sdk_snapshot {
134 name: "mysdk@current",
135 java_header_libs: ["mysdk_sdkmember@current"],
136}
137`))
138}
139
Paul Duffina80fdec2019-12-03 15:25:00 +0000140func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000141 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000142 sdk {
143 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +0900144 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000145 }
146
147 sdk_snapshot {
148 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +0000149 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000150 }
151
152 sdk_snapshot {
153 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +0000154 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000155 }
156
Jiyong Park0f80c182020-01-31 02:49:53 +0900157 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000158 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900159 srcs: ["Test.java"],
160 system_modules: "none",
161 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000162 host_supported: true,
163 }
164
165 java_import {
166 name: "sdkmember_mysdk_1",
167 sdk_member_name: "sdkmember",
168 host_supported: true,
169 }
170
171 java_import {
172 name: "sdkmember_mysdk_2",
173 sdk_member_name: "sdkmember",
174 host_supported: true,
175 }
176
177 java_library {
178 name: "myjavalib",
179 srcs: ["Test.java"],
180 libs: ["sdkmember"],
181 system_modules: "none",
182 sdk_version: "none",
183 compile_dex: true,
184 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000185 apex_available: [
186 "myapex",
187 "myapex2",
188 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000189 }
190
191 apex {
192 name: "myapex",
193 java_libs: ["myjavalib"],
194 uses_sdks: ["mysdk@1"],
195 key: "myapex.key",
196 certificate: ":myapex.cert",
197 }
198
199 apex {
200 name: "myapex2",
201 java_libs: ["myjavalib"],
202 uses_sdks: ["mysdk@2"],
203 key: "myapex.key",
204 certificate: ":myapex.cert",
205 }
206 `)
207
Paul Duffina37eca22020-07-22 13:00:54 +0100208 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
209 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000210
Colin Crossaede88c2020-08-11 12:17:01 -0700211 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
212 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000213
214 // Depending on the uses_sdks value, different libs are linked
215 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
216 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
217}
218
Paul Duffina0dbf432019-12-05 11:25:53 +0000219func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
220 result := testSdkWithJava(t, `
221 sdk {
222 name: "mysdk",
223 java_header_libs: ["myjavalib"],
224 }
225
226 java_library {
227 name: "myjavalib",
228 srcs: ["Test.java"],
229 aidl: {
230 export_include_dirs: ["aidl"],
231 },
232 system_modules: "none",
233 sdk_version: "none",
234 compile_dex: true,
235 host_supported: true,
236 }
237 `)
238
Paul Duffin1356d8c2020-02-25 19:26:33 +0000239 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000240 checkAndroidBpContents(`
241// This is auto-generated. DO NOT EDIT.
242
243java_import {
244 name: "mysdk_myjavalib@current",
245 sdk_member_name: "myjavalib",
246 jars: ["java/myjavalib.jar"],
247}
248
249java_import {
250 name: "myjavalib",
251 prefer: false,
252 jars: ["java/myjavalib.jar"],
253}
254
255sdk_snapshot {
256 name: "mysdk@current",
257 java_header_libs: ["mysdk_myjavalib@current"],
258}
259
260`),
261 checkAllCopyRules(`
262.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
263aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
264`),
265 )
266}
267
268func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina0dbf432019-12-05 11:25:53 +0000269 result := testSdkWithJava(t, `
270 sdk {
271 name: "mysdk",
272 device_supported: false,
273 host_supported: true,
274 java_header_libs: ["myjavalib"],
275 }
276
277 java_library {
278 name: "myjavalib",
279 device_supported: false,
280 host_supported: true,
281 srcs: ["Test.java"],
282 aidl: {
283 export_include_dirs: ["aidl"],
284 },
285 system_modules: "none",
286 sdk_version: "none",
287 compile_dex: true,
288 }
289 `)
290
Paul Duffin1356d8c2020-02-25 19:26:33 +0000291 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000292 checkAndroidBpContents(`
293// This is auto-generated. DO NOT EDIT.
294
295java_import {
296 name: "mysdk_myjavalib@current",
297 sdk_member_name: "myjavalib",
298 device_supported: false,
299 host_supported: true,
300 jars: ["java/myjavalib.jar"],
301}
302
303java_import {
304 name: "myjavalib",
305 prefer: false,
306 device_supported: false,
307 host_supported: true,
308 jars: ["java/myjavalib.jar"],
309}
310
311sdk_snapshot {
312 name: "mysdk@current",
313 device_supported: false,
314 host_supported: true,
315 java_header_libs: ["mysdk_myjavalib@current"],
316}
317`),
318 checkAllCopyRules(`
319.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
320aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
321`),
322 )
323}
324
Paul Duffina04c1072020-03-02 10:16:35 +0000325func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina04c1072020-03-02 10:16:35 +0000326 result := testSdkWithJava(t, `
327 sdk {
328 name: "mysdk",
329 host_supported: true,
330 java_header_libs: ["myjavalib"],
331 }
332
333 java_library {
334 name: "myjavalib",
335 host_supported: true,
336 srcs: ["Test.java"],
337 system_modules: "none",
338 sdk_version: "none",
339 compile_dex: true,
340 }
341 `)
342
343 result.CheckSnapshot("mysdk", "",
344 checkAndroidBpContents(`
345// This is auto-generated. DO NOT EDIT.
346
347java_import {
348 name: "mysdk_myjavalib@current",
349 sdk_member_name: "myjavalib",
350 host_supported: true,
351 target: {
352 android: {
353 jars: ["java/android/myjavalib.jar"],
354 },
355 linux_glibc: {
356 jars: ["java/linux_glibc/myjavalib.jar"],
357 },
358 },
359}
360
361java_import {
362 name: "myjavalib",
363 prefer: false,
364 host_supported: true,
365 target: {
366 android: {
367 jars: ["java/android/myjavalib.jar"],
368 },
369 linux_glibc: {
370 jars: ["java/linux_glibc/myjavalib.jar"],
371 },
372 },
373}
374
375sdk_snapshot {
376 name: "mysdk@current",
377 host_supported: true,
378 java_header_libs: ["mysdk_myjavalib@current"],
379}
380`),
381 checkAllCopyRules(`
382.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
383.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
384`),
385 )
386}
387
Paul Duffina0dbf432019-12-05 11:25:53 +0000388func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000389 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000390 module_exports {
391 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000392 java_libs: ["myjavalib"],
393 }
394
395 java_library {
396 name: "myjavalib",
397 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100398 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000399 aidl: {
400 export_include_dirs: ["aidl"],
401 },
402 system_modules: "none",
403 sdk_version: "none",
404 compile_dex: true,
405 host_supported: true,
406 }
407 `)
408
Paul Duffin1356d8c2020-02-25 19:26:33 +0000409 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000410 checkAndroidBpContents(`
411// This is auto-generated. DO NOT EDIT.
412
413java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000414 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000415 sdk_member_name: "myjavalib",
416 jars: ["java/myjavalib.jar"],
417}
418
419java_import {
420 name: "myjavalib",
421 prefer: false,
422 jars: ["java/myjavalib.jar"],
423}
424
Paul Duffine6029182019-12-16 17:43:48 +0000425module_exports_snapshot {
426 name: "myexports@current",
427 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000428}
429
430`),
431 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100432.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000433aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
434`),
435 )
436}
437
Paul Duffina0dbf432019-12-05 11:25:53 +0000438func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000439 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000440 module_exports {
441 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000442 device_supported: false,
443 host_supported: true,
444 java_libs: ["myjavalib"],
445 }
446
447 java_library {
448 name: "myjavalib",
449 device_supported: false,
450 host_supported: true,
451 srcs: ["Test.java"],
452 aidl: {
453 export_include_dirs: ["aidl"],
454 },
455 system_modules: "none",
456 sdk_version: "none",
457 compile_dex: true,
458 }
459 `)
460
Paul Duffin1356d8c2020-02-25 19:26:33 +0000461 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000462 checkAndroidBpContents(`
463// This is auto-generated. DO NOT EDIT.
464
465java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000466 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000467 sdk_member_name: "myjavalib",
468 device_supported: false,
469 host_supported: true,
470 jars: ["java/myjavalib.jar"],
471}
472
473java_import {
474 name: "myjavalib",
475 prefer: false,
476 device_supported: false,
477 host_supported: true,
478 jars: ["java/myjavalib.jar"],
479}
480
Paul Duffine6029182019-12-16 17:43:48 +0000481module_exports_snapshot {
482 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000483 device_supported: false,
484 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000485 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000486}
487`),
488 checkAllCopyRules(`
489.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
490aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
491`),
492 )
493}
494
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000495func TestSnapshotWithJavaTest(t *testing.T) {
496 result := testSdkWithJava(t, `
497 module_exports {
498 name: "myexports",
499 java_tests: ["myjavatests"],
500 }
501
502 java_test {
503 name: "myjavatests",
504 srcs: ["Test.java"],
505 system_modules: "none",
506 sdk_version: "none",
507 compile_dex: true,
508 host_supported: true,
509 }
510 `)
511
Paul Duffin1356d8c2020-02-25 19:26:33 +0000512 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000513 checkAndroidBpContents(`
514// This is auto-generated. DO NOT EDIT.
515
516java_test_import {
517 name: "myexports_myjavatests@current",
518 sdk_member_name: "myjavatests",
519 jars: ["java/myjavatests.jar"],
520 test_config: "java/myjavatests-AndroidTest.xml",
521}
522
523java_test_import {
524 name: "myjavatests",
525 prefer: false,
526 jars: ["java/myjavatests.jar"],
527 test_config: "java/myjavatests-AndroidTest.xml",
528}
529
530module_exports_snapshot {
531 name: "myexports@current",
532 java_tests: ["myexports_myjavatests@current"],
533}
534`),
535 checkAllCopyRules(`
536.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
537.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
538`),
539 )
540}
541
542func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000543 result := testSdkWithJava(t, `
544 module_exports {
545 name: "myexports",
546 device_supported: false,
547 host_supported: true,
548 java_tests: ["myjavatests"],
549 }
550
551 java_test {
552 name: "myjavatests",
553 device_supported: false,
554 host_supported: true,
555 srcs: ["Test.java"],
556 system_modules: "none",
557 sdk_version: "none",
558 compile_dex: true,
559 }
560 `)
561
Paul Duffin1356d8c2020-02-25 19:26:33 +0000562 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000563 checkAndroidBpContents(`
564// This is auto-generated. DO NOT EDIT.
565
566java_test_import {
567 name: "myexports_myjavatests@current",
568 sdk_member_name: "myjavatests",
569 device_supported: false,
570 host_supported: true,
571 jars: ["java/myjavatests.jar"],
572 test_config: "java/myjavatests-AndroidTest.xml",
573}
574
575java_test_import {
576 name: "myjavatests",
577 prefer: false,
578 device_supported: false,
579 host_supported: true,
580 jars: ["java/myjavatests.jar"],
581 test_config: "java/myjavatests-AndroidTest.xml",
582}
583
584module_exports_snapshot {
585 name: "myexports@current",
586 device_supported: false,
587 host_supported: true,
588 java_tests: ["myexports_myjavatests@current"],
589}
590`),
591 checkAllCopyRules(`
592.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
593.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
594`),
595 )
596}
597
Paul Duffind835daa2019-11-30 17:49:09 +0000598func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult {
599 t.Helper()
600
601 fs := map[string][]byte{
602 "foo/bar/Foo.java": nil,
603 "stubs-sources/foo/bar/Foo.java": nil,
604 }
605 return testSdkWithFs(t, bp, fs)
606}
607
Paul Duffina80fdec2019-12-03 15:25:00 +0000608// Note: This test does not verify that a droidstubs can be referenced, either
609// directly or indirectly from an APEX as droidstubs can never be a part of an
610// apex.
611func TestBasicSdkWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000612 testSdkWithDroidstubs(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000613 sdk {
614 name: "mysdk",
615 stubs_sources: ["mystub"],
616 }
617 sdk_snapshot {
618 name: "mysdk@10",
619 stubs_sources: ["mystub_mysdk@10"],
620 }
621 prebuilt_stubs_sources {
622 name: "mystub_mysdk@10",
623 sdk_member_name: "mystub",
624 srcs: ["stubs-sources/foo/bar/Foo.java"],
625 }
626 droidstubs {
627 name: "mystub",
628 srcs: ["foo/bar/Foo.java"],
629 sdk_version: "none",
630 system_modules: "none",
631 }
632 java_library {
633 name: "myjavalib",
634 srcs: [":mystub"],
635 sdk_version: "none",
636 system_modules: "none",
637 }
638 `)
639}
640
641func TestSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000642 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000643 module_exports {
644 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000645 stubs_sources: ["myjavaapistubs"],
646 }
647
648 droidstubs {
649 name: "myjavaapistubs",
650 srcs: ["foo/bar/Foo.java"],
651 system_modules: "none",
652 sdk_version: "none",
653 }
654 `)
655
Paul Duffin1356d8c2020-02-25 19:26:33 +0000656 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000657 checkAndroidBpContents(`
658// This is auto-generated. DO NOT EDIT.
659
660prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000661 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000662 sdk_member_name: "myjavaapistubs",
663 srcs: ["java/myjavaapistubs_stubs_sources"],
664}
665
666prebuilt_stubs_sources {
667 name: "myjavaapistubs",
668 prefer: false,
669 srcs: ["java/myjavaapistubs_stubs_sources"],
670}
671
Paul Duffine6029182019-12-16 17:43:48 +0000672module_exports_snapshot {
673 name: "myexports@current",
674 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000675}
676
677`),
678 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100679 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000680 )
681}
682
683func TestHostSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000684 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000685 module_exports {
686 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000687 device_supported: false,
688 host_supported: true,
689 stubs_sources: ["myjavaapistubs"],
690 }
691
692 droidstubs {
693 name: "myjavaapistubs",
694 device_supported: false,
695 host_supported: true,
696 srcs: ["foo/bar/Foo.java"],
697 system_modules: "none",
698 sdk_version: "none",
699 }
700 `)
701
Paul Duffin1356d8c2020-02-25 19:26:33 +0000702 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000703 checkAndroidBpContents(`
704// This is auto-generated. DO NOT EDIT.
705
706prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000707 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000708 sdk_member_name: "myjavaapistubs",
709 device_supported: false,
710 host_supported: true,
711 srcs: ["java/myjavaapistubs_stubs_sources"],
712}
713
714prebuilt_stubs_sources {
715 name: "myjavaapistubs",
716 prefer: false,
717 device_supported: false,
718 host_supported: true,
719 srcs: ["java/myjavaapistubs_stubs_sources"],
720}
721
Paul Duffine6029182019-12-16 17:43:48 +0000722module_exports_snapshot {
723 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000724 device_supported: false,
725 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000726 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000727}
728`),
729 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100730 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000731 )
732}
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000733
734func TestSnapshotWithJavaSystemModules(t *testing.T) {
735 result := testSdkWithJava(t, `
736 sdk {
737 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000738 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000739 java_system_modules: ["my-system-modules"],
740 }
741
742 java_system_modules {
743 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000744 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000745 }
746
747 java_library {
748 name: "system-module",
749 srcs: ["Test.java"],
750 sdk_version: "none",
751 system_modules: "none",
752 }
Paul Duffin72910952020-01-20 18:16:30 +0000753
754 java_library {
755 name: "exported-system-module",
756 srcs: ["Test.java"],
757 sdk_version: "none",
758 system_modules: "none",
759 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000760 `)
761
Paul Duffin1356d8c2020-02-25 19:26:33 +0000762 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000763 checkAndroidBpContents(`
764// This is auto-generated. DO NOT EDIT.
765
766java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000767 name: "mysdk_exported-system-module@current",
768 sdk_member_name: "exported-system-module",
769 jars: ["java/exported-system-module.jar"],
770}
771
772java_import {
773 name: "exported-system-module",
774 prefer: false,
775 jars: ["java/exported-system-module.jar"],
776}
777
778java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000779 name: "mysdk_system-module@current",
780 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000781 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000782 jars: ["java/system-module.jar"],
783}
784
785java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000786 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000787 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000788 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000789 jars: ["java/system-module.jar"],
790}
791
792java_system_modules_import {
793 name: "mysdk_my-system-modules@current",
794 sdk_member_name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000795 libs: [
796 "mysdk_system-module@current",
797 "mysdk_exported-system-module@current",
798 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000799}
800
801java_system_modules_import {
802 name: "my-system-modules",
803 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000804 libs: [
805 "mysdk_system-module",
806 "exported-system-module",
807 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000808}
809
810sdk_snapshot {
811 name: "mysdk@current",
Paul Duffin72910952020-01-20 18:16:30 +0000812 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000813 java_system_modules: ["mysdk_my-system-modules@current"],
814}
815`),
Paul Duffin72910952020-01-20 18:16:30 +0000816 checkAllCopyRules(`
817.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
818.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
819`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000820 )
821}
822
823func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000824 result := testSdkWithJava(t, `
825 sdk {
826 name: "mysdk",
827 device_supported: false,
828 host_supported: true,
829 java_system_modules: ["my-system-modules"],
830 }
831
832 java_system_modules {
833 name: "my-system-modules",
834 device_supported: false,
835 host_supported: true,
836 libs: ["system-module"],
837 }
838
839 java_library {
840 name: "system-module",
841 device_supported: false,
842 host_supported: true,
843 srcs: ["Test.java"],
844 sdk_version: "none",
845 system_modules: "none",
846 }
847 `)
848
Paul Duffin1356d8c2020-02-25 19:26:33 +0000849 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000850 checkAndroidBpContents(`
851// This is auto-generated. DO NOT EDIT.
852
853java_import {
854 name: "mysdk_system-module@current",
855 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000856 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000857 device_supported: false,
858 host_supported: true,
859 jars: ["java/system-module.jar"],
860}
861
862java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000863 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000864 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000865 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000866 device_supported: false,
867 host_supported: true,
868 jars: ["java/system-module.jar"],
869}
870
871java_system_modules_import {
872 name: "mysdk_my-system-modules@current",
873 sdk_member_name: "my-system-modules",
874 device_supported: false,
875 host_supported: true,
876 libs: ["mysdk_system-module@current"],
877}
878
879java_system_modules_import {
880 name: "my-system-modules",
881 prefer: false,
882 device_supported: false,
883 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000884 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000885}
886
887sdk_snapshot {
888 name: "mysdk@current",
889 device_supported: false,
890 host_supported: true,
891 java_system_modules: ["mysdk_my-system-modules@current"],
892}
893`),
894 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
895 )
896}
Paul Duffin865171e2020-03-02 18:38:15 +0000897
898func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000899 result := testSdkWithJava(t, `
900 module_exports {
901 name: "myexports",
902 host_supported: true,
903 java_libs: ["myjavalib"],
904 target: {
905 android: {
906 java_header_libs: ["androidjavalib"],
907 },
908 host: {
909 java_header_libs: ["hostjavalib"],
910 },
911 },
912 }
913
914 java_library {
915 name: "myjavalib",
916 host_supported: true,
917 srcs: ["Test.java"],
918 system_modules: "none",
919 sdk_version: "none",
920 }
921
922 java_library {
923 name: "androidjavalib",
924 srcs: ["Test.java"],
925 system_modules: "none",
926 sdk_version: "none",
927 }
928
929 java_library_host {
930 name: "hostjavalib",
931 srcs: ["Test.java"],
932 }
933 `)
934
935 result.CheckSnapshot("myexports", "",
936 checkAndroidBpContents(`
937// This is auto-generated. DO NOT EDIT.
938
939java_import {
940 name: "myexports_hostjavalib@current",
941 sdk_member_name: "hostjavalib",
942 device_supported: false,
943 host_supported: true,
944 jars: ["java/hostjavalib.jar"],
945}
946
947java_import {
948 name: "hostjavalib",
949 prefer: false,
950 device_supported: false,
951 host_supported: true,
952 jars: ["java/hostjavalib.jar"],
953}
954
955java_import {
956 name: "myexports_androidjavalib@current",
957 sdk_member_name: "androidjavalib",
958 jars: ["java/androidjavalib.jar"],
959}
960
961java_import {
962 name: "androidjavalib",
963 prefer: false,
964 jars: ["java/androidjavalib.jar"],
965}
966
967java_import {
968 name: "myexports_myjavalib@current",
969 sdk_member_name: "myjavalib",
970 host_supported: true,
971 target: {
972 android: {
973 jars: ["java/android/myjavalib.jar"],
974 },
975 linux_glibc: {
976 jars: ["java/linux_glibc/myjavalib.jar"],
977 },
978 },
979}
980
981java_import {
982 name: "myjavalib",
983 prefer: false,
984 host_supported: true,
985 target: {
986 android: {
987 jars: ["java/android/myjavalib.jar"],
988 },
989 linux_glibc: {
990 jars: ["java/linux_glibc/myjavalib.jar"],
991 },
992 },
993}
994
995module_exports_snapshot {
996 name: "myexports@current",
997 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000998 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000999 target: {
1000 android: {
1001 java_header_libs: ["myexports_androidjavalib@current"],
1002 },
1003 linux_glibc: {
1004 java_header_libs: ["myexports_hostjavalib@current"],
1005 },
1006 },
Paul Duffin865171e2020-03-02 18:38:15 +00001007}
1008`),
1009 checkAllCopyRules(`
1010.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1011.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1012.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1013.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1014`),
1015 )
1016}
Paul Duffindd46f712020-02-10 13:37:10 +00001017
1018func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1019 result := testSdkWithJava(t, `
1020 sdk {
1021 name: "mysdk",
1022 java_sdk_libs: ["myjavalib"],
1023 }
1024
1025 java_sdk_library {
1026 name: "myjavalib",
1027 apex_available: ["//apex_available:anyapex"],
1028 srcs: ["Test.java"],
1029 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001030 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001031 stubs_library_visibility: ["//other"],
1032 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001033 }
1034 `)
1035
1036 result.CheckSnapshot("mysdk", "",
1037 checkAndroidBpContents(`
1038// This is auto-generated. DO NOT EDIT.
1039
1040java_sdk_library_import {
1041 name: "mysdk_myjavalib@current",
1042 sdk_member_name: "myjavalib",
1043 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001044 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001045 public: {
1046 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001047 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001048 current_api: "sdk_library/public/myjavalib.txt",
1049 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001050 sdk_version: "current",
1051 },
1052 system: {
1053 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001054 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001055 current_api: "sdk_library/system/myjavalib.txt",
1056 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001057 sdk_version: "system_current",
1058 },
1059 test: {
1060 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001061 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001062 current_api: "sdk_library/test/myjavalib.txt",
1063 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001064 sdk_version: "test_current",
1065 },
1066}
1067
1068java_sdk_library_import {
1069 name: "myjavalib",
1070 prefer: false,
1071 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001072 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001073 public: {
1074 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001075 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001076 current_api: "sdk_library/public/myjavalib.txt",
1077 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001078 sdk_version: "current",
1079 },
1080 system: {
1081 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001082 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001083 current_api: "sdk_library/system/myjavalib.txt",
1084 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001085 sdk_version: "system_current",
1086 },
1087 test: {
1088 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001089 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001090 current_api: "sdk_library/test/myjavalib.txt",
1091 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001092 sdk_version: "test_current",
1093 },
1094}
1095
1096sdk_snapshot {
1097 name: "mysdk@current",
1098 java_sdk_libs: ["mysdk_myjavalib@current"],
1099}
1100`),
1101 checkAllCopyRules(`
1102.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001103.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001104.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001105.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001106.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 +01001107.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 +00001108.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001109.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 +01001110.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 +00001111`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001112 checkMergeZips(
1113 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1114 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1115 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001116 )
1117}
Paul Duffin3375e352020-04-28 10:44:03 +01001118
Paul Duffin780c5f42020-05-12 15:52:55 +01001119func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1120 result := testSdkWithJava(t, `
1121 sdk {
1122 name: "mysdk",
1123 java_sdk_libs: ["myjavalib"],
1124 }
1125
1126 java_sdk_library {
1127 name: "myjavalib",
1128 srcs: ["Test.java"],
1129 sdk_version: "none",
1130 system_modules: "none",
1131 }
1132 `)
1133
1134 result.CheckSnapshot("mysdk", "",
1135 checkAndroidBpContents(`
1136// This is auto-generated. DO NOT EDIT.
1137
1138java_sdk_library_import {
1139 name: "mysdk_myjavalib@current",
1140 sdk_member_name: "myjavalib",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001141 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001142 public: {
1143 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1144 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1145 current_api: "sdk_library/public/myjavalib.txt",
1146 removed_api: "sdk_library/public/myjavalib-removed.txt",
1147 sdk_version: "none",
1148 },
1149}
1150
1151java_sdk_library_import {
1152 name: "myjavalib",
1153 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001154 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001155 public: {
1156 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1157 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1158 current_api: "sdk_library/public/myjavalib.txt",
1159 removed_api: "sdk_library/public/myjavalib-removed.txt",
1160 sdk_version: "none",
1161 },
1162}
1163
1164sdk_snapshot {
1165 name: "mysdk@current",
1166 java_sdk_libs: ["mysdk_myjavalib@current"],
1167}
1168`),
1169 checkAllCopyRules(`
1170.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1171.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001172.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001173`),
1174 checkMergeZips(
1175 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1176 ),
1177 )
1178}
1179
Paul Duffin87a05a32020-05-12 11:50:28 +01001180func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1181 result := testSdkWithJava(t, `
1182 sdk {
1183 name: "mysdk",
1184 java_sdk_libs: ["myjavalib"],
1185 }
1186
1187 java_sdk_library {
1188 name: "myjavalib",
1189 srcs: ["Test.java"],
1190 sdk_version: "module_current",
1191 public: {
1192 enabled: true,
1193 sdk_version: "module_current",
1194 },
1195 }
1196 `)
1197
1198 result.CheckSnapshot("mysdk", "",
1199 checkAndroidBpContents(`
1200// This is auto-generated. DO NOT EDIT.
1201
1202java_sdk_library_import {
1203 name: "mysdk_myjavalib@current",
1204 sdk_member_name: "myjavalib",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001205 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001206 public: {
1207 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1208 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1209 current_api: "sdk_library/public/myjavalib.txt",
1210 removed_api: "sdk_library/public/myjavalib-removed.txt",
1211 sdk_version: "module_current",
1212 },
1213}
1214
1215java_sdk_library_import {
1216 name: "myjavalib",
1217 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001218 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001219 public: {
1220 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1221 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1222 current_api: "sdk_library/public/myjavalib.txt",
1223 removed_api: "sdk_library/public/myjavalib-removed.txt",
1224 sdk_version: "module_current",
1225 },
1226}
1227
1228sdk_snapshot {
1229 name: "mysdk@current",
1230 java_sdk_libs: ["mysdk_myjavalib@current"],
1231}
1232`),
1233 checkAllCopyRules(`
1234.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1235.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001236.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001237`),
1238 checkMergeZips(
1239 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1240 ),
1241 )
1242}
1243
1244func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001245 result := testSdkWithJava(t, `
1246 sdk {
1247 name: "mysdk",
1248 java_sdk_libs: ["myjavalib"],
1249 }
1250
1251 java_sdk_library {
1252 name: "myjavalib",
1253 apex_available: ["//apex_available:anyapex"],
1254 srcs: ["Test.java"],
1255 sdk_version: "current",
1256 public: {
1257 enabled: true,
1258 },
1259 system: {
1260 enabled: true,
1261 },
1262 }
1263 `)
1264
1265 result.CheckSnapshot("mysdk", "",
1266 checkAndroidBpContents(`
1267// This is auto-generated. DO NOT EDIT.
1268
1269java_sdk_library_import {
1270 name: "mysdk_myjavalib@current",
1271 sdk_member_name: "myjavalib",
1272 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001273 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001274 public: {
1275 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1276 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1277 current_api: "sdk_library/public/myjavalib.txt",
1278 removed_api: "sdk_library/public/myjavalib-removed.txt",
1279 sdk_version: "current",
1280 },
1281 system: {
1282 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1283 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1284 current_api: "sdk_library/system/myjavalib.txt",
1285 removed_api: "sdk_library/system/myjavalib-removed.txt",
1286 sdk_version: "system_current",
1287 },
1288}
1289
1290java_sdk_library_import {
1291 name: "myjavalib",
1292 prefer: false,
1293 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001294 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001295 public: {
1296 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1297 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1298 current_api: "sdk_library/public/myjavalib.txt",
1299 removed_api: "sdk_library/public/myjavalib-removed.txt",
1300 sdk_version: "current",
1301 },
1302 system: {
1303 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1304 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1305 current_api: "sdk_library/system/myjavalib.txt",
1306 removed_api: "sdk_library/system/myjavalib-removed.txt",
1307 sdk_version: "system_current",
1308 },
1309}
1310
1311sdk_snapshot {
1312 name: "mysdk@current",
1313 java_sdk_libs: ["mysdk_myjavalib@current"],
1314}
1315`),
1316 checkAllCopyRules(`
1317.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1318.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001319.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001320.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1321.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 +01001322.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 +01001323`),
1324 checkMergeZips(
1325 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1326 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1327 ),
1328 )
1329}
Paul Duffin8f265b92020-04-28 14:13:56 +01001330
1331func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1332 result := testSdkWithJava(t, `
1333 sdk {
1334 name: "mysdk",
1335 java_sdk_libs: ["myjavalib"],
1336 }
1337
1338 java_sdk_library {
1339 name: "myjavalib",
1340 apex_available: ["//apex_available:anyapex"],
1341 srcs: ["Test.java"],
1342 sdk_version: "current",
1343 public: {
1344 enabled: true,
1345 },
1346 system: {
1347 enabled: true,
1348 },
1349 module_lib: {
1350 enabled: true,
1351 },
1352 }
1353 `)
1354
1355 result.CheckSnapshot("mysdk", "",
1356 checkAndroidBpContents(`
1357// This is auto-generated. DO NOT EDIT.
1358
1359java_sdk_library_import {
1360 name: "mysdk_myjavalib@current",
1361 sdk_member_name: "myjavalib",
1362 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001363 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001364 public: {
1365 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1366 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1367 current_api: "sdk_library/public/myjavalib.txt",
1368 removed_api: "sdk_library/public/myjavalib-removed.txt",
1369 sdk_version: "current",
1370 },
1371 system: {
1372 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1373 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1374 current_api: "sdk_library/system/myjavalib.txt",
1375 removed_api: "sdk_library/system/myjavalib-removed.txt",
1376 sdk_version: "system_current",
1377 },
1378 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001379 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1380 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1381 current_api: "sdk_library/module-lib/myjavalib.txt",
1382 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001383 sdk_version: "module_current",
1384 },
1385}
1386
1387java_sdk_library_import {
1388 name: "myjavalib",
1389 prefer: false,
1390 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001391 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001392 public: {
1393 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1394 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1395 current_api: "sdk_library/public/myjavalib.txt",
1396 removed_api: "sdk_library/public/myjavalib-removed.txt",
1397 sdk_version: "current",
1398 },
1399 system: {
1400 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1401 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1402 current_api: "sdk_library/system/myjavalib.txt",
1403 removed_api: "sdk_library/system/myjavalib-removed.txt",
1404 sdk_version: "system_current",
1405 },
1406 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001407 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1408 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1409 current_api: "sdk_library/module-lib/myjavalib.txt",
1410 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001411 sdk_version: "module_current",
1412 },
1413}
1414
1415sdk_snapshot {
1416 name: "mysdk@current",
1417 java_sdk_libs: ["mysdk_myjavalib@current"],
1418}
1419`),
1420 checkAllCopyRules(`
1421.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1422.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001423.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001424.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1425.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 +01001426.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 +01001427.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
Paul Duffin15f34ef2020-07-20 18:04:44 +01001428.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1429.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001430`),
1431 checkMergeZips(
1432 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1433 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001434 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001435 ),
1436 )
1437}
Paul Duffinf7a64332020-05-13 16:54:55 +01001438
Paul Duffin0c5bae52020-06-02 13:00:08 +01001439func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1440 result := testSdkWithJava(t, `
1441 sdk {
1442 name: "mysdk",
1443 java_sdk_libs: ["myjavalib"],
1444 }
1445
1446 java_sdk_library {
1447 name: "myjavalib",
1448 apex_available: ["//apex_available:anyapex"],
1449 srcs: ["Test.java"],
1450 sdk_version: "current",
1451 public: {
1452 enabled: true,
1453 },
1454 system_server: {
1455 enabled: true,
1456 },
1457 }
1458 `)
1459
1460 result.CheckSnapshot("mysdk", "",
1461 checkAndroidBpContents(`
1462// This is auto-generated. DO NOT EDIT.
1463
1464java_sdk_library_import {
1465 name: "mysdk_myjavalib@current",
1466 sdk_member_name: "myjavalib",
1467 apex_available: ["//apex_available:anyapex"],
1468 shared_library: true,
1469 public: {
1470 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1471 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1472 current_api: "sdk_library/public/myjavalib.txt",
1473 removed_api: "sdk_library/public/myjavalib-removed.txt",
1474 sdk_version: "current",
1475 },
1476 system_server: {
1477 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1478 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1479 current_api: "sdk_library/system-server/myjavalib.txt",
1480 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1481 sdk_version: "system_server_current",
1482 },
1483}
1484
1485java_sdk_library_import {
1486 name: "myjavalib",
1487 prefer: false,
1488 apex_available: ["//apex_available:anyapex"],
1489 shared_library: true,
1490 public: {
1491 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1492 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1493 current_api: "sdk_library/public/myjavalib.txt",
1494 removed_api: "sdk_library/public/myjavalib-removed.txt",
1495 sdk_version: "current",
1496 },
1497 system_server: {
1498 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1499 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1500 current_api: "sdk_library/system-server/myjavalib.txt",
1501 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1502 sdk_version: "system_server_current",
1503 },
1504}
1505
1506sdk_snapshot {
1507 name: "mysdk@current",
1508 java_sdk_libs: ["mysdk_myjavalib@current"],
1509}
1510`),
1511 checkAllCopyRules(`
1512.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1513.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1514.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1515.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1516.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1517.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1518`),
1519 checkMergeZips(
1520 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1521 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1522 ),
1523 )
1524}
1525
Paul Duffinf7a64332020-05-13 16:54:55 +01001526func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1527 result := testSdkWithJava(t, `
1528 sdk {
1529 name: "mysdk",
1530 java_sdk_libs: ["myjavalib"],
1531 }
1532
1533 java_sdk_library {
1534 name: "myjavalib",
1535 apex_available: ["//apex_available:anyapex"],
1536 srcs: ["Test.java"],
1537 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001538 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001539 public: {
1540 enabled: true,
1541 },
1542 }
1543 `)
1544
1545 result.CheckSnapshot("mysdk", "",
1546 checkAndroidBpContents(`
1547// This is auto-generated. DO NOT EDIT.
1548
1549java_sdk_library_import {
1550 name: "mysdk_myjavalib@current",
1551 sdk_member_name: "myjavalib",
1552 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001553 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001554 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001555 public: {
1556 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1557 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1558 current_api: "sdk_library/public/myjavalib.txt",
1559 removed_api: "sdk_library/public/myjavalib-removed.txt",
1560 sdk_version: "current",
1561 },
1562}
1563
1564java_sdk_library_import {
1565 name: "myjavalib",
1566 prefer: false,
1567 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001568 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001569 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001570 public: {
1571 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1572 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1573 current_api: "sdk_library/public/myjavalib.txt",
1574 removed_api: "sdk_library/public/myjavalib-removed.txt",
1575 sdk_version: "current",
1576 },
1577}
1578
1579sdk_snapshot {
1580 name: "mysdk@current",
1581 java_sdk_libs: ["mysdk_myjavalib@current"],
1582}
1583`),
1584 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001585.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1586.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1587.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001588`),
1589 checkMergeZips(
1590 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1591 ),
1592 )
1593}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001594
1595func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1596 result := testSdkWithJava(t, `
1597 sdk {
1598 name: "mysdk",
1599 java_sdk_libs: ["myjavalib"],
1600 }
1601
1602 java_sdk_library {
1603 name: "myjavalib",
1604 srcs: ["Test.java"],
1605 sdk_version: "current",
1606 public: {
1607 enabled: true,
1608 },
1609 doctag_files: ["docs/known_doctags"],
1610 }
1611
1612 filegroup {
1613 name: "mygroup",
1614 srcs: [":myjavalib{.doctags}"],
1615 }
1616 `)
1617
1618 result.CheckSnapshot("mysdk", "",
1619 checkAndroidBpContents(`
1620// This is auto-generated. DO NOT EDIT.
1621
1622java_sdk_library_import {
1623 name: "mysdk_myjavalib@current",
1624 sdk_member_name: "myjavalib",
1625 shared_library: true,
1626 doctag_files: ["doctags/docs/known_doctags"],
1627 public: {
1628 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1629 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1630 current_api: "sdk_library/public/myjavalib.txt",
1631 removed_api: "sdk_library/public/myjavalib-removed.txt",
1632 sdk_version: "current",
1633 },
1634}
1635
1636java_sdk_library_import {
1637 name: "myjavalib",
1638 prefer: false,
1639 shared_library: true,
1640 doctag_files: ["doctags/docs/known_doctags"],
1641 public: {
1642 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1643 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1644 current_api: "sdk_library/public/myjavalib.txt",
1645 removed_api: "sdk_library/public/myjavalib-removed.txt",
1646 sdk_version: "current",
1647 },
1648}
1649
1650sdk_snapshot {
1651 name: "mysdk@current",
1652 java_sdk_libs: ["mysdk_myjavalib@current"],
1653}
1654`),
1655 checkAllCopyRules(`
1656.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1657.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1658.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1659docs/known_doctags -> doctags/docs/known_doctags
1660`),
1661 )
1662}