blob: 488afd84e7c01a3fe2c0c8b12951354f5578ef0d [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,
Anton Hanssondff2c782020-12-21 17:10:01 +000047 "100/public/api/myjavalib.txt": nil,
48 "100/public/api/myjavalib-removed.txt": nil,
49 "100/system/api/myjavalib.txt": nil,
50 "100/system/api/myjavalib-removed.txt": nil,
51 "100/module-lib/api/myjavalib.txt": nil,
52 "100/module-lib/api/myjavalib-removed.txt": nil,
53 "100/system-server/api/myjavalib.txt": nil,
54 "100/system-server/api/myjavalib-removed.txt": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000055 }
Paul Duffindd46f712020-02-10 13:37:10 +000056
57 // for java_sdk_library tests
58 bp = `
59java_system_modules_import {
60 name: "core-current-stubs-system-modules",
61}
62java_system_modules_import {
Pete Gillin84c38072020-07-09 18:03:41 +010063 name: "stable-core-platform-api-stubs-system-modules",
Paul Duffindd46f712020-02-10 13:37:10 +000064}
65java_import {
Pete Gillin84c38072020-07-09 18:03:41 +010066 name: "stable.core.platform.api.stubs",
Paul Duffindd46f712020-02-10 13:37:10 +000067}
Paul Duffin260bd312020-04-28 14:15:17 +010068java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000069 name: "android_stubs_current",
70}
Paul Duffin260bd312020-04-28 14:15:17 +010071java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000072 name: "android_system_stubs_current",
73}
Paul Duffin260bd312020-04-28 14:15:17 +010074java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000075 name: "android_test_stubs_current",
76}
77java_import {
Paul Duffin8f265b92020-04-28 14:13:56 +010078 name: "android_module_lib_stubs_current",
79}
80java_import {
Paul Duffin0c5bae52020-06-02 13:00:08 +010081 name: "android_system_server_stubs_current",
82}
83java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000084 name: "core-lambda-stubs",
85 sdk_version: "none",
86}
87java_import {
88 name: "ext",
89 sdk_version: "none",
90}
91java_import {
92 name: "framework",
93 sdk_version: "none",
94}
Anton Hanssondff2c782020-12-21 17:10:01 +000095prebuilt_apis {
96 name: "sdk",
97 api_dirs: ["100"],
98}
Paul Duffindd46f712020-02-10 13:37:10 +000099` + bp
100
Paul Duffind835daa2019-11-30 17:49:09 +0000101 return testSdkWithFs(t, bp, fs)
102}
103
Paul Duffina80fdec2019-12-03 15:25:00 +0000104// Contains tests for SDK members provided by the java package.
105
Paul Duffincee7e662020-07-09 17:32:57 +0100106func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
107 result := testSdkWithJava(t, `
108 sdk {
109 name: "mysdk",
110 java_header_libs: ["sdkmember"],
111 }
112
113 java_library {
114 name: "sdkmember",
115 srcs: ["Test.java"],
116 system_modules: "none",
117 sdk_version: "none",
118 }
119
120 java_import {
121 name: "sdkmember",
122 prefer: true,
123 jars: ["prebuilt.jar"],
124 }
125 `)
126
127 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
128 java.CheckModuleDependencies(t, result.ctx, "mysdk", "android_common", []string{"sdkmember"})
129
130 result.CheckSnapshot("mysdk", "",
131 checkAndroidBpContents(`// This is auto-generated. DO NOT EDIT.
132
133java_import {
134 name: "mysdk_sdkmember@current",
135 sdk_member_name: "sdkmember",
Paul Duffind99d9972020-09-29 16:00:55 +0100136 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000137 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100138 jars: ["java/sdkmember.jar"],
139}
140
141java_import {
142 name: "sdkmember",
143 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100144 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000145 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100146 jars: ["java/sdkmember.jar"],
147}
148
149sdk_snapshot {
150 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100151 visibility: ["//visibility:public"],
Paul Duffincee7e662020-07-09 17:32:57 +0100152 java_header_libs: ["mysdk_sdkmember@current"],
153}
154`))
155}
156
Paul Duffina80fdec2019-12-03 15:25:00 +0000157func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000158 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000159 sdk {
160 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +0900161 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000162 }
163
164 sdk_snapshot {
165 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +0000166 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000167 }
168
169 sdk_snapshot {
170 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +0000171 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000172 }
173
Jiyong Park0f80c182020-01-31 02:49:53 +0900174 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000175 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900176 srcs: ["Test.java"],
177 system_modules: "none",
178 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000179 host_supported: true,
180 }
181
182 java_import {
183 name: "sdkmember_mysdk_1",
184 sdk_member_name: "sdkmember",
185 host_supported: true,
186 }
187
188 java_import {
189 name: "sdkmember_mysdk_2",
190 sdk_member_name: "sdkmember",
191 host_supported: true,
192 }
193
194 java_library {
195 name: "myjavalib",
196 srcs: ["Test.java"],
197 libs: ["sdkmember"],
198 system_modules: "none",
199 sdk_version: "none",
200 compile_dex: true,
201 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000202 apex_available: [
203 "myapex",
204 "myapex2",
205 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000206 }
207
208 apex {
209 name: "myapex",
210 java_libs: ["myjavalib"],
211 uses_sdks: ["mysdk@1"],
212 key: "myapex.key",
213 certificate: ":myapex.cert",
214 }
215
216 apex {
217 name: "myapex2",
218 java_libs: ["myjavalib"],
219 uses_sdks: ["mysdk@2"],
220 key: "myapex.key",
221 certificate: ":myapex.cert",
222 }
223 `)
224
Paul Duffina37eca22020-07-22 13:00:54 +0100225 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
226 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000227
Colin Crossaede88c2020-08-11 12:17:01 -0700228 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
229 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000230
231 // Depending on the uses_sdks value, different libs are linked
232 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
233 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
234}
235
Paul Duffina0dbf432019-12-05 11:25:53 +0000236func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
237 result := testSdkWithJava(t, `
238 sdk {
239 name: "mysdk",
240 java_header_libs: ["myjavalib"],
241 }
242
243 java_library {
244 name: "myjavalib",
245 srcs: ["Test.java"],
246 aidl: {
247 export_include_dirs: ["aidl"],
248 },
249 system_modules: "none",
250 sdk_version: "none",
251 compile_dex: true,
252 host_supported: true,
253 }
254 `)
255
Paul Duffin1356d8c2020-02-25 19:26:33 +0000256 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000257 checkAndroidBpContents(`
258// This is auto-generated. DO NOT EDIT.
259
260java_import {
261 name: "mysdk_myjavalib@current",
262 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100263 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000264 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000265 jars: ["java/myjavalib.jar"],
266}
267
268java_import {
269 name: "myjavalib",
270 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100271 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000272 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000273 jars: ["java/myjavalib.jar"],
274}
275
276sdk_snapshot {
277 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100278 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000279 java_header_libs: ["mysdk_myjavalib@current"],
280}
281
282`),
283 checkAllCopyRules(`
284.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
285aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
286`),
287 )
288}
289
290func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina0dbf432019-12-05 11:25:53 +0000291 result := testSdkWithJava(t, `
292 sdk {
293 name: "mysdk",
294 device_supported: false,
295 host_supported: true,
296 java_header_libs: ["myjavalib"],
297 }
298
299 java_library {
300 name: "myjavalib",
301 device_supported: false,
302 host_supported: true,
303 srcs: ["Test.java"],
304 aidl: {
305 export_include_dirs: ["aidl"],
306 },
307 system_modules: "none",
308 sdk_version: "none",
309 compile_dex: true,
310 }
311 `)
312
Paul Duffin1356d8c2020-02-25 19:26:33 +0000313 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000314 checkAndroidBpContents(`
315// This is auto-generated. DO NOT EDIT.
316
317java_import {
318 name: "mysdk_myjavalib@current",
319 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100320 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000321 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000322 device_supported: false,
323 host_supported: true,
324 jars: ["java/myjavalib.jar"],
325}
326
327java_import {
328 name: "myjavalib",
329 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100330 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000331 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000332 device_supported: false,
333 host_supported: true,
334 jars: ["java/myjavalib.jar"],
335}
336
337sdk_snapshot {
338 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100339 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000340 device_supported: false,
341 host_supported: true,
342 java_header_libs: ["mysdk_myjavalib@current"],
343}
344`),
345 checkAllCopyRules(`
346.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
347aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
348`),
349 )
350}
351
Paul Duffina04c1072020-03-02 10:16:35 +0000352func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina04c1072020-03-02 10:16:35 +0000353 result := testSdkWithJava(t, `
354 sdk {
355 name: "mysdk",
356 host_supported: true,
357 java_header_libs: ["myjavalib"],
358 }
359
360 java_library {
361 name: "myjavalib",
362 host_supported: true,
363 srcs: ["Test.java"],
364 system_modules: "none",
365 sdk_version: "none",
366 compile_dex: true,
367 }
368 `)
369
370 result.CheckSnapshot("mysdk", "",
371 checkAndroidBpContents(`
372// This is auto-generated. DO NOT EDIT.
373
374java_import {
375 name: "mysdk_myjavalib@current",
376 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100377 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000378 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000379 host_supported: true,
380 target: {
381 android: {
382 jars: ["java/android/myjavalib.jar"],
383 },
384 linux_glibc: {
385 jars: ["java/linux_glibc/myjavalib.jar"],
386 },
387 },
388}
389
390java_import {
391 name: "myjavalib",
392 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100393 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000394 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000395 host_supported: true,
396 target: {
397 android: {
398 jars: ["java/android/myjavalib.jar"],
399 },
400 linux_glibc: {
401 jars: ["java/linux_glibc/myjavalib.jar"],
402 },
403 },
404}
405
406sdk_snapshot {
407 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100408 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000409 host_supported: true,
410 java_header_libs: ["mysdk_myjavalib@current"],
411}
412`),
413 checkAllCopyRules(`
414.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
415.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
416`),
417 )
418}
419
Paul Duffina0dbf432019-12-05 11:25:53 +0000420func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000421 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000422 module_exports {
423 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000424 java_libs: ["myjavalib"],
425 }
426
427 java_library {
428 name: "myjavalib",
429 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100430 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000431 aidl: {
432 export_include_dirs: ["aidl"],
433 },
434 system_modules: "none",
435 sdk_version: "none",
436 compile_dex: true,
437 host_supported: true,
438 }
439 `)
440
Paul Duffin1356d8c2020-02-25 19:26:33 +0000441 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000442 checkAndroidBpContents(`
443// This is auto-generated. DO NOT EDIT.
444
445java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000446 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000447 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100448 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000449 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000450 jars: ["java/myjavalib.jar"],
451}
452
453java_import {
454 name: "myjavalib",
455 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100456 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000457 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000458 jars: ["java/myjavalib.jar"],
459}
460
Paul Duffine6029182019-12-16 17:43:48 +0000461module_exports_snapshot {
462 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100463 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000464 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000465}
466
467`),
468 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100469.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000470aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
471`),
472 )
473}
474
Paul Duffindb170e42020-12-08 17:48:25 +0000475func TestSnapshotWithJavaBootLibrary(t *testing.T) {
476 result := testSdkWithJava(t, `
477 module_exports {
478 name: "myexports",
479 java_boot_libs: ["myjavalib"],
480 }
481
482 java_library {
483 name: "myjavalib",
484 srcs: ["Test.java"],
485 java_resources: ["resource.txt"],
486 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
487 // intended to be used for compiling Java, only for accessing the dex implementation jar.
488 aidl: {
489 export_include_dirs: ["aidl"],
490 },
491 system_modules: "none",
492 sdk_version: "none",
493 compile_dex: true,
494 }
495 `)
496
497 result.CheckSnapshot("myexports", "",
498 checkAndroidBpContents(`
499// This is auto-generated. DO NOT EDIT.
500
501java_import {
502 name: "myexports_myjavalib@current",
503 sdk_member_name: "myjavalib",
504 visibility: ["//visibility:public"],
505 apex_available: ["//apex_available:platform"],
506 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
507}
508
509java_import {
510 name: "myjavalib",
511 prefer: false,
512 visibility: ["//visibility:public"],
513 apex_available: ["//apex_available:platform"],
514 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
515}
516
517module_exports_snapshot {
518 name: "myexports@current",
519 visibility: ["//visibility:public"],
520 java_boot_libs: ["myexports_myjavalib@current"],
521}
522
523`),
524 checkAllCopyRules(`
525.intermediates/myexports/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
526`),
527 )
528}
529
Paul Duffina0dbf432019-12-05 11:25:53 +0000530func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000531 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000532 module_exports {
533 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000534 device_supported: false,
535 host_supported: true,
536 java_libs: ["myjavalib"],
537 }
538
539 java_library {
540 name: "myjavalib",
541 device_supported: false,
542 host_supported: true,
543 srcs: ["Test.java"],
544 aidl: {
545 export_include_dirs: ["aidl"],
546 },
547 system_modules: "none",
548 sdk_version: "none",
549 compile_dex: true,
550 }
551 `)
552
Paul Duffin1356d8c2020-02-25 19:26:33 +0000553 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000554 checkAndroidBpContents(`
555// This is auto-generated. DO NOT EDIT.
556
557java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000558 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000559 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100560 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000561 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000562 device_supported: false,
563 host_supported: true,
564 jars: ["java/myjavalib.jar"],
565}
566
567java_import {
568 name: "myjavalib",
569 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100570 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000571 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000572 device_supported: false,
573 host_supported: true,
574 jars: ["java/myjavalib.jar"],
575}
576
Paul Duffine6029182019-12-16 17:43:48 +0000577module_exports_snapshot {
578 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100579 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000580 device_supported: false,
581 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000582 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000583}
584`),
585 checkAllCopyRules(`
586.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
587aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
588`),
589 )
590}
591
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000592func TestSnapshotWithJavaTest(t *testing.T) {
593 result := testSdkWithJava(t, `
594 module_exports {
595 name: "myexports",
596 java_tests: ["myjavatests"],
597 }
598
599 java_test {
600 name: "myjavatests",
601 srcs: ["Test.java"],
602 system_modules: "none",
603 sdk_version: "none",
604 compile_dex: true,
605 host_supported: true,
606 }
607 `)
608
Paul Duffin1356d8c2020-02-25 19:26:33 +0000609 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000610 checkAndroidBpContents(`
611// This is auto-generated. DO NOT EDIT.
612
613java_test_import {
614 name: "myexports_myjavatests@current",
615 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100616 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000617 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000618 jars: ["java/myjavatests.jar"],
619 test_config: "java/myjavatests-AndroidTest.xml",
620}
621
622java_test_import {
623 name: "myjavatests",
624 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100625 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000626 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000627 jars: ["java/myjavatests.jar"],
628 test_config: "java/myjavatests-AndroidTest.xml",
629}
630
631module_exports_snapshot {
632 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100633 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000634 java_tests: ["myexports_myjavatests@current"],
635}
636`),
637 checkAllCopyRules(`
638.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
639.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
640`),
641 )
642}
643
644func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000645 result := testSdkWithJava(t, `
646 module_exports {
647 name: "myexports",
648 device_supported: false,
649 host_supported: true,
650 java_tests: ["myjavatests"],
651 }
652
653 java_test {
654 name: "myjavatests",
655 device_supported: false,
656 host_supported: true,
657 srcs: ["Test.java"],
658 system_modules: "none",
659 sdk_version: "none",
660 compile_dex: true,
661 }
662 `)
663
Paul Duffin1356d8c2020-02-25 19:26:33 +0000664 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000665 checkAndroidBpContents(`
666// This is auto-generated. DO NOT EDIT.
667
668java_test_import {
669 name: "myexports_myjavatests@current",
670 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100671 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000672 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000673 device_supported: false,
674 host_supported: true,
675 jars: ["java/myjavatests.jar"],
676 test_config: "java/myjavatests-AndroidTest.xml",
677}
678
679java_test_import {
680 name: "myjavatests",
681 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100682 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000683 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000684 device_supported: false,
685 host_supported: true,
686 jars: ["java/myjavatests.jar"],
687 test_config: "java/myjavatests-AndroidTest.xml",
688}
689
690module_exports_snapshot {
691 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100692 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000693 device_supported: false,
694 host_supported: true,
695 java_tests: ["myexports_myjavatests@current"],
696}
697`),
698 checkAllCopyRules(`
699.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
700.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
701`),
702 )
703}
704
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000705func TestSnapshotWithJavaSystemModules(t *testing.T) {
706 result := testSdkWithJava(t, `
707 sdk {
708 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000709 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000710 java_system_modules: ["my-system-modules"],
711 }
712
713 java_system_modules {
714 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000715 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000716 }
717
718 java_library {
719 name: "system-module",
720 srcs: ["Test.java"],
721 sdk_version: "none",
722 system_modules: "none",
723 }
Paul Duffin72910952020-01-20 18:16:30 +0000724
725 java_library {
726 name: "exported-system-module",
727 srcs: ["Test.java"],
728 sdk_version: "none",
729 system_modules: "none",
730 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000731 `)
732
Paul Duffin1356d8c2020-02-25 19:26:33 +0000733 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000734 checkAndroidBpContents(`
735// This is auto-generated. DO NOT EDIT.
736
737java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000738 name: "mysdk_exported-system-module@current",
739 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100740 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000741 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000742 jars: ["java/exported-system-module.jar"],
743}
744
745java_import {
746 name: "exported-system-module",
747 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100748 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000749 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000750 jars: ["java/exported-system-module.jar"],
751}
752
753java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000754 name: "mysdk_system-module@current",
755 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000756 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000757 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000758 jars: ["java/system-module.jar"],
759}
760
761java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000762 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000763 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000764 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000765 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000766 jars: ["java/system-module.jar"],
767}
768
769java_system_modules_import {
770 name: "mysdk_my-system-modules@current",
771 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100772 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000773 libs: [
774 "mysdk_system-module@current",
775 "mysdk_exported-system-module@current",
776 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000777}
778
779java_system_modules_import {
780 name: "my-system-modules",
781 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100782 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000783 libs: [
784 "mysdk_system-module",
785 "exported-system-module",
786 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000787}
788
789sdk_snapshot {
790 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100791 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000792 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000793 java_system_modules: ["mysdk_my-system-modules@current"],
794}
795`),
Paul Duffin72910952020-01-20 18:16:30 +0000796 checkAllCopyRules(`
797.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
798.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
799`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000800 )
801}
802
803func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000804 result := testSdkWithJava(t, `
805 sdk {
806 name: "mysdk",
807 device_supported: false,
808 host_supported: true,
809 java_system_modules: ["my-system-modules"],
810 }
811
812 java_system_modules {
813 name: "my-system-modules",
814 device_supported: false,
815 host_supported: true,
816 libs: ["system-module"],
817 }
818
819 java_library {
820 name: "system-module",
821 device_supported: false,
822 host_supported: true,
823 srcs: ["Test.java"],
824 sdk_version: "none",
825 system_modules: "none",
826 }
827 `)
828
Paul Duffin1356d8c2020-02-25 19:26:33 +0000829 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000830 checkAndroidBpContents(`
831// This is auto-generated. DO NOT EDIT.
832
833java_import {
834 name: "mysdk_system-module@current",
835 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000836 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000837 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000838 device_supported: false,
839 host_supported: true,
840 jars: ["java/system-module.jar"],
841}
842
843java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000844 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000845 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000846 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000847 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000848 device_supported: false,
849 host_supported: true,
850 jars: ["java/system-module.jar"],
851}
852
853java_system_modules_import {
854 name: "mysdk_my-system-modules@current",
855 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100856 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000857 device_supported: false,
858 host_supported: true,
859 libs: ["mysdk_system-module@current"],
860}
861
862java_system_modules_import {
863 name: "my-system-modules",
864 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100865 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000866 device_supported: false,
867 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000868 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000869}
870
871sdk_snapshot {
872 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100873 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000874 device_supported: false,
875 host_supported: true,
876 java_system_modules: ["mysdk_my-system-modules@current"],
877}
878`),
879 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
880 )
881}
Paul Duffin865171e2020-03-02 18:38:15 +0000882
883func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000884 result := testSdkWithJava(t, `
885 module_exports {
886 name: "myexports",
887 host_supported: true,
888 java_libs: ["myjavalib"],
889 target: {
890 android: {
891 java_header_libs: ["androidjavalib"],
892 },
893 host: {
894 java_header_libs: ["hostjavalib"],
895 },
896 },
897 }
898
899 java_library {
900 name: "myjavalib",
901 host_supported: true,
902 srcs: ["Test.java"],
903 system_modules: "none",
904 sdk_version: "none",
905 }
906
907 java_library {
908 name: "androidjavalib",
909 srcs: ["Test.java"],
910 system_modules: "none",
911 sdk_version: "none",
912 }
913
914 java_library_host {
915 name: "hostjavalib",
916 srcs: ["Test.java"],
917 }
918 `)
919
920 result.CheckSnapshot("myexports", "",
921 checkAndroidBpContents(`
922// This is auto-generated. DO NOT EDIT.
923
924java_import {
925 name: "myexports_hostjavalib@current",
926 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100927 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000928 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000929 device_supported: false,
930 host_supported: true,
931 jars: ["java/hostjavalib.jar"],
932}
933
934java_import {
935 name: "hostjavalib",
936 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100937 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000938 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000939 device_supported: false,
940 host_supported: true,
941 jars: ["java/hostjavalib.jar"],
942}
943
944java_import {
945 name: "myexports_androidjavalib@current",
946 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100947 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000948 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000949 jars: ["java/androidjavalib.jar"],
950}
951
952java_import {
953 name: "androidjavalib",
954 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100955 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000956 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000957 jars: ["java/androidjavalib.jar"],
958}
959
960java_import {
961 name: "myexports_myjavalib@current",
962 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100963 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000964 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000965 host_supported: true,
966 target: {
967 android: {
968 jars: ["java/android/myjavalib.jar"],
969 },
970 linux_glibc: {
971 jars: ["java/linux_glibc/myjavalib.jar"],
972 },
973 },
974}
975
976java_import {
977 name: "myjavalib",
978 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100979 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000980 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000981 host_supported: true,
982 target: {
983 android: {
984 jars: ["java/android/myjavalib.jar"],
985 },
986 linux_glibc: {
987 jars: ["java/linux_glibc/myjavalib.jar"],
988 },
989 },
990}
991
992module_exports_snapshot {
993 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100994 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000995 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000996 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000997 target: {
998 android: {
999 java_header_libs: ["myexports_androidjavalib@current"],
1000 },
1001 linux_glibc: {
1002 java_header_libs: ["myexports_hostjavalib@current"],
1003 },
1004 },
Paul Duffin865171e2020-03-02 18:38:15 +00001005}
1006`),
1007 checkAllCopyRules(`
1008.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1009.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1010.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1011.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1012`),
1013 )
1014}
Paul Duffindd46f712020-02-10 13:37:10 +00001015
1016func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1017 result := testSdkWithJava(t, `
1018 sdk {
1019 name: "mysdk",
1020 java_sdk_libs: ["myjavalib"],
1021 }
1022
1023 java_sdk_library {
1024 name: "myjavalib",
1025 apex_available: ["//apex_available:anyapex"],
1026 srcs: ["Test.java"],
1027 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001028 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001029 stubs_library_visibility: ["//other"],
1030 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001031 }
1032 `)
1033
1034 result.CheckSnapshot("mysdk", "",
1035 checkAndroidBpContents(`
1036// This is auto-generated. DO NOT EDIT.
1037
1038java_sdk_library_import {
1039 name: "mysdk_myjavalib@current",
1040 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001041 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001042 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 Duffinab5ac8f2020-11-18 16:37:35 +00001046 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 Duffinab5ac8f2020-11-18 16:37:35 +00001053 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 Duffinab5ac8f2020-11-18 16:37:35 +00001060 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,
Paul Duffind99d9972020-09-29 16:00:55 +01001070 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001071 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 Duffinab5ac8f2020-11-18 16:37:35 +00001075 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 Duffinab5ac8f2020-11-18 16:37:35 +00001082 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 Duffinab5ac8f2020-11-18 16:37:35 +00001089 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",
Paul Duffind99d9972020-09-29 16:00:55 +01001098 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001099 java_sdk_libs: ["mysdk_myjavalib@current"],
1100}
1101`),
1102 checkAllCopyRules(`
1103.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001104.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001105.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001106.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001107.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 +01001108.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 +00001109.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001110.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 +01001111.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 +00001112`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001113 checkMergeZips(
1114 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1115 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1116 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001117 )
1118}
Paul Duffin3375e352020-04-28 10:44:03 +01001119
Paul Duffin780c5f42020-05-12 15:52:55 +01001120func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1121 result := testSdkWithJava(t, `
1122 sdk {
1123 name: "mysdk",
1124 java_sdk_libs: ["myjavalib"],
1125 }
1126
1127 java_sdk_library {
1128 name: "myjavalib",
1129 srcs: ["Test.java"],
1130 sdk_version: "none",
1131 system_modules: "none",
1132 }
1133 `)
1134
1135 result.CheckSnapshot("mysdk", "",
1136 checkAndroidBpContents(`
1137// This is auto-generated. DO NOT EDIT.
1138
1139java_sdk_library_import {
1140 name: "mysdk_myjavalib@current",
1141 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001142 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001143 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001144 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001145 public: {
1146 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001147 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001148 current_api: "sdk_library/public/myjavalib.txt",
1149 removed_api: "sdk_library/public/myjavalib-removed.txt",
1150 sdk_version: "none",
1151 },
1152}
1153
1154java_sdk_library_import {
1155 name: "myjavalib",
1156 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001157 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001158 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001159 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001160 public: {
1161 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001162 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001163 current_api: "sdk_library/public/myjavalib.txt",
1164 removed_api: "sdk_library/public/myjavalib-removed.txt",
1165 sdk_version: "none",
1166 },
1167}
1168
1169sdk_snapshot {
1170 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001171 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001172 java_sdk_libs: ["mysdk_myjavalib@current"],
1173}
1174`),
1175 checkAllCopyRules(`
1176.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1177.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001178.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001179`),
1180 checkMergeZips(
1181 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1182 ),
1183 )
1184}
1185
Paul Duffin87a05a32020-05-12 11:50:28 +01001186func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1187 result := testSdkWithJava(t, `
1188 sdk {
1189 name: "mysdk",
1190 java_sdk_libs: ["myjavalib"],
1191 }
1192
1193 java_sdk_library {
1194 name: "myjavalib",
1195 srcs: ["Test.java"],
1196 sdk_version: "module_current",
1197 public: {
1198 enabled: true,
1199 sdk_version: "module_current",
1200 },
1201 }
1202 `)
1203
1204 result.CheckSnapshot("mysdk", "",
1205 checkAndroidBpContents(`
1206// This is auto-generated. DO NOT EDIT.
1207
1208java_sdk_library_import {
1209 name: "mysdk_myjavalib@current",
1210 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001211 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001212 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001213 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001214 public: {
1215 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001216 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001217 current_api: "sdk_library/public/myjavalib.txt",
1218 removed_api: "sdk_library/public/myjavalib-removed.txt",
1219 sdk_version: "module_current",
1220 },
1221}
1222
1223java_sdk_library_import {
1224 name: "myjavalib",
1225 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001226 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001227 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001228 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001229 public: {
1230 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001231 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001232 current_api: "sdk_library/public/myjavalib.txt",
1233 removed_api: "sdk_library/public/myjavalib-removed.txt",
1234 sdk_version: "module_current",
1235 },
1236}
1237
1238sdk_snapshot {
1239 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001240 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001241 java_sdk_libs: ["mysdk_myjavalib@current"],
1242}
1243`),
1244 checkAllCopyRules(`
1245.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1246.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001247.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001248`),
1249 checkMergeZips(
1250 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1251 ),
1252 )
1253}
1254
1255func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001256 result := testSdkWithJava(t, `
1257 sdk {
1258 name: "mysdk",
1259 java_sdk_libs: ["myjavalib"],
1260 }
1261
1262 java_sdk_library {
1263 name: "myjavalib",
1264 apex_available: ["//apex_available:anyapex"],
1265 srcs: ["Test.java"],
1266 sdk_version: "current",
1267 public: {
1268 enabled: true,
1269 },
1270 system: {
1271 enabled: true,
1272 },
1273 }
1274 `)
1275
1276 result.CheckSnapshot("mysdk", "",
1277 checkAndroidBpContents(`
1278// This is auto-generated. DO NOT EDIT.
1279
1280java_sdk_library_import {
1281 name: "mysdk_myjavalib@current",
1282 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001283 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001284 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001285 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001286 public: {
1287 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001288 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001289 current_api: "sdk_library/public/myjavalib.txt",
1290 removed_api: "sdk_library/public/myjavalib-removed.txt",
1291 sdk_version: "current",
1292 },
1293 system: {
1294 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001295 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001296 current_api: "sdk_library/system/myjavalib.txt",
1297 removed_api: "sdk_library/system/myjavalib-removed.txt",
1298 sdk_version: "system_current",
1299 },
1300}
1301
1302java_sdk_library_import {
1303 name: "myjavalib",
1304 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001305 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001306 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001307 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001308 public: {
1309 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001310 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001311 current_api: "sdk_library/public/myjavalib.txt",
1312 removed_api: "sdk_library/public/myjavalib-removed.txt",
1313 sdk_version: "current",
1314 },
1315 system: {
1316 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001317 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001318 current_api: "sdk_library/system/myjavalib.txt",
1319 removed_api: "sdk_library/system/myjavalib-removed.txt",
1320 sdk_version: "system_current",
1321 },
1322}
1323
1324sdk_snapshot {
1325 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001326 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001327 java_sdk_libs: ["mysdk_myjavalib@current"],
1328}
1329`),
1330 checkAllCopyRules(`
1331.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1332.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001333.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001334.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1335.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 +01001336.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 +01001337`),
1338 checkMergeZips(
1339 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1340 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1341 ),
1342 )
1343}
Paul Duffin8f265b92020-04-28 14:13:56 +01001344
1345func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1346 result := testSdkWithJava(t, `
1347 sdk {
1348 name: "mysdk",
1349 java_sdk_libs: ["myjavalib"],
1350 }
1351
1352 java_sdk_library {
1353 name: "myjavalib",
1354 apex_available: ["//apex_available:anyapex"],
1355 srcs: ["Test.java"],
1356 sdk_version: "current",
1357 public: {
1358 enabled: true,
1359 },
1360 system: {
1361 enabled: true,
1362 },
1363 module_lib: {
1364 enabled: true,
1365 },
1366 }
1367 `)
1368
1369 result.CheckSnapshot("mysdk", "",
1370 checkAndroidBpContents(`
1371// This is auto-generated. DO NOT EDIT.
1372
1373java_sdk_library_import {
1374 name: "mysdk_myjavalib@current",
1375 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001376 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001377 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001378 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001379 public: {
1380 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001381 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001382 current_api: "sdk_library/public/myjavalib.txt",
1383 removed_api: "sdk_library/public/myjavalib-removed.txt",
1384 sdk_version: "current",
1385 },
1386 system: {
1387 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001388 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001389 current_api: "sdk_library/system/myjavalib.txt",
1390 removed_api: "sdk_library/system/myjavalib-removed.txt",
1391 sdk_version: "system_current",
1392 },
1393 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001394 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001395 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001396 current_api: "sdk_library/module-lib/myjavalib.txt",
1397 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001398 sdk_version: "module_current",
1399 },
1400}
1401
1402java_sdk_library_import {
1403 name: "myjavalib",
1404 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001405 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001406 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001407 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001408 public: {
1409 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001410 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001411 current_api: "sdk_library/public/myjavalib.txt",
1412 removed_api: "sdk_library/public/myjavalib-removed.txt",
1413 sdk_version: "current",
1414 },
1415 system: {
1416 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001417 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001418 current_api: "sdk_library/system/myjavalib.txt",
1419 removed_api: "sdk_library/system/myjavalib-removed.txt",
1420 sdk_version: "system_current",
1421 },
1422 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001423 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001424 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001425 current_api: "sdk_library/module-lib/myjavalib.txt",
1426 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001427 sdk_version: "module_current",
1428 },
1429}
1430
1431sdk_snapshot {
1432 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001433 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001434 java_sdk_libs: ["mysdk_myjavalib@current"],
1435}
1436`),
1437 checkAllCopyRules(`
1438.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1439.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001440.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001441.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1442.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 +01001443.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 +01001444.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 +01001445.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1446.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 +01001447`),
1448 checkMergeZips(
1449 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1450 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001451 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001452 ),
1453 )
1454}
Paul Duffinf7a64332020-05-13 16:54:55 +01001455
Paul Duffin0c5bae52020-06-02 13:00:08 +01001456func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1457 result := testSdkWithJava(t, `
1458 sdk {
1459 name: "mysdk",
1460 java_sdk_libs: ["myjavalib"],
1461 }
1462
1463 java_sdk_library {
1464 name: "myjavalib",
1465 apex_available: ["//apex_available:anyapex"],
1466 srcs: ["Test.java"],
1467 sdk_version: "current",
1468 public: {
1469 enabled: true,
1470 },
1471 system_server: {
1472 enabled: true,
1473 },
1474 }
1475 `)
1476
1477 result.CheckSnapshot("mysdk", "",
1478 checkAndroidBpContents(`
1479// This is auto-generated. DO NOT EDIT.
1480
1481java_sdk_library_import {
1482 name: "mysdk_myjavalib@current",
1483 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001484 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001485 apex_available: ["//apex_available:anyapex"],
1486 shared_library: true,
1487 public: {
1488 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001489 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001490 current_api: "sdk_library/public/myjavalib.txt",
1491 removed_api: "sdk_library/public/myjavalib-removed.txt",
1492 sdk_version: "current",
1493 },
1494 system_server: {
1495 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001496 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001497 current_api: "sdk_library/system-server/myjavalib.txt",
1498 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1499 sdk_version: "system_server_current",
1500 },
1501}
1502
1503java_sdk_library_import {
1504 name: "myjavalib",
1505 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001506 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001507 apex_available: ["//apex_available:anyapex"],
1508 shared_library: true,
1509 public: {
1510 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001511 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001512 current_api: "sdk_library/public/myjavalib.txt",
1513 removed_api: "sdk_library/public/myjavalib-removed.txt",
1514 sdk_version: "current",
1515 },
1516 system_server: {
1517 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001518 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001519 current_api: "sdk_library/system-server/myjavalib.txt",
1520 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1521 sdk_version: "system_server_current",
1522 },
1523}
1524
1525sdk_snapshot {
1526 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001527 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001528 java_sdk_libs: ["mysdk_myjavalib@current"],
1529}
1530`),
1531 checkAllCopyRules(`
1532.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1533.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1534.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1535.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1536.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1537.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1538`),
1539 checkMergeZips(
1540 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1541 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1542 ),
1543 )
1544}
1545
Paul Duffinf7a64332020-05-13 16:54:55 +01001546func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1547 result := testSdkWithJava(t, `
1548 sdk {
1549 name: "mysdk",
1550 java_sdk_libs: ["myjavalib"],
1551 }
1552
1553 java_sdk_library {
1554 name: "myjavalib",
1555 apex_available: ["//apex_available:anyapex"],
1556 srcs: ["Test.java"],
1557 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001558 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001559 public: {
1560 enabled: true,
1561 },
1562 }
1563 `)
1564
1565 result.CheckSnapshot("mysdk", "",
1566 checkAndroidBpContents(`
1567// This is auto-generated. DO NOT EDIT.
1568
1569java_sdk_library_import {
1570 name: "mysdk_myjavalib@current",
1571 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001572 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001573 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001574 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001575 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001576 public: {
1577 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001578 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001579 current_api: "sdk_library/public/myjavalib.txt",
1580 removed_api: "sdk_library/public/myjavalib-removed.txt",
1581 sdk_version: "current",
1582 },
1583}
1584
1585java_sdk_library_import {
1586 name: "myjavalib",
1587 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001588 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001589 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001590 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001591 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001592 public: {
1593 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001594 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001595 current_api: "sdk_library/public/myjavalib.txt",
1596 removed_api: "sdk_library/public/myjavalib-removed.txt",
1597 sdk_version: "current",
1598 },
1599}
1600
1601sdk_snapshot {
1602 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001603 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001604 java_sdk_libs: ["mysdk_myjavalib@current"],
1605}
1606`),
1607 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001608.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1609.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1610.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001611`),
1612 checkMergeZips(
1613 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1614 ),
1615 )
1616}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001617
1618func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1619 result := testSdkWithJava(t, `
1620 sdk {
1621 name: "mysdk",
1622 java_sdk_libs: ["myjavalib"],
1623 }
1624
1625 java_sdk_library {
1626 name: "myjavalib",
1627 srcs: ["Test.java"],
1628 sdk_version: "current",
1629 public: {
1630 enabled: true,
1631 },
1632 doctag_files: ["docs/known_doctags"],
1633 }
1634
1635 filegroup {
1636 name: "mygroup",
1637 srcs: [":myjavalib{.doctags}"],
1638 }
1639 `)
1640
1641 result.CheckSnapshot("mysdk", "",
1642 checkAndroidBpContents(`
1643// This is auto-generated. DO NOT EDIT.
1644
1645java_sdk_library_import {
1646 name: "mysdk_myjavalib@current",
1647 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001648 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001649 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001650 shared_library: true,
1651 doctag_files: ["doctags/docs/known_doctags"],
1652 public: {
1653 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001654 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001655 current_api: "sdk_library/public/myjavalib.txt",
1656 removed_api: "sdk_library/public/myjavalib-removed.txt",
1657 sdk_version: "current",
1658 },
1659}
1660
1661java_sdk_library_import {
1662 name: "myjavalib",
1663 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001664 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001665 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001666 shared_library: true,
1667 doctag_files: ["doctags/docs/known_doctags"],
1668 public: {
1669 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001670 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001671 current_api: "sdk_library/public/myjavalib.txt",
1672 removed_api: "sdk_library/public/myjavalib-removed.txt",
1673 sdk_version: "current",
1674 },
1675}
1676
1677sdk_snapshot {
1678 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001679 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001680 java_sdk_libs: ["mysdk_myjavalib@current"],
1681}
1682`),
1683 checkAllCopyRules(`
1684.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1685.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1686.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1687docs/known_doctags -> doctags/docs/known_doctags
1688`),
1689 )
1690}