blob: 17a6ca9b8eaa188f15815def90102a67a345bdf9 [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"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000506 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000507}
508
509java_import {
510 name: "myjavalib",
511 prefer: false,
512 visibility: ["//visibility:public"],
513 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000514 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000515}
516
517module_exports_snapshot {
518 name: "myexports@current",
519 visibility: ["//visibility:public"],
520 java_boot_libs: ["myexports_myjavalib@current"],
521}
Paul Duffindb170e42020-12-08 17:48:25 +0000522`),
523 checkAllCopyRules(`
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000524.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000525`),
526 )
527}
528
Paul Duffina0dbf432019-12-05 11:25:53 +0000529func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000530 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000531 module_exports {
532 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000533 device_supported: false,
534 host_supported: true,
535 java_libs: ["myjavalib"],
536 }
537
538 java_library {
539 name: "myjavalib",
540 device_supported: false,
541 host_supported: true,
542 srcs: ["Test.java"],
543 aidl: {
544 export_include_dirs: ["aidl"],
545 },
546 system_modules: "none",
547 sdk_version: "none",
548 compile_dex: true,
549 }
550 `)
551
Paul Duffin1356d8c2020-02-25 19:26:33 +0000552 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000553 checkAndroidBpContents(`
554// This is auto-generated. DO NOT EDIT.
555
556java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000557 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000558 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100559 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000560 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000561 device_supported: false,
562 host_supported: true,
563 jars: ["java/myjavalib.jar"],
564}
565
566java_import {
567 name: "myjavalib",
568 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100569 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000570 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000571 device_supported: false,
572 host_supported: true,
573 jars: ["java/myjavalib.jar"],
574}
575
Paul Duffine6029182019-12-16 17:43:48 +0000576module_exports_snapshot {
577 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100578 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000579 device_supported: false,
580 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000581 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000582}
583`),
584 checkAllCopyRules(`
585.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
586aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
587`),
588 )
589}
590
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000591func TestSnapshotWithJavaTest(t *testing.T) {
592 result := testSdkWithJava(t, `
593 module_exports {
594 name: "myexports",
595 java_tests: ["myjavatests"],
596 }
597
598 java_test {
599 name: "myjavatests",
600 srcs: ["Test.java"],
601 system_modules: "none",
602 sdk_version: "none",
603 compile_dex: true,
604 host_supported: true,
605 }
606 `)
607
Paul Duffin1356d8c2020-02-25 19:26:33 +0000608 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000609 checkAndroidBpContents(`
610// This is auto-generated. DO NOT EDIT.
611
612java_test_import {
613 name: "myexports_myjavatests@current",
614 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100615 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000616 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000617 jars: ["java/myjavatests.jar"],
618 test_config: "java/myjavatests-AndroidTest.xml",
619}
620
621java_test_import {
622 name: "myjavatests",
623 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100624 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000625 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000626 jars: ["java/myjavatests.jar"],
627 test_config: "java/myjavatests-AndroidTest.xml",
628}
629
630module_exports_snapshot {
631 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100632 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000633 java_tests: ["myexports_myjavatests@current"],
634}
635`),
636 checkAllCopyRules(`
637.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
638.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
639`),
640 )
641}
642
643func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000644 result := testSdkWithJava(t, `
645 module_exports {
646 name: "myexports",
647 device_supported: false,
648 host_supported: true,
649 java_tests: ["myjavatests"],
650 }
651
652 java_test {
653 name: "myjavatests",
654 device_supported: false,
655 host_supported: true,
656 srcs: ["Test.java"],
657 system_modules: "none",
658 sdk_version: "none",
659 compile_dex: true,
660 }
661 `)
662
Paul Duffin1356d8c2020-02-25 19:26:33 +0000663 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000664 checkAndroidBpContents(`
665// This is auto-generated. DO NOT EDIT.
666
667java_test_import {
668 name: "myexports_myjavatests@current",
669 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100670 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000671 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000672 device_supported: false,
673 host_supported: true,
674 jars: ["java/myjavatests.jar"],
675 test_config: "java/myjavatests-AndroidTest.xml",
676}
677
678java_test_import {
679 name: "myjavatests",
680 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100681 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000682 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000683 device_supported: false,
684 host_supported: true,
685 jars: ["java/myjavatests.jar"],
686 test_config: "java/myjavatests-AndroidTest.xml",
687}
688
689module_exports_snapshot {
690 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100691 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000692 device_supported: false,
693 host_supported: true,
694 java_tests: ["myexports_myjavatests@current"],
695}
696`),
697 checkAllCopyRules(`
698.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
699.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
700`),
701 )
702}
703
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000704func TestSnapshotWithJavaSystemModules(t *testing.T) {
705 result := testSdkWithJava(t, `
706 sdk {
707 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000708 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000709 java_system_modules: ["my-system-modules"],
710 }
711
712 java_system_modules {
713 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000714 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000715 }
716
717 java_library {
718 name: "system-module",
719 srcs: ["Test.java"],
720 sdk_version: "none",
721 system_modules: "none",
722 }
Paul Duffin72910952020-01-20 18:16:30 +0000723
724 java_library {
725 name: "exported-system-module",
726 srcs: ["Test.java"],
727 sdk_version: "none",
728 system_modules: "none",
729 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000730 `)
731
Paul Duffin1356d8c2020-02-25 19:26:33 +0000732 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000733 checkAndroidBpContents(`
734// This is auto-generated. DO NOT EDIT.
735
736java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000737 name: "mysdk_exported-system-module@current",
738 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100739 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000740 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000741 jars: ["java/exported-system-module.jar"],
742}
743
744java_import {
745 name: "exported-system-module",
746 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100747 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000748 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000749 jars: ["java/exported-system-module.jar"],
750}
751
752java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000753 name: "mysdk_system-module@current",
754 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000755 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000756 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000757 jars: ["java/system-module.jar"],
758}
759
760java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000761 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000762 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000763 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000764 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000765 jars: ["java/system-module.jar"],
766}
767
768java_system_modules_import {
769 name: "mysdk_my-system-modules@current",
770 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100771 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000772 libs: [
773 "mysdk_system-module@current",
774 "mysdk_exported-system-module@current",
775 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000776}
777
778java_system_modules_import {
779 name: "my-system-modules",
780 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100781 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000782 libs: [
783 "mysdk_system-module",
784 "exported-system-module",
785 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000786}
787
788sdk_snapshot {
789 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100790 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000791 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000792 java_system_modules: ["mysdk_my-system-modules@current"],
793}
794`),
Paul Duffin72910952020-01-20 18:16:30 +0000795 checkAllCopyRules(`
796.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
797.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
798`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000799 )
800}
801
802func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000803 result := testSdkWithJava(t, `
804 sdk {
805 name: "mysdk",
806 device_supported: false,
807 host_supported: true,
808 java_system_modules: ["my-system-modules"],
809 }
810
811 java_system_modules {
812 name: "my-system-modules",
813 device_supported: false,
814 host_supported: true,
815 libs: ["system-module"],
816 }
817
818 java_library {
819 name: "system-module",
820 device_supported: false,
821 host_supported: true,
822 srcs: ["Test.java"],
823 sdk_version: "none",
824 system_modules: "none",
825 }
826 `)
827
Paul Duffin1356d8c2020-02-25 19:26:33 +0000828 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000829 checkAndroidBpContents(`
830// This is auto-generated. DO NOT EDIT.
831
832java_import {
833 name: "mysdk_system-module@current",
834 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000835 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000836 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000837 device_supported: false,
838 host_supported: true,
839 jars: ["java/system-module.jar"],
840}
841
842java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000843 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000844 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000845 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000846 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000847 device_supported: false,
848 host_supported: true,
849 jars: ["java/system-module.jar"],
850}
851
852java_system_modules_import {
853 name: "mysdk_my-system-modules@current",
854 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100855 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000856 device_supported: false,
857 host_supported: true,
858 libs: ["mysdk_system-module@current"],
859}
860
861java_system_modules_import {
862 name: "my-system-modules",
863 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100864 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000865 device_supported: false,
866 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000867 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000868}
869
870sdk_snapshot {
871 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100872 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000873 device_supported: false,
874 host_supported: true,
875 java_system_modules: ["mysdk_my-system-modules@current"],
876}
877`),
878 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
879 )
880}
Paul Duffin865171e2020-03-02 18:38:15 +0000881
882func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000883 result := testSdkWithJava(t, `
884 module_exports {
885 name: "myexports",
886 host_supported: true,
887 java_libs: ["myjavalib"],
888 target: {
889 android: {
890 java_header_libs: ["androidjavalib"],
891 },
892 host: {
893 java_header_libs: ["hostjavalib"],
894 },
895 },
896 }
897
898 java_library {
899 name: "myjavalib",
900 host_supported: true,
901 srcs: ["Test.java"],
902 system_modules: "none",
903 sdk_version: "none",
904 }
905
906 java_library {
907 name: "androidjavalib",
908 srcs: ["Test.java"],
909 system_modules: "none",
910 sdk_version: "none",
911 }
912
913 java_library_host {
914 name: "hostjavalib",
915 srcs: ["Test.java"],
916 }
917 `)
918
919 result.CheckSnapshot("myexports", "",
920 checkAndroidBpContents(`
921// This is auto-generated. DO NOT EDIT.
922
923java_import {
924 name: "myexports_hostjavalib@current",
925 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100926 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000927 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000928 device_supported: false,
929 host_supported: true,
930 jars: ["java/hostjavalib.jar"],
931}
932
933java_import {
934 name: "hostjavalib",
935 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100936 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000937 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000938 device_supported: false,
939 host_supported: true,
940 jars: ["java/hostjavalib.jar"],
941}
942
943java_import {
944 name: "myexports_androidjavalib@current",
945 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100946 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000947 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000948 jars: ["java/androidjavalib.jar"],
949}
950
951java_import {
952 name: "androidjavalib",
953 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100954 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000955 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000956 jars: ["java/androidjavalib.jar"],
957}
958
959java_import {
960 name: "myexports_myjavalib@current",
961 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100962 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000963 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000964 host_supported: true,
965 target: {
966 android: {
967 jars: ["java/android/myjavalib.jar"],
968 },
969 linux_glibc: {
970 jars: ["java/linux_glibc/myjavalib.jar"],
971 },
972 },
973}
974
975java_import {
976 name: "myjavalib",
977 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100978 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000979 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000980 host_supported: true,
981 target: {
982 android: {
983 jars: ["java/android/myjavalib.jar"],
984 },
985 linux_glibc: {
986 jars: ["java/linux_glibc/myjavalib.jar"],
987 },
988 },
989}
990
991module_exports_snapshot {
992 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100993 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000994 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000995 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000996 target: {
997 android: {
998 java_header_libs: ["myexports_androidjavalib@current"],
999 },
1000 linux_glibc: {
1001 java_header_libs: ["myexports_hostjavalib@current"],
1002 },
1003 },
Paul Duffin865171e2020-03-02 18:38:15 +00001004}
1005`),
1006 checkAllCopyRules(`
1007.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1008.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1009.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1010.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1011`),
1012 )
1013}
Paul Duffindd46f712020-02-10 13:37:10 +00001014
1015func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1016 result := testSdkWithJava(t, `
1017 sdk {
1018 name: "mysdk",
1019 java_sdk_libs: ["myjavalib"],
1020 }
1021
1022 java_sdk_library {
1023 name: "myjavalib",
1024 apex_available: ["//apex_available:anyapex"],
1025 srcs: ["Test.java"],
1026 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001027 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001028 stubs_library_visibility: ["//other"],
1029 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001030 }
1031 `)
1032
1033 result.CheckSnapshot("mysdk", "",
1034 checkAndroidBpContents(`
1035// This is auto-generated. DO NOT EDIT.
1036
1037java_sdk_library_import {
1038 name: "mysdk_myjavalib@current",
1039 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001040 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001041 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001042 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001043 public: {
1044 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001045 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001046 current_api: "sdk_library/public/myjavalib.txt",
1047 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001048 sdk_version: "current",
1049 },
1050 system: {
1051 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001052 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001053 current_api: "sdk_library/system/myjavalib.txt",
1054 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001055 sdk_version: "system_current",
1056 },
1057 test: {
1058 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001059 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001060 current_api: "sdk_library/test/myjavalib.txt",
1061 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001062 sdk_version: "test_current",
1063 },
1064}
1065
1066java_sdk_library_import {
1067 name: "myjavalib",
1068 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001069 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001070 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 Duffinab5ac8f2020-11-18 16:37:35 +00001074 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 Duffinab5ac8f2020-11-18 16:37:35 +00001081 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 Duffinab5ac8f2020-11-18 16:37:35 +00001088 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",
Paul Duffind99d9972020-09-29 16:00:55 +01001097 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001098 java_sdk_libs: ["mysdk_myjavalib@current"],
1099}
1100`),
1101 checkAllCopyRules(`
1102.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001103.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001104.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001105.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001106.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001107.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001108.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001109.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001110.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_removed.txt -> sdk_library/test/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001111`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001112 checkMergeZips(
1113 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1114 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1115 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001116 )
1117}
Paul Duffin3375e352020-04-28 10:44:03 +01001118
Paul Duffin780c5f42020-05-12 15:52:55 +01001119func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1120 result := testSdkWithJava(t, `
1121 sdk {
1122 name: "mysdk",
1123 java_sdk_libs: ["myjavalib"],
1124 }
1125
1126 java_sdk_library {
1127 name: "myjavalib",
1128 srcs: ["Test.java"],
1129 sdk_version: "none",
1130 system_modules: "none",
1131 }
1132 `)
1133
1134 result.CheckSnapshot("mysdk", "",
1135 checkAndroidBpContents(`
1136// This is auto-generated. DO NOT EDIT.
1137
1138java_sdk_library_import {
1139 name: "mysdk_myjavalib@current",
1140 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001141 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001142 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001143 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001144 public: {
1145 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001146 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001147 current_api: "sdk_library/public/myjavalib.txt",
1148 removed_api: "sdk_library/public/myjavalib-removed.txt",
1149 sdk_version: "none",
1150 },
1151}
1152
1153java_sdk_library_import {
1154 name: "myjavalib",
1155 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001156 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001157 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001158 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001159 public: {
1160 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001161 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001162 current_api: "sdk_library/public/myjavalib.txt",
1163 removed_api: "sdk_library/public/myjavalib-removed.txt",
1164 sdk_version: "none",
1165 },
1166}
1167
1168sdk_snapshot {
1169 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001170 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001171 java_sdk_libs: ["mysdk_myjavalib@current"],
1172}
1173`),
1174 checkAllCopyRules(`
1175.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1176.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001177.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001178`),
1179 checkMergeZips(
1180 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1181 ),
1182 )
1183}
1184
Paul Duffin87a05a32020-05-12 11:50:28 +01001185func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1186 result := testSdkWithJava(t, `
1187 sdk {
1188 name: "mysdk",
1189 java_sdk_libs: ["myjavalib"],
1190 }
1191
1192 java_sdk_library {
1193 name: "myjavalib",
1194 srcs: ["Test.java"],
1195 sdk_version: "module_current",
1196 public: {
1197 enabled: true,
1198 sdk_version: "module_current",
1199 },
1200 }
1201 `)
1202
1203 result.CheckSnapshot("mysdk", "",
1204 checkAndroidBpContents(`
1205// This is auto-generated. DO NOT EDIT.
1206
1207java_sdk_library_import {
1208 name: "mysdk_myjavalib@current",
1209 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001210 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001211 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001212 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001213 public: {
1214 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001215 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001216 current_api: "sdk_library/public/myjavalib.txt",
1217 removed_api: "sdk_library/public/myjavalib-removed.txt",
1218 sdk_version: "module_current",
1219 },
1220}
1221
1222java_sdk_library_import {
1223 name: "myjavalib",
1224 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001225 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001226 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001227 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001228 public: {
1229 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001230 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001231 current_api: "sdk_library/public/myjavalib.txt",
1232 removed_api: "sdk_library/public/myjavalib-removed.txt",
1233 sdk_version: "module_current",
1234 },
1235}
1236
1237sdk_snapshot {
1238 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001239 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001240 java_sdk_libs: ["mysdk_myjavalib@current"],
1241}
1242`),
1243 checkAllCopyRules(`
1244.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1245.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001246.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001247`),
1248 checkMergeZips(
1249 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1250 ),
1251 )
1252}
1253
1254func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001255 result := testSdkWithJava(t, `
1256 sdk {
1257 name: "mysdk",
1258 java_sdk_libs: ["myjavalib"],
1259 }
1260
1261 java_sdk_library {
1262 name: "myjavalib",
1263 apex_available: ["//apex_available:anyapex"],
1264 srcs: ["Test.java"],
1265 sdk_version: "current",
1266 public: {
1267 enabled: true,
1268 },
1269 system: {
1270 enabled: true,
1271 },
1272 }
1273 `)
1274
1275 result.CheckSnapshot("mysdk", "",
1276 checkAndroidBpContents(`
1277// This is auto-generated. DO NOT EDIT.
1278
1279java_sdk_library_import {
1280 name: "mysdk_myjavalib@current",
1281 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001282 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001283 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001284 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001285 public: {
1286 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001287 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001288 current_api: "sdk_library/public/myjavalib.txt",
1289 removed_api: "sdk_library/public/myjavalib-removed.txt",
1290 sdk_version: "current",
1291 },
1292 system: {
1293 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001294 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001295 current_api: "sdk_library/system/myjavalib.txt",
1296 removed_api: "sdk_library/system/myjavalib-removed.txt",
1297 sdk_version: "system_current",
1298 },
1299}
1300
1301java_sdk_library_import {
1302 name: "myjavalib",
1303 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001304 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001305 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001306 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001307 public: {
1308 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001309 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001310 current_api: "sdk_library/public/myjavalib.txt",
1311 removed_api: "sdk_library/public/myjavalib-removed.txt",
1312 sdk_version: "current",
1313 },
1314 system: {
1315 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001316 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001317 current_api: "sdk_library/system/myjavalib.txt",
1318 removed_api: "sdk_library/system/myjavalib-removed.txt",
1319 sdk_version: "system_current",
1320 },
1321}
1322
1323sdk_snapshot {
1324 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001325 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001326 java_sdk_libs: ["mysdk_myjavalib@current"],
1327}
1328`),
1329 checkAllCopyRules(`
1330.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1331.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001332.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001333.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1334.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 +01001335.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 +01001336`),
1337 checkMergeZips(
1338 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1339 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1340 ),
1341 )
1342}
Paul Duffin8f265b92020-04-28 14:13:56 +01001343
1344func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1345 result := testSdkWithJava(t, `
1346 sdk {
1347 name: "mysdk",
1348 java_sdk_libs: ["myjavalib"],
1349 }
1350
1351 java_sdk_library {
1352 name: "myjavalib",
1353 apex_available: ["//apex_available:anyapex"],
1354 srcs: ["Test.java"],
1355 sdk_version: "current",
1356 public: {
1357 enabled: true,
1358 },
1359 system: {
1360 enabled: true,
1361 },
1362 module_lib: {
1363 enabled: true,
1364 },
1365 }
1366 `)
1367
1368 result.CheckSnapshot("mysdk", "",
1369 checkAndroidBpContents(`
1370// This is auto-generated. DO NOT EDIT.
1371
1372java_sdk_library_import {
1373 name: "mysdk_myjavalib@current",
1374 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001375 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001376 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001377 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001378 public: {
1379 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001380 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001381 current_api: "sdk_library/public/myjavalib.txt",
1382 removed_api: "sdk_library/public/myjavalib-removed.txt",
1383 sdk_version: "current",
1384 },
1385 system: {
1386 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001387 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001388 current_api: "sdk_library/system/myjavalib.txt",
1389 removed_api: "sdk_library/system/myjavalib-removed.txt",
1390 sdk_version: "system_current",
1391 },
1392 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001393 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001394 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001395 current_api: "sdk_library/module-lib/myjavalib.txt",
1396 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001397 sdk_version: "module_current",
1398 },
1399}
1400
1401java_sdk_library_import {
1402 name: "myjavalib",
1403 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001404 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001405 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001406 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001407 public: {
1408 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001409 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001410 current_api: "sdk_library/public/myjavalib.txt",
1411 removed_api: "sdk_library/public/myjavalib-removed.txt",
1412 sdk_version: "current",
1413 },
1414 system: {
1415 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001416 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001417 current_api: "sdk_library/system/myjavalib.txt",
1418 removed_api: "sdk_library/system/myjavalib-removed.txt",
1419 sdk_version: "system_current",
1420 },
1421 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001422 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001423 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001424 current_api: "sdk_library/module-lib/myjavalib.txt",
1425 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001426 sdk_version: "module_current",
1427 },
1428}
1429
1430sdk_snapshot {
1431 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001432 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001433 java_sdk_libs: ["mysdk_myjavalib@current"],
1434}
1435`),
1436 checkAllCopyRules(`
1437.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1438.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001439.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001440.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1441.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 +01001442.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 +01001443.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 +01001444.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1445.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 +01001446`),
1447 checkMergeZips(
1448 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1449 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001450 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001451 ),
1452 )
1453}
Paul Duffinf7a64332020-05-13 16:54:55 +01001454
Paul Duffin0c5bae52020-06-02 13:00:08 +01001455func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1456 result := testSdkWithJava(t, `
1457 sdk {
1458 name: "mysdk",
1459 java_sdk_libs: ["myjavalib"],
1460 }
1461
1462 java_sdk_library {
1463 name: "myjavalib",
1464 apex_available: ["//apex_available:anyapex"],
1465 srcs: ["Test.java"],
1466 sdk_version: "current",
1467 public: {
1468 enabled: true,
1469 },
1470 system_server: {
1471 enabled: true,
1472 },
1473 }
1474 `)
1475
1476 result.CheckSnapshot("mysdk", "",
1477 checkAndroidBpContents(`
1478// This is auto-generated. DO NOT EDIT.
1479
1480java_sdk_library_import {
1481 name: "mysdk_myjavalib@current",
1482 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001483 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001484 apex_available: ["//apex_available:anyapex"],
1485 shared_library: true,
1486 public: {
1487 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001488 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001489 current_api: "sdk_library/public/myjavalib.txt",
1490 removed_api: "sdk_library/public/myjavalib-removed.txt",
1491 sdk_version: "current",
1492 },
1493 system_server: {
1494 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001495 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001496 current_api: "sdk_library/system-server/myjavalib.txt",
1497 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1498 sdk_version: "system_server_current",
1499 },
1500}
1501
1502java_sdk_library_import {
1503 name: "myjavalib",
1504 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001505 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001506 apex_available: ["//apex_available:anyapex"],
1507 shared_library: true,
1508 public: {
1509 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001510 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001511 current_api: "sdk_library/public/myjavalib.txt",
1512 removed_api: "sdk_library/public/myjavalib-removed.txt",
1513 sdk_version: "current",
1514 },
1515 system_server: {
1516 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001517 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001518 current_api: "sdk_library/system-server/myjavalib.txt",
1519 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1520 sdk_version: "system_server_current",
1521 },
1522}
1523
1524sdk_snapshot {
1525 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001526 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001527 java_sdk_libs: ["mysdk_myjavalib@current"],
1528}
1529`),
1530 checkAllCopyRules(`
1531.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1532.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1533.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1534.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1535.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1536.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1537`),
1538 checkMergeZips(
1539 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1540 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1541 ),
1542 )
1543}
1544
Paul Duffinf7a64332020-05-13 16:54:55 +01001545func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1546 result := testSdkWithJava(t, `
1547 sdk {
1548 name: "mysdk",
1549 java_sdk_libs: ["myjavalib"],
1550 }
1551
1552 java_sdk_library {
1553 name: "myjavalib",
1554 apex_available: ["//apex_available:anyapex"],
1555 srcs: ["Test.java"],
1556 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001557 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001558 public: {
1559 enabled: true,
1560 },
1561 }
1562 `)
1563
1564 result.CheckSnapshot("mysdk", "",
1565 checkAndroidBpContents(`
1566// This is auto-generated. DO NOT EDIT.
1567
1568java_sdk_library_import {
1569 name: "mysdk_myjavalib@current",
1570 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001571 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001572 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001573 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001574 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001575 public: {
1576 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001577 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001578 current_api: "sdk_library/public/myjavalib.txt",
1579 removed_api: "sdk_library/public/myjavalib-removed.txt",
1580 sdk_version: "current",
1581 },
1582}
1583
1584java_sdk_library_import {
1585 name: "myjavalib",
1586 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001587 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001588 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001589 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001590 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001591 public: {
1592 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001593 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001594 current_api: "sdk_library/public/myjavalib.txt",
1595 removed_api: "sdk_library/public/myjavalib-removed.txt",
1596 sdk_version: "current",
1597 },
1598}
1599
1600sdk_snapshot {
1601 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001602 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001603 java_sdk_libs: ["mysdk_myjavalib@current"],
1604}
1605`),
1606 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001607.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1608.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1609.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001610`),
1611 checkMergeZips(
1612 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1613 ),
1614 )
1615}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001616
1617func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1618 result := testSdkWithJava(t, `
1619 sdk {
1620 name: "mysdk",
1621 java_sdk_libs: ["myjavalib"],
1622 }
1623
1624 java_sdk_library {
1625 name: "myjavalib",
1626 srcs: ["Test.java"],
1627 sdk_version: "current",
1628 public: {
1629 enabled: true,
1630 },
1631 doctag_files: ["docs/known_doctags"],
1632 }
1633
1634 filegroup {
1635 name: "mygroup",
1636 srcs: [":myjavalib{.doctags}"],
1637 }
1638 `)
1639
1640 result.CheckSnapshot("mysdk", "",
1641 checkAndroidBpContents(`
1642// This is auto-generated. DO NOT EDIT.
1643
1644java_sdk_library_import {
1645 name: "mysdk_myjavalib@current",
1646 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001647 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001648 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001649 shared_library: true,
1650 doctag_files: ["doctags/docs/known_doctags"],
1651 public: {
1652 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001653 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001654 current_api: "sdk_library/public/myjavalib.txt",
1655 removed_api: "sdk_library/public/myjavalib-removed.txt",
1656 sdk_version: "current",
1657 },
1658}
1659
1660java_sdk_library_import {
1661 name: "myjavalib",
1662 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001663 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001664 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001665 shared_library: true,
1666 doctag_files: ["doctags/docs/known_doctags"],
1667 public: {
1668 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001669 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001670 current_api: "sdk_library/public/myjavalib.txt",
1671 removed_api: "sdk_library/public/myjavalib-removed.txt",
1672 sdk_version: "current",
1673 },
1674}
1675
1676sdk_snapshot {
1677 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001678 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001679 java_sdk_libs: ["mysdk_myjavalib@current"],
1680}
1681`),
1682 checkAllCopyRules(`
1683.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1684.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1685.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1686docs/known_doctags -> doctags/docs/known_doctags
1687`),
1688 )
1689}