blob: a7ee8d12f50b80404f2a117a144132bc280288cf [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 Gillin84c38072020-07-09 18:03:41 +010054 name: "stable-core-platform-api-stubs-system-modules",
Paul Duffindd46f712020-02-10 13:37:10 +000055}
56java_import {
Pete Gillin84c38072020-07-09 18:03:41 +010057 name: "stable.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
Paul Duffina37eca22020-07-22 13:00:54 +0100207 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
208 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000209
Colin Crossaede88c2020-08-11 12:17:01 -0700210 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
211 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000212
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) {
Paul Duffina0dbf432019-12-05 11:25:53 +0000268 result := testSdkWithJava(t, `
269 sdk {
270 name: "mysdk",
271 device_supported: false,
272 host_supported: true,
273 java_header_libs: ["myjavalib"],
274 }
275
276 java_library {
277 name: "myjavalib",
278 device_supported: false,
279 host_supported: true,
280 srcs: ["Test.java"],
281 aidl: {
282 export_include_dirs: ["aidl"],
283 },
284 system_modules: "none",
285 sdk_version: "none",
286 compile_dex: true,
287 }
288 `)
289
Paul Duffin1356d8c2020-02-25 19:26:33 +0000290 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000291 checkAndroidBpContents(`
292// This is auto-generated. DO NOT EDIT.
293
294java_import {
295 name: "mysdk_myjavalib@current",
296 sdk_member_name: "myjavalib",
297 device_supported: false,
298 host_supported: true,
299 jars: ["java/myjavalib.jar"],
300}
301
302java_import {
303 name: "myjavalib",
304 prefer: false,
305 device_supported: false,
306 host_supported: true,
307 jars: ["java/myjavalib.jar"],
308}
309
310sdk_snapshot {
311 name: "mysdk@current",
312 device_supported: false,
313 host_supported: true,
314 java_header_libs: ["mysdk_myjavalib@current"],
315}
316`),
317 checkAllCopyRules(`
318.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
319aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
320`),
321 )
322}
323
Paul Duffina04c1072020-03-02 10:16:35 +0000324func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina04c1072020-03-02 10:16:35 +0000325 result := testSdkWithJava(t, `
326 sdk {
327 name: "mysdk",
328 host_supported: true,
329 java_header_libs: ["myjavalib"],
330 }
331
332 java_library {
333 name: "myjavalib",
334 host_supported: true,
335 srcs: ["Test.java"],
336 system_modules: "none",
337 sdk_version: "none",
338 compile_dex: true,
339 }
340 `)
341
342 result.CheckSnapshot("mysdk", "",
343 checkAndroidBpContents(`
344// This is auto-generated. DO NOT EDIT.
345
346java_import {
347 name: "mysdk_myjavalib@current",
348 sdk_member_name: "myjavalib",
349 host_supported: true,
350 target: {
351 android: {
352 jars: ["java/android/myjavalib.jar"],
353 },
354 linux_glibc: {
355 jars: ["java/linux_glibc/myjavalib.jar"],
356 },
357 },
358}
359
360java_import {
361 name: "myjavalib",
362 prefer: false,
363 host_supported: true,
364 target: {
365 android: {
366 jars: ["java/android/myjavalib.jar"],
367 },
368 linux_glibc: {
369 jars: ["java/linux_glibc/myjavalib.jar"],
370 },
371 },
372}
373
374sdk_snapshot {
375 name: "mysdk@current",
376 host_supported: true,
377 java_header_libs: ["mysdk_myjavalib@current"],
378}
379`),
380 checkAllCopyRules(`
381.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
382.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
383`),
384 )
385}
386
Paul Duffina0dbf432019-12-05 11:25:53 +0000387func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000388 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000389 module_exports {
390 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000391 java_libs: ["myjavalib"],
392 }
393
394 java_library {
395 name: "myjavalib",
396 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100397 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000398 aidl: {
399 export_include_dirs: ["aidl"],
400 },
401 system_modules: "none",
402 sdk_version: "none",
403 compile_dex: true,
404 host_supported: true,
405 }
406 `)
407
Paul Duffin1356d8c2020-02-25 19:26:33 +0000408 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000409 checkAndroidBpContents(`
410// This is auto-generated. DO NOT EDIT.
411
412java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000413 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000414 sdk_member_name: "myjavalib",
415 jars: ["java/myjavalib.jar"],
416}
417
418java_import {
419 name: "myjavalib",
420 prefer: false,
421 jars: ["java/myjavalib.jar"],
422}
423
Paul Duffine6029182019-12-16 17:43:48 +0000424module_exports_snapshot {
425 name: "myexports@current",
426 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000427}
428
429`),
430 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100431.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000432aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
433`),
434 )
435}
436
Paul Duffina0dbf432019-12-05 11:25:53 +0000437func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000438 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000439 module_exports {
440 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000441 device_supported: false,
442 host_supported: true,
443 java_libs: ["myjavalib"],
444 }
445
446 java_library {
447 name: "myjavalib",
448 device_supported: false,
449 host_supported: true,
450 srcs: ["Test.java"],
451 aidl: {
452 export_include_dirs: ["aidl"],
453 },
454 system_modules: "none",
455 sdk_version: "none",
456 compile_dex: true,
457 }
458 `)
459
Paul Duffin1356d8c2020-02-25 19:26:33 +0000460 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000461 checkAndroidBpContents(`
462// This is auto-generated. DO NOT EDIT.
463
464java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000465 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000466 sdk_member_name: "myjavalib",
467 device_supported: false,
468 host_supported: true,
469 jars: ["java/myjavalib.jar"],
470}
471
472java_import {
473 name: "myjavalib",
474 prefer: false,
475 device_supported: false,
476 host_supported: true,
477 jars: ["java/myjavalib.jar"],
478}
479
Paul Duffine6029182019-12-16 17:43:48 +0000480module_exports_snapshot {
481 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000482 device_supported: false,
483 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000484 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000485}
486`),
487 checkAllCopyRules(`
488.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
489aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
490`),
491 )
492}
493
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000494func TestSnapshotWithJavaTest(t *testing.T) {
495 result := testSdkWithJava(t, `
496 module_exports {
497 name: "myexports",
498 java_tests: ["myjavatests"],
499 }
500
501 java_test {
502 name: "myjavatests",
503 srcs: ["Test.java"],
504 system_modules: "none",
505 sdk_version: "none",
506 compile_dex: true,
507 host_supported: true,
508 }
509 `)
510
Paul Duffin1356d8c2020-02-25 19:26:33 +0000511 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000512 checkAndroidBpContents(`
513// This is auto-generated. DO NOT EDIT.
514
515java_test_import {
516 name: "myexports_myjavatests@current",
517 sdk_member_name: "myjavatests",
518 jars: ["java/myjavatests.jar"],
519 test_config: "java/myjavatests-AndroidTest.xml",
520}
521
522java_test_import {
523 name: "myjavatests",
524 prefer: false,
525 jars: ["java/myjavatests.jar"],
526 test_config: "java/myjavatests-AndroidTest.xml",
527}
528
529module_exports_snapshot {
530 name: "myexports@current",
531 java_tests: ["myexports_myjavatests@current"],
532}
533`),
534 checkAllCopyRules(`
535.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
536.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
537`),
538 )
539}
540
541func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000542 result := testSdkWithJava(t, `
543 module_exports {
544 name: "myexports",
545 device_supported: false,
546 host_supported: true,
547 java_tests: ["myjavatests"],
548 }
549
550 java_test {
551 name: "myjavatests",
552 device_supported: false,
553 host_supported: true,
554 srcs: ["Test.java"],
555 system_modules: "none",
556 sdk_version: "none",
557 compile_dex: true,
558 }
559 `)
560
Paul Duffin1356d8c2020-02-25 19:26:33 +0000561 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000562 checkAndroidBpContents(`
563// This is auto-generated. DO NOT EDIT.
564
565java_test_import {
566 name: "myexports_myjavatests@current",
567 sdk_member_name: "myjavatests",
568 device_supported: false,
569 host_supported: true,
570 jars: ["java/myjavatests.jar"],
571 test_config: "java/myjavatests-AndroidTest.xml",
572}
573
574java_test_import {
575 name: "myjavatests",
576 prefer: false,
577 device_supported: false,
578 host_supported: true,
579 jars: ["java/myjavatests.jar"],
580 test_config: "java/myjavatests-AndroidTest.xml",
581}
582
583module_exports_snapshot {
584 name: "myexports@current",
585 device_supported: false,
586 host_supported: true,
587 java_tests: ["myexports_myjavatests@current"],
588}
589`),
590 checkAllCopyRules(`
591.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
592.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
593`),
594 )
595}
596
Paul Duffind835daa2019-11-30 17:49:09 +0000597func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult {
598 t.Helper()
599
600 fs := map[string][]byte{
601 "foo/bar/Foo.java": nil,
602 "stubs-sources/foo/bar/Foo.java": nil,
603 }
604 return testSdkWithFs(t, bp, fs)
605}
606
Paul Duffina80fdec2019-12-03 15:25:00 +0000607// Note: This test does not verify that a droidstubs can be referenced, either
608// directly or indirectly from an APEX as droidstubs can never be a part of an
609// apex.
610func TestBasicSdkWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000611 testSdkWithDroidstubs(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000612 sdk {
613 name: "mysdk",
614 stubs_sources: ["mystub"],
615 }
616 sdk_snapshot {
617 name: "mysdk@10",
618 stubs_sources: ["mystub_mysdk@10"],
619 }
620 prebuilt_stubs_sources {
621 name: "mystub_mysdk@10",
622 sdk_member_name: "mystub",
623 srcs: ["stubs-sources/foo/bar/Foo.java"],
624 }
625 droidstubs {
626 name: "mystub",
627 srcs: ["foo/bar/Foo.java"],
628 sdk_version: "none",
629 system_modules: "none",
630 }
631 java_library {
632 name: "myjavalib",
633 srcs: [":mystub"],
634 sdk_version: "none",
635 system_modules: "none",
636 }
637 `)
638}
639
640func TestSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000641 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000642 module_exports {
643 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000644 stubs_sources: ["myjavaapistubs"],
645 }
646
647 droidstubs {
648 name: "myjavaapistubs",
649 srcs: ["foo/bar/Foo.java"],
650 system_modules: "none",
651 sdk_version: "none",
652 }
653 `)
654
Paul Duffin1356d8c2020-02-25 19:26:33 +0000655 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000656 checkAndroidBpContents(`
657// This is auto-generated. DO NOT EDIT.
658
659prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000660 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000661 sdk_member_name: "myjavaapistubs",
662 srcs: ["java/myjavaapistubs_stubs_sources"],
663}
664
665prebuilt_stubs_sources {
666 name: "myjavaapistubs",
667 prefer: false,
668 srcs: ["java/myjavaapistubs_stubs_sources"],
669}
670
Paul Duffine6029182019-12-16 17:43:48 +0000671module_exports_snapshot {
672 name: "myexports@current",
673 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000674}
675
676`),
677 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100678 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000679 )
680}
681
682func TestHostSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000683 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000684 module_exports {
685 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000686 device_supported: false,
687 host_supported: true,
688 stubs_sources: ["myjavaapistubs"],
689 }
690
691 droidstubs {
692 name: "myjavaapistubs",
693 device_supported: false,
694 host_supported: true,
695 srcs: ["foo/bar/Foo.java"],
696 system_modules: "none",
697 sdk_version: "none",
698 }
699 `)
700
Paul Duffin1356d8c2020-02-25 19:26:33 +0000701 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000702 checkAndroidBpContents(`
703// This is auto-generated. DO NOT EDIT.
704
705prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000706 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000707 sdk_member_name: "myjavaapistubs",
708 device_supported: false,
709 host_supported: true,
710 srcs: ["java/myjavaapistubs_stubs_sources"],
711}
712
713prebuilt_stubs_sources {
714 name: "myjavaapistubs",
715 prefer: false,
716 device_supported: false,
717 host_supported: true,
718 srcs: ["java/myjavaapistubs_stubs_sources"],
719}
720
Paul Duffine6029182019-12-16 17:43:48 +0000721module_exports_snapshot {
722 name: "myexports@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000723 device_supported: false,
724 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000725 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000726}
727`),
728 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100729 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000730 )
731}
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000732
733func TestSnapshotWithJavaSystemModules(t *testing.T) {
734 result := testSdkWithJava(t, `
735 sdk {
736 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000737 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000738 java_system_modules: ["my-system-modules"],
739 }
740
741 java_system_modules {
742 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000743 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000744 }
745
746 java_library {
747 name: "system-module",
748 srcs: ["Test.java"],
749 sdk_version: "none",
750 system_modules: "none",
751 }
Paul Duffin72910952020-01-20 18:16:30 +0000752
753 java_library {
754 name: "exported-system-module",
755 srcs: ["Test.java"],
756 sdk_version: "none",
757 system_modules: "none",
758 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000759 `)
760
Paul Duffin1356d8c2020-02-25 19:26:33 +0000761 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000762 checkAndroidBpContents(`
763// This is auto-generated. DO NOT EDIT.
764
765java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000766 name: "mysdk_exported-system-module@current",
767 sdk_member_name: "exported-system-module",
768 jars: ["java/exported-system-module.jar"],
769}
770
771java_import {
772 name: "exported-system-module",
773 prefer: false,
774 jars: ["java/exported-system-module.jar"],
775}
776
777java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000778 name: "mysdk_system-module@current",
779 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000780 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000781 jars: ["java/system-module.jar"],
782}
783
784java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000785 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000786 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000787 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000788 jars: ["java/system-module.jar"],
789}
790
791java_system_modules_import {
792 name: "mysdk_my-system-modules@current",
793 sdk_member_name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000794 libs: [
795 "mysdk_system-module@current",
796 "mysdk_exported-system-module@current",
797 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000798}
799
800java_system_modules_import {
801 name: "my-system-modules",
802 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000803 libs: [
804 "mysdk_system-module",
805 "exported-system-module",
806 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000807}
808
809sdk_snapshot {
810 name: "mysdk@current",
Paul Duffin72910952020-01-20 18:16:30 +0000811 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000812 java_system_modules: ["mysdk_my-system-modules@current"],
813}
814`),
Paul Duffin72910952020-01-20 18:16:30 +0000815 checkAllCopyRules(`
816.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
817.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
818`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000819 )
820}
821
822func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000823 result := testSdkWithJava(t, `
824 sdk {
825 name: "mysdk",
826 device_supported: false,
827 host_supported: true,
828 java_system_modules: ["my-system-modules"],
829 }
830
831 java_system_modules {
832 name: "my-system-modules",
833 device_supported: false,
834 host_supported: true,
835 libs: ["system-module"],
836 }
837
838 java_library {
839 name: "system-module",
840 device_supported: false,
841 host_supported: true,
842 srcs: ["Test.java"],
843 sdk_version: "none",
844 system_modules: "none",
845 }
846 `)
847
Paul Duffin1356d8c2020-02-25 19:26:33 +0000848 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000849 checkAndroidBpContents(`
850// This is auto-generated. DO NOT EDIT.
851
852java_import {
853 name: "mysdk_system-module@current",
854 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000855 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000856 device_supported: false,
857 host_supported: true,
858 jars: ["java/system-module.jar"],
859}
860
861java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000862 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000863 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000864 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000865 device_supported: false,
866 host_supported: true,
867 jars: ["java/system-module.jar"],
868}
869
870java_system_modules_import {
871 name: "mysdk_my-system-modules@current",
872 sdk_member_name: "my-system-modules",
873 device_supported: false,
874 host_supported: true,
875 libs: ["mysdk_system-module@current"],
876}
877
878java_system_modules_import {
879 name: "my-system-modules",
880 prefer: false,
881 device_supported: false,
882 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000883 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000884}
885
886sdk_snapshot {
887 name: "mysdk@current",
888 device_supported: false,
889 host_supported: true,
890 java_system_modules: ["mysdk_my-system-modules@current"],
891}
892`),
893 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
894 )
895}
Paul Duffin865171e2020-03-02 18:38:15 +0000896
897func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000898 result := testSdkWithJava(t, `
899 module_exports {
900 name: "myexports",
901 host_supported: true,
902 java_libs: ["myjavalib"],
903 target: {
904 android: {
905 java_header_libs: ["androidjavalib"],
906 },
907 host: {
908 java_header_libs: ["hostjavalib"],
909 },
910 },
911 }
912
913 java_library {
914 name: "myjavalib",
915 host_supported: true,
916 srcs: ["Test.java"],
917 system_modules: "none",
918 sdk_version: "none",
919 }
920
921 java_library {
922 name: "androidjavalib",
923 srcs: ["Test.java"],
924 system_modules: "none",
925 sdk_version: "none",
926 }
927
928 java_library_host {
929 name: "hostjavalib",
930 srcs: ["Test.java"],
931 }
932 `)
933
934 result.CheckSnapshot("myexports", "",
935 checkAndroidBpContents(`
936// This is auto-generated. DO NOT EDIT.
937
938java_import {
939 name: "myexports_hostjavalib@current",
940 sdk_member_name: "hostjavalib",
941 device_supported: false,
942 host_supported: true,
943 jars: ["java/hostjavalib.jar"],
944}
945
946java_import {
947 name: "hostjavalib",
948 prefer: false,
949 device_supported: false,
950 host_supported: true,
951 jars: ["java/hostjavalib.jar"],
952}
953
954java_import {
955 name: "myexports_androidjavalib@current",
956 sdk_member_name: "androidjavalib",
957 jars: ["java/androidjavalib.jar"],
958}
959
960java_import {
961 name: "androidjavalib",
962 prefer: false,
963 jars: ["java/androidjavalib.jar"],
964}
965
966java_import {
967 name: "myexports_myjavalib@current",
968 sdk_member_name: "myjavalib",
969 host_supported: true,
970 target: {
971 android: {
972 jars: ["java/android/myjavalib.jar"],
973 },
974 linux_glibc: {
975 jars: ["java/linux_glibc/myjavalib.jar"],
976 },
977 },
978}
979
980java_import {
981 name: "myjavalib",
982 prefer: false,
983 host_supported: true,
984 target: {
985 android: {
986 jars: ["java/android/myjavalib.jar"],
987 },
988 linux_glibc: {
989 jars: ["java/linux_glibc/myjavalib.jar"],
990 },
991 },
992}
993
994module_exports_snapshot {
995 name: "myexports@current",
996 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000997 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000998 target: {
999 android: {
1000 java_header_libs: ["myexports_androidjavalib@current"],
1001 },
1002 linux_glibc: {
1003 java_header_libs: ["myexports_hostjavalib@current"],
1004 },
1005 },
Paul Duffin865171e2020-03-02 18:38:15 +00001006}
1007`),
1008 checkAllCopyRules(`
1009.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1010.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1011.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1012.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1013`),
1014 )
1015}
Paul Duffindd46f712020-02-10 13:37:10 +00001016
1017func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1018 result := testSdkWithJava(t, `
1019 sdk {
1020 name: "mysdk",
1021 java_sdk_libs: ["myjavalib"],
1022 }
1023
1024 java_sdk_library {
1025 name: "myjavalib",
1026 apex_available: ["//apex_available:anyapex"],
1027 srcs: ["Test.java"],
1028 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001029 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001030 stubs_library_visibility: ["//other"],
1031 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001032 }
1033 `)
1034
1035 result.CheckSnapshot("mysdk", "",
1036 checkAndroidBpContents(`
1037// This is auto-generated. DO NOT EDIT.
1038
1039java_sdk_library_import {
1040 name: "mysdk_myjavalib@current",
1041 sdk_member_name: "myjavalib",
1042 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001043 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001044 public: {
1045 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001046 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001047 current_api: "sdk_library/public/myjavalib.txt",
1048 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001049 sdk_version: "current",
1050 },
1051 system: {
1052 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001053 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001054 current_api: "sdk_library/system/myjavalib.txt",
1055 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001056 sdk_version: "system_current",
1057 },
1058 test: {
1059 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001060 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001061 current_api: "sdk_library/test/myjavalib.txt",
1062 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001063 sdk_version: "test_current",
1064 },
1065}
1066
1067java_sdk_library_import {
1068 name: "myjavalib",
1069 prefer: false,
1070 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001071 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001072 public: {
1073 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001074 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001075 current_api: "sdk_library/public/myjavalib.txt",
1076 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001077 sdk_version: "current",
1078 },
1079 system: {
1080 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001081 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001082 current_api: "sdk_library/system/myjavalib.txt",
1083 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001084 sdk_version: "system_current",
1085 },
1086 test: {
1087 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001088 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001089 current_api: "sdk_library/test/myjavalib.txt",
1090 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001091 sdk_version: "test_current",
1092 },
1093}
1094
1095sdk_snapshot {
1096 name: "mysdk@current",
1097 java_sdk_libs: ["mysdk_myjavalib@current"],
1098}
1099`),
1100 checkAllCopyRules(`
1101.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001102.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001103.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001104.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001105.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 +01001106.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 +00001107.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001108.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 +01001109.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 +00001110`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001111 checkMergeZips(
1112 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1113 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1114 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001115 )
1116}
Paul Duffin3375e352020-04-28 10:44:03 +01001117
Paul Duffin780c5f42020-05-12 15:52:55 +01001118func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1119 result := testSdkWithJava(t, `
1120 sdk {
1121 name: "mysdk",
1122 java_sdk_libs: ["myjavalib"],
1123 }
1124
1125 java_sdk_library {
1126 name: "myjavalib",
1127 srcs: ["Test.java"],
1128 sdk_version: "none",
1129 system_modules: "none",
1130 }
1131 `)
1132
1133 result.CheckSnapshot("mysdk", "",
1134 checkAndroidBpContents(`
1135// This is auto-generated. DO NOT EDIT.
1136
1137java_sdk_library_import {
1138 name: "mysdk_myjavalib@current",
1139 sdk_member_name: "myjavalib",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001140 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001141 public: {
1142 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1143 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1144 current_api: "sdk_library/public/myjavalib.txt",
1145 removed_api: "sdk_library/public/myjavalib-removed.txt",
1146 sdk_version: "none",
1147 },
1148}
1149
1150java_sdk_library_import {
1151 name: "myjavalib",
1152 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001153 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001154 public: {
1155 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1156 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1157 current_api: "sdk_library/public/myjavalib.txt",
1158 removed_api: "sdk_library/public/myjavalib-removed.txt",
1159 sdk_version: "none",
1160 },
1161}
1162
1163sdk_snapshot {
1164 name: "mysdk@current",
1165 java_sdk_libs: ["mysdk_myjavalib@current"],
1166}
1167`),
1168 checkAllCopyRules(`
1169.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1170.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001171.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001172`),
1173 checkMergeZips(
1174 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1175 ),
1176 )
1177}
1178
Paul Duffin87a05a32020-05-12 11:50:28 +01001179func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1180 result := testSdkWithJava(t, `
1181 sdk {
1182 name: "mysdk",
1183 java_sdk_libs: ["myjavalib"],
1184 }
1185
1186 java_sdk_library {
1187 name: "myjavalib",
1188 srcs: ["Test.java"],
1189 sdk_version: "module_current",
1190 public: {
1191 enabled: true,
1192 sdk_version: "module_current",
1193 },
1194 }
1195 `)
1196
1197 result.CheckSnapshot("mysdk", "",
1198 checkAndroidBpContents(`
1199// This is auto-generated. DO NOT EDIT.
1200
1201java_sdk_library_import {
1202 name: "mysdk_myjavalib@current",
1203 sdk_member_name: "myjavalib",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001204 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001205 public: {
1206 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1207 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1208 current_api: "sdk_library/public/myjavalib.txt",
1209 removed_api: "sdk_library/public/myjavalib-removed.txt",
1210 sdk_version: "module_current",
1211 },
1212}
1213
1214java_sdk_library_import {
1215 name: "myjavalib",
1216 prefer: false,
Paul Duffind7eb1c22020-05-26 20:57:10 +01001217 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001218 public: {
1219 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1220 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1221 current_api: "sdk_library/public/myjavalib.txt",
1222 removed_api: "sdk_library/public/myjavalib-removed.txt",
1223 sdk_version: "module_current",
1224 },
1225}
1226
1227sdk_snapshot {
1228 name: "mysdk@current",
1229 java_sdk_libs: ["mysdk_myjavalib@current"],
1230}
1231`),
1232 checkAllCopyRules(`
1233.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1234.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001235.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001236`),
1237 checkMergeZips(
1238 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1239 ),
1240 )
1241}
1242
1243func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001244 result := testSdkWithJava(t, `
1245 sdk {
1246 name: "mysdk",
1247 java_sdk_libs: ["myjavalib"],
1248 }
1249
1250 java_sdk_library {
1251 name: "myjavalib",
1252 apex_available: ["//apex_available:anyapex"],
1253 srcs: ["Test.java"],
1254 sdk_version: "current",
1255 public: {
1256 enabled: true,
1257 },
1258 system: {
1259 enabled: true,
1260 },
1261 }
1262 `)
1263
1264 result.CheckSnapshot("mysdk", "",
1265 checkAndroidBpContents(`
1266// This is auto-generated. DO NOT EDIT.
1267
1268java_sdk_library_import {
1269 name: "mysdk_myjavalib@current",
1270 sdk_member_name: "myjavalib",
1271 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001272 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001273 public: {
1274 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1275 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1276 current_api: "sdk_library/public/myjavalib.txt",
1277 removed_api: "sdk_library/public/myjavalib-removed.txt",
1278 sdk_version: "current",
1279 },
1280 system: {
1281 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1282 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1283 current_api: "sdk_library/system/myjavalib.txt",
1284 removed_api: "sdk_library/system/myjavalib-removed.txt",
1285 sdk_version: "system_current",
1286 },
1287}
1288
1289java_sdk_library_import {
1290 name: "myjavalib",
1291 prefer: false,
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
1310sdk_snapshot {
1311 name: "mysdk@current",
1312 java_sdk_libs: ["mysdk_myjavalib@current"],
1313}
1314`),
1315 checkAllCopyRules(`
1316.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1317.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001318.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001319.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1320.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 +01001321.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 +01001322`),
1323 checkMergeZips(
1324 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1325 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1326 ),
1327 )
1328}
Paul Duffin8f265b92020-04-28 14:13:56 +01001329
1330func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1331 result := testSdkWithJava(t, `
1332 sdk {
1333 name: "mysdk",
1334 java_sdk_libs: ["myjavalib"],
1335 }
1336
1337 java_sdk_library {
1338 name: "myjavalib",
1339 apex_available: ["//apex_available:anyapex"],
1340 srcs: ["Test.java"],
1341 sdk_version: "current",
1342 public: {
1343 enabled: true,
1344 },
1345 system: {
1346 enabled: true,
1347 },
1348 module_lib: {
1349 enabled: true,
1350 },
1351 }
1352 `)
1353
1354 result.CheckSnapshot("mysdk", "",
1355 checkAndroidBpContents(`
1356// This is auto-generated. DO NOT EDIT.
1357
1358java_sdk_library_import {
1359 name: "mysdk_myjavalib@current",
1360 sdk_member_name: "myjavalib",
1361 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001362 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001363 public: {
1364 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1365 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1366 current_api: "sdk_library/public/myjavalib.txt",
1367 removed_api: "sdk_library/public/myjavalib-removed.txt",
1368 sdk_version: "current",
1369 },
1370 system: {
1371 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1372 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1373 current_api: "sdk_library/system/myjavalib.txt",
1374 removed_api: "sdk_library/system/myjavalib-removed.txt",
1375 sdk_version: "system_current",
1376 },
1377 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001378 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1379 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1380 current_api: "sdk_library/module-lib/myjavalib.txt",
1381 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001382 sdk_version: "module_current",
1383 },
1384}
1385
1386java_sdk_library_import {
1387 name: "myjavalib",
1388 prefer: false,
1389 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001390 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001391 public: {
1392 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1393 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1394 current_api: "sdk_library/public/myjavalib.txt",
1395 removed_api: "sdk_library/public/myjavalib-removed.txt",
1396 sdk_version: "current",
1397 },
1398 system: {
1399 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1400 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1401 current_api: "sdk_library/system/myjavalib.txt",
1402 removed_api: "sdk_library/system/myjavalib-removed.txt",
1403 sdk_version: "system_current",
1404 },
1405 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001406 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1407 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1408 current_api: "sdk_library/module-lib/myjavalib.txt",
1409 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001410 sdk_version: "module_current",
1411 },
1412}
1413
1414sdk_snapshot {
1415 name: "mysdk@current",
1416 java_sdk_libs: ["mysdk_myjavalib@current"],
1417}
1418`),
1419 checkAllCopyRules(`
1420.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1421.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001422.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001423.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1424.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 +01001425.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 +01001426.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 +01001427.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1428.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 +01001429`),
1430 checkMergeZips(
1431 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1432 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001433 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001434 ),
1435 )
1436}
Paul Duffinf7a64332020-05-13 16:54:55 +01001437
Paul Duffin0c5bae52020-06-02 13:00:08 +01001438func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1439 result := testSdkWithJava(t, `
1440 sdk {
1441 name: "mysdk",
1442 java_sdk_libs: ["myjavalib"],
1443 }
1444
1445 java_sdk_library {
1446 name: "myjavalib",
1447 apex_available: ["//apex_available:anyapex"],
1448 srcs: ["Test.java"],
1449 sdk_version: "current",
1450 public: {
1451 enabled: true,
1452 },
1453 system_server: {
1454 enabled: true,
1455 },
1456 }
1457 `)
1458
1459 result.CheckSnapshot("mysdk", "",
1460 checkAndroidBpContents(`
1461// This is auto-generated. DO NOT EDIT.
1462
1463java_sdk_library_import {
1464 name: "mysdk_myjavalib@current",
1465 sdk_member_name: "myjavalib",
1466 apex_available: ["//apex_available:anyapex"],
1467 shared_library: true,
1468 public: {
1469 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1470 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1471 current_api: "sdk_library/public/myjavalib.txt",
1472 removed_api: "sdk_library/public/myjavalib-removed.txt",
1473 sdk_version: "current",
1474 },
1475 system_server: {
1476 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1477 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1478 current_api: "sdk_library/system-server/myjavalib.txt",
1479 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1480 sdk_version: "system_server_current",
1481 },
1482}
1483
1484java_sdk_library_import {
1485 name: "myjavalib",
1486 prefer: false,
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
1505sdk_snapshot {
1506 name: "mysdk@current",
1507 java_sdk_libs: ["mysdk_myjavalib@current"],
1508}
1509`),
1510 checkAllCopyRules(`
1511.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1512.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1513.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1514.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1515.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1516.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1517`),
1518 checkMergeZips(
1519 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1520 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1521 ),
1522 )
1523}
1524
Paul Duffinf7a64332020-05-13 16:54:55 +01001525func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1526 result := testSdkWithJava(t, `
1527 sdk {
1528 name: "mysdk",
1529 java_sdk_libs: ["myjavalib"],
1530 }
1531
1532 java_sdk_library {
1533 name: "myjavalib",
1534 apex_available: ["//apex_available:anyapex"],
1535 srcs: ["Test.java"],
1536 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001537 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001538 public: {
1539 enabled: true,
1540 },
1541 }
1542 `)
1543
1544 result.CheckSnapshot("mysdk", "",
1545 checkAndroidBpContents(`
1546// This is auto-generated. DO NOT EDIT.
1547
1548java_sdk_library_import {
1549 name: "mysdk_myjavalib@current",
1550 sdk_member_name: "myjavalib",
1551 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001552 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001553 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001554 public: {
1555 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1556 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1557 current_api: "sdk_library/public/myjavalib.txt",
1558 removed_api: "sdk_library/public/myjavalib-removed.txt",
1559 sdk_version: "current",
1560 },
1561}
1562
1563java_sdk_library_import {
1564 name: "myjavalib",
1565 prefer: false,
1566 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001567 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001568 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001569 public: {
1570 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1571 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1572 current_api: "sdk_library/public/myjavalib.txt",
1573 removed_api: "sdk_library/public/myjavalib-removed.txt",
1574 sdk_version: "current",
1575 },
1576}
1577
1578sdk_snapshot {
1579 name: "mysdk@current",
1580 java_sdk_libs: ["mysdk_myjavalib@current"],
1581}
1582`),
1583 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001584.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1585.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1586.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001587`),
1588 checkMergeZips(
1589 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1590 ),
1591 )
1592}