blob: ef8e4a00dd26aa3339f3210691ae3c2a952833fc [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".
Paul Duffin8306f252021-03-11 12:18:24 +0000128 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
Paul Duffincee7e662020-07-09 17:32:57 +0100129
Paul Duffin981b94b2021-03-11 12:32:12 +0000130 CheckSnapshot(result, "mysdk", "",
Paul Duffincee7e662020-07-09 17:32:57 +0100131 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",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000214 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000215 }
216
217 apex {
218 name: "myapex2",
219 java_libs: ["myjavalib"],
220 uses_sdks: ["mysdk@2"],
221 key: "myapex.key",
222 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000223 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000224 }
225 `)
226
Paul Duffin8306f252021-03-11 12:18:24 +0000227 sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
228 sdkMemberV2 := result.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000229
Paul Duffin8306f252021-03-11 12:18:24 +0000230 javalibForMyApex := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
231 javalibForMyApex2 := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000232
233 // Depending on the uses_sdks value, different libs are linked
234 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
235 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
236}
237
Paul Duffina0dbf432019-12-05 11:25:53 +0000238func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
239 result := testSdkWithJava(t, `
240 sdk {
241 name: "mysdk",
242 java_header_libs: ["myjavalib"],
243 }
244
245 java_library {
246 name: "myjavalib",
247 srcs: ["Test.java"],
248 aidl: {
249 export_include_dirs: ["aidl"],
250 },
251 system_modules: "none",
252 sdk_version: "none",
253 compile_dex: true,
254 host_supported: true,
255 }
256 `)
257
Paul Duffin981b94b2021-03-11 12:32:12 +0000258 CheckSnapshot(result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000259 checkAndroidBpContents(`
260// This is auto-generated. DO NOT EDIT.
261
262java_import {
263 name: "mysdk_myjavalib@current",
264 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100265 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000266 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000267 jars: ["java/myjavalib.jar"],
268}
269
270java_import {
271 name: "myjavalib",
272 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100273 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000274 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000275 jars: ["java/myjavalib.jar"],
276}
277
278sdk_snapshot {
279 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100280 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000281 java_header_libs: ["mysdk_myjavalib@current"],
282}
283
284`),
285 checkAllCopyRules(`
286.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
287aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
288`),
289 )
290}
291
292func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina0dbf432019-12-05 11:25:53 +0000293 result := testSdkWithJava(t, `
294 sdk {
295 name: "mysdk",
296 device_supported: false,
297 host_supported: true,
298 java_header_libs: ["myjavalib"],
299 }
300
301 java_library {
302 name: "myjavalib",
303 device_supported: false,
304 host_supported: true,
305 srcs: ["Test.java"],
306 aidl: {
307 export_include_dirs: ["aidl"],
308 },
309 system_modules: "none",
310 sdk_version: "none",
311 compile_dex: true,
312 }
313 `)
314
Paul Duffin981b94b2021-03-11 12:32:12 +0000315 CheckSnapshot(result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000316 checkAndroidBpContents(`
317// This is auto-generated. DO NOT EDIT.
318
319java_import {
320 name: "mysdk_myjavalib@current",
321 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100322 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000323 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000324 device_supported: false,
325 host_supported: true,
326 jars: ["java/myjavalib.jar"],
327}
328
329java_import {
330 name: "myjavalib",
331 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100332 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000333 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000334 device_supported: false,
335 host_supported: true,
336 jars: ["java/myjavalib.jar"],
337}
338
339sdk_snapshot {
340 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100341 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000342 device_supported: false,
343 host_supported: true,
344 java_header_libs: ["mysdk_myjavalib@current"],
345}
346`),
347 checkAllCopyRules(`
348.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
349aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
350`),
351 )
352}
353
Paul Duffina04c1072020-03-02 10:16:35 +0000354func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina04c1072020-03-02 10:16:35 +0000355 result := testSdkWithJava(t, `
356 sdk {
357 name: "mysdk",
358 host_supported: true,
359 java_header_libs: ["myjavalib"],
360 }
361
362 java_library {
363 name: "myjavalib",
364 host_supported: true,
365 srcs: ["Test.java"],
366 system_modules: "none",
367 sdk_version: "none",
368 compile_dex: true,
369 }
370 `)
371
Paul Duffin981b94b2021-03-11 12:32:12 +0000372 CheckSnapshot(result, "mysdk", "",
Paul Duffina04c1072020-03-02 10:16:35 +0000373 checkAndroidBpContents(`
374// This is auto-generated. DO NOT EDIT.
375
376java_import {
377 name: "mysdk_myjavalib@current",
378 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100379 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000380 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000381 host_supported: true,
382 target: {
383 android: {
384 jars: ["java/android/myjavalib.jar"],
385 },
386 linux_glibc: {
387 jars: ["java/linux_glibc/myjavalib.jar"],
388 },
389 },
390}
391
392java_import {
393 name: "myjavalib",
394 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100395 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000396 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000397 host_supported: true,
398 target: {
399 android: {
400 jars: ["java/android/myjavalib.jar"],
401 },
402 linux_glibc: {
403 jars: ["java/linux_glibc/myjavalib.jar"],
404 },
405 },
406}
407
408sdk_snapshot {
409 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100410 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000411 host_supported: true,
412 java_header_libs: ["mysdk_myjavalib@current"],
413}
414`),
415 checkAllCopyRules(`
416.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
417.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
418`),
419 )
420}
421
Paul Duffina0dbf432019-12-05 11:25:53 +0000422func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000423 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000424 module_exports {
425 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000426 java_libs: ["myjavalib"],
427 }
428
429 java_library {
430 name: "myjavalib",
431 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100432 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000433 aidl: {
434 export_include_dirs: ["aidl"],
435 },
436 system_modules: "none",
437 sdk_version: "none",
438 compile_dex: true,
439 host_supported: true,
440 }
441 `)
442
Paul Duffin981b94b2021-03-11 12:32:12 +0000443 CheckSnapshot(result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000444 checkAndroidBpContents(`
445// This is auto-generated. DO NOT EDIT.
446
447java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000448 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000449 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100450 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000451 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000452 jars: ["java/myjavalib.jar"],
453}
454
455java_import {
456 name: "myjavalib",
457 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100458 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000459 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000460 jars: ["java/myjavalib.jar"],
461}
462
Paul Duffine6029182019-12-16 17:43:48 +0000463module_exports_snapshot {
464 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100465 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000466 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000467}
468
469`),
470 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100471.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000472aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
473`),
474 )
475}
476
Paul Duffindb170e42020-12-08 17:48:25 +0000477func TestSnapshotWithJavaBootLibrary(t *testing.T) {
478 result := testSdkWithJava(t, `
479 module_exports {
480 name: "myexports",
481 java_boot_libs: ["myjavalib"],
482 }
483
484 java_library {
485 name: "myjavalib",
486 srcs: ["Test.java"],
487 java_resources: ["resource.txt"],
488 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
489 // intended to be used for compiling Java, only for accessing the dex implementation jar.
490 aidl: {
491 export_include_dirs: ["aidl"],
492 },
493 system_modules: "none",
494 sdk_version: "none",
495 compile_dex: true,
496 }
497 `)
498
Paul Duffin981b94b2021-03-11 12:32:12 +0000499 CheckSnapshot(result, "myexports", "",
Paul Duffindb170e42020-12-08 17:48:25 +0000500 checkAndroidBpContents(`
501// This is auto-generated. DO NOT EDIT.
502
503java_import {
504 name: "myexports_myjavalib@current",
505 sdk_member_name: "myjavalib",
506 visibility: ["//visibility:public"],
507 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000508 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000509}
510
511java_import {
512 name: "myjavalib",
513 prefer: false,
514 visibility: ["//visibility:public"],
515 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000516 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000517}
518
519module_exports_snapshot {
520 name: "myexports@current",
521 visibility: ["//visibility:public"],
522 java_boot_libs: ["myexports_myjavalib@current"],
523}
Paul Duffindb170e42020-12-08 17:48:25 +0000524`),
525 checkAllCopyRules(`
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000526.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000527`),
528 )
529}
530
Paul Duffina0dbf432019-12-05 11:25:53 +0000531func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000532 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000533 module_exports {
534 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000535 device_supported: false,
536 host_supported: true,
537 java_libs: ["myjavalib"],
538 }
539
540 java_library {
541 name: "myjavalib",
542 device_supported: false,
543 host_supported: true,
544 srcs: ["Test.java"],
545 aidl: {
546 export_include_dirs: ["aidl"],
547 },
548 system_modules: "none",
549 sdk_version: "none",
550 compile_dex: true,
551 }
552 `)
553
Paul Duffin981b94b2021-03-11 12:32:12 +0000554 CheckSnapshot(result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000555 checkAndroidBpContents(`
556// This is auto-generated. DO NOT EDIT.
557
558java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000559 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000560 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100561 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000562 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000563 device_supported: false,
564 host_supported: true,
565 jars: ["java/myjavalib.jar"],
566}
567
568java_import {
569 name: "myjavalib",
570 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100571 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000572 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000573 device_supported: false,
574 host_supported: true,
575 jars: ["java/myjavalib.jar"],
576}
577
Paul Duffine6029182019-12-16 17:43:48 +0000578module_exports_snapshot {
579 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100580 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000581 device_supported: false,
582 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000583 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000584}
585`),
586 checkAllCopyRules(`
587.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
588aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
589`),
590 )
591}
592
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000593func TestSnapshotWithJavaTest(t *testing.T) {
594 result := testSdkWithJava(t, `
595 module_exports {
596 name: "myexports",
597 java_tests: ["myjavatests"],
598 }
599
600 java_test {
601 name: "myjavatests",
602 srcs: ["Test.java"],
603 system_modules: "none",
604 sdk_version: "none",
605 compile_dex: true,
606 host_supported: true,
607 }
608 `)
609
Paul Duffin981b94b2021-03-11 12:32:12 +0000610 CheckSnapshot(result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000611 checkAndroidBpContents(`
612// This is auto-generated. DO NOT EDIT.
613
614java_test_import {
615 name: "myexports_myjavatests@current",
616 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100617 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000618 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000619 jars: ["java/myjavatests.jar"],
620 test_config: "java/myjavatests-AndroidTest.xml",
621}
622
623java_test_import {
624 name: "myjavatests",
625 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100626 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000627 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000628 jars: ["java/myjavatests.jar"],
629 test_config: "java/myjavatests-AndroidTest.xml",
630}
631
632module_exports_snapshot {
633 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100634 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000635 java_tests: ["myexports_myjavatests@current"],
636}
637`),
638 checkAllCopyRules(`
639.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
640.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
641`),
642 )
643}
644
645func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000646 result := testSdkWithJava(t, `
647 module_exports {
648 name: "myexports",
649 device_supported: false,
650 host_supported: true,
651 java_tests: ["myjavatests"],
652 }
653
654 java_test {
655 name: "myjavatests",
656 device_supported: false,
657 host_supported: true,
658 srcs: ["Test.java"],
659 system_modules: "none",
660 sdk_version: "none",
661 compile_dex: true,
662 }
663 `)
664
Paul Duffin981b94b2021-03-11 12:32:12 +0000665 CheckSnapshot(result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000666 checkAndroidBpContents(`
667// This is auto-generated. DO NOT EDIT.
668
669java_test_import {
670 name: "myexports_myjavatests@current",
671 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100672 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000673 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000674 device_supported: false,
675 host_supported: true,
676 jars: ["java/myjavatests.jar"],
677 test_config: "java/myjavatests-AndroidTest.xml",
678}
679
680java_test_import {
681 name: "myjavatests",
682 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100683 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000684 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000685 device_supported: false,
686 host_supported: true,
687 jars: ["java/myjavatests.jar"],
688 test_config: "java/myjavatests-AndroidTest.xml",
689}
690
691module_exports_snapshot {
692 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100693 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000694 device_supported: false,
695 host_supported: true,
696 java_tests: ["myexports_myjavatests@current"],
697}
698`),
699 checkAllCopyRules(`
700.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
701.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
702`),
703 )
704}
705
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000706func TestSnapshotWithJavaSystemModules(t *testing.T) {
707 result := testSdkWithJava(t, `
708 sdk {
709 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000710 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000711 java_system_modules: ["my-system-modules"],
712 }
713
714 java_system_modules {
715 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000716 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000717 }
718
719 java_library {
720 name: "system-module",
721 srcs: ["Test.java"],
722 sdk_version: "none",
723 system_modules: "none",
724 }
Paul Duffin72910952020-01-20 18:16:30 +0000725
726 java_library {
727 name: "exported-system-module",
728 srcs: ["Test.java"],
729 sdk_version: "none",
730 system_modules: "none",
731 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000732 `)
733
Paul Duffin981b94b2021-03-11 12:32:12 +0000734 CheckSnapshot(result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000735 checkAndroidBpContents(`
736// This is auto-generated. DO NOT EDIT.
737
738java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000739 name: "mysdk_exported-system-module@current",
740 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100741 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000742 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000743 jars: ["java/exported-system-module.jar"],
744}
745
746java_import {
747 name: "exported-system-module",
748 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100749 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000750 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000751 jars: ["java/exported-system-module.jar"],
752}
753
754java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000755 name: "mysdk_system-module@current",
756 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000757 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000758 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000759 jars: ["java/system-module.jar"],
760}
761
762java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000763 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000764 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000765 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000766 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000767 jars: ["java/system-module.jar"],
768}
769
770java_system_modules_import {
771 name: "mysdk_my-system-modules@current",
772 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100773 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000774 libs: [
775 "mysdk_system-module@current",
776 "mysdk_exported-system-module@current",
777 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000778}
779
780java_system_modules_import {
781 name: "my-system-modules",
782 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100783 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000784 libs: [
785 "mysdk_system-module",
786 "exported-system-module",
787 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000788}
789
790sdk_snapshot {
791 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100792 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000793 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000794 java_system_modules: ["mysdk_my-system-modules@current"],
795}
796`),
Paul Duffin72910952020-01-20 18:16:30 +0000797 checkAllCopyRules(`
798.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
799.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
800`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000801 )
802}
803
804func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000805 result := testSdkWithJava(t, `
806 sdk {
807 name: "mysdk",
808 device_supported: false,
809 host_supported: true,
810 java_system_modules: ["my-system-modules"],
811 }
812
813 java_system_modules {
814 name: "my-system-modules",
815 device_supported: false,
816 host_supported: true,
817 libs: ["system-module"],
818 }
819
820 java_library {
821 name: "system-module",
822 device_supported: false,
823 host_supported: true,
824 srcs: ["Test.java"],
825 sdk_version: "none",
826 system_modules: "none",
827 }
828 `)
829
Paul Duffin981b94b2021-03-11 12:32:12 +0000830 CheckSnapshot(result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000831 checkAndroidBpContents(`
832// This is auto-generated. DO NOT EDIT.
833
834java_import {
835 name: "mysdk_system-module@current",
836 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000837 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000838 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000839 device_supported: false,
840 host_supported: true,
841 jars: ["java/system-module.jar"],
842}
843
844java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000845 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000846 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000847 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000848 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000849 device_supported: false,
850 host_supported: true,
851 jars: ["java/system-module.jar"],
852}
853
854java_system_modules_import {
855 name: "mysdk_my-system-modules@current",
856 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100857 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000858 device_supported: false,
859 host_supported: true,
860 libs: ["mysdk_system-module@current"],
861}
862
863java_system_modules_import {
864 name: "my-system-modules",
865 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100866 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000867 device_supported: false,
868 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000869 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000870}
871
872sdk_snapshot {
873 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100874 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000875 device_supported: false,
876 host_supported: true,
877 java_system_modules: ["mysdk_my-system-modules@current"],
878}
879`),
880 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
881 )
882}
Paul Duffin865171e2020-03-02 18:38:15 +0000883
884func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000885 result := testSdkWithJava(t, `
886 module_exports {
887 name: "myexports",
888 host_supported: true,
889 java_libs: ["myjavalib"],
890 target: {
891 android: {
892 java_header_libs: ["androidjavalib"],
893 },
894 host: {
895 java_header_libs: ["hostjavalib"],
896 },
897 },
898 }
899
900 java_library {
901 name: "myjavalib",
902 host_supported: true,
903 srcs: ["Test.java"],
904 system_modules: "none",
905 sdk_version: "none",
906 }
907
908 java_library {
909 name: "androidjavalib",
910 srcs: ["Test.java"],
911 system_modules: "none",
912 sdk_version: "none",
913 }
914
915 java_library_host {
916 name: "hostjavalib",
917 srcs: ["Test.java"],
918 }
919 `)
920
Paul Duffin981b94b2021-03-11 12:32:12 +0000921 CheckSnapshot(result, "myexports", "",
Paul Duffin865171e2020-03-02 18:38:15 +0000922 checkAndroidBpContents(`
923// This is auto-generated. DO NOT EDIT.
924
925java_import {
926 name: "myexports_hostjavalib@current",
927 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100928 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000929 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000930 device_supported: false,
931 host_supported: true,
932 jars: ["java/hostjavalib.jar"],
933}
934
935java_import {
936 name: "hostjavalib",
937 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100938 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000939 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000940 device_supported: false,
941 host_supported: true,
942 jars: ["java/hostjavalib.jar"],
943}
944
945java_import {
946 name: "myexports_androidjavalib@current",
947 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100948 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000949 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000950 jars: ["java/androidjavalib.jar"],
951}
952
953java_import {
954 name: "androidjavalib",
955 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100956 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000957 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000958 jars: ["java/androidjavalib.jar"],
959}
960
961java_import {
962 name: "myexports_myjavalib@current",
963 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100964 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000965 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000966 host_supported: true,
967 target: {
968 android: {
969 jars: ["java/android/myjavalib.jar"],
970 },
971 linux_glibc: {
972 jars: ["java/linux_glibc/myjavalib.jar"],
973 },
974 },
975}
976
977java_import {
978 name: "myjavalib",
979 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100980 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000981 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000982 host_supported: true,
983 target: {
984 android: {
985 jars: ["java/android/myjavalib.jar"],
986 },
987 linux_glibc: {
988 jars: ["java/linux_glibc/myjavalib.jar"],
989 },
990 },
991}
992
993module_exports_snapshot {
994 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100995 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000996 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000997 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000998 target: {
999 android: {
1000 java_header_libs: ["myexports_androidjavalib@current"],
1001 },
1002 linux_glibc: {
1003 java_header_libs: ["myexports_hostjavalib@current"],
1004 },
1005 },
Paul Duffin865171e2020-03-02 18:38:15 +00001006}
1007`),
1008 checkAllCopyRules(`
1009.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1010.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1011.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1012.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1013`),
1014 )
1015}
Paul Duffindd46f712020-02-10 13:37:10 +00001016
1017func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1018 result := testSdkWithJava(t, `
1019 sdk {
1020 name: "mysdk",
1021 java_sdk_libs: ["myjavalib"],
1022 }
1023
1024 java_sdk_library {
1025 name: "myjavalib",
1026 apex_available: ["//apex_available:anyapex"],
1027 srcs: ["Test.java"],
1028 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001029 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001030 stubs_library_visibility: ["//other"],
1031 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001032 }
1033 `)
1034
Paul Duffin981b94b2021-03-11 12:32:12 +00001035 CheckSnapshot(result, "mysdk", "",
Paul Duffindd46f712020-02-10 13:37:10 +00001036 checkAndroidBpContents(`
1037// This is auto-generated. DO NOT EDIT.
1038
1039java_sdk_library_import {
1040 name: "mysdk_myjavalib@current",
1041 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001042 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001043 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001044 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001045 public: {
1046 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001047 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001048 current_api: "sdk_library/public/myjavalib.txt",
1049 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001050 sdk_version: "current",
1051 },
1052 system: {
1053 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001054 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001055 current_api: "sdk_library/system/myjavalib.txt",
1056 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001057 sdk_version: "system_current",
1058 },
1059 test: {
1060 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001061 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001062 current_api: "sdk_library/test/myjavalib.txt",
1063 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001064 sdk_version: "test_current",
1065 },
1066}
1067
1068java_sdk_library_import {
1069 name: "myjavalib",
1070 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001071 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001072 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001073 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001074 public: {
1075 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001076 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001077 current_api: "sdk_library/public/myjavalib.txt",
1078 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001079 sdk_version: "current",
1080 },
1081 system: {
1082 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001083 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001084 current_api: "sdk_library/system/myjavalib.txt",
1085 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001086 sdk_version: "system_current",
1087 },
1088 test: {
1089 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001090 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001091 current_api: "sdk_library/test/myjavalib.txt",
1092 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001093 sdk_version: "test_current",
1094 },
1095}
1096
1097sdk_snapshot {
1098 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001099 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001100 java_sdk_libs: ["mysdk_myjavalib@current"],
1101}
1102`),
1103 checkAllCopyRules(`
1104.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001105.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001106.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001107.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001108.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 +01001109.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 +00001110.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001111.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 +01001112.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 +00001113`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001114 checkMergeZips(
1115 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1116 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1117 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001118 )
1119}
Paul Duffin3375e352020-04-28 10:44:03 +01001120
Paul Duffin780c5f42020-05-12 15:52:55 +01001121func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1122 result := testSdkWithJava(t, `
1123 sdk {
1124 name: "mysdk",
1125 java_sdk_libs: ["myjavalib"],
1126 }
1127
1128 java_sdk_library {
1129 name: "myjavalib",
1130 srcs: ["Test.java"],
1131 sdk_version: "none",
1132 system_modules: "none",
1133 }
1134 `)
1135
Paul Duffin981b94b2021-03-11 12:32:12 +00001136 CheckSnapshot(result, "mysdk", "",
Paul Duffin780c5f42020-05-12 15:52:55 +01001137 checkAndroidBpContents(`
1138// This is auto-generated. DO NOT EDIT.
1139
1140java_sdk_library_import {
1141 name: "mysdk_myjavalib@current",
1142 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001143 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001144 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001145 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001146 public: {
1147 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001148 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001149 current_api: "sdk_library/public/myjavalib.txt",
1150 removed_api: "sdk_library/public/myjavalib-removed.txt",
1151 sdk_version: "none",
1152 },
1153}
1154
1155java_sdk_library_import {
1156 name: "myjavalib",
1157 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001158 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001159 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001160 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001161 public: {
1162 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001163 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001164 current_api: "sdk_library/public/myjavalib.txt",
1165 removed_api: "sdk_library/public/myjavalib-removed.txt",
1166 sdk_version: "none",
1167 },
1168}
1169
1170sdk_snapshot {
1171 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001172 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001173 java_sdk_libs: ["mysdk_myjavalib@current"],
1174}
1175`),
1176 checkAllCopyRules(`
1177.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1178.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001179.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001180`),
1181 checkMergeZips(
1182 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1183 ),
1184 )
1185}
1186
Paul Duffin87a05a32020-05-12 11:50:28 +01001187func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1188 result := testSdkWithJava(t, `
1189 sdk {
1190 name: "mysdk",
1191 java_sdk_libs: ["myjavalib"],
1192 }
1193
1194 java_sdk_library {
1195 name: "myjavalib",
1196 srcs: ["Test.java"],
1197 sdk_version: "module_current",
1198 public: {
1199 enabled: true,
1200 sdk_version: "module_current",
1201 },
1202 }
1203 `)
1204
Paul Duffin981b94b2021-03-11 12:32:12 +00001205 CheckSnapshot(result, "mysdk", "",
Paul Duffin87a05a32020-05-12 11:50:28 +01001206 checkAndroidBpContents(`
1207// This is auto-generated. DO NOT EDIT.
1208
1209java_sdk_library_import {
1210 name: "mysdk_myjavalib@current",
1211 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001212 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001213 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001214 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001215 public: {
1216 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001217 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001218 current_api: "sdk_library/public/myjavalib.txt",
1219 removed_api: "sdk_library/public/myjavalib-removed.txt",
1220 sdk_version: "module_current",
1221 },
1222}
1223
1224java_sdk_library_import {
1225 name: "myjavalib",
1226 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001227 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001228 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001229 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001230 public: {
1231 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001232 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001233 current_api: "sdk_library/public/myjavalib.txt",
1234 removed_api: "sdk_library/public/myjavalib-removed.txt",
1235 sdk_version: "module_current",
1236 },
1237}
1238
1239sdk_snapshot {
1240 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001241 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001242 java_sdk_libs: ["mysdk_myjavalib@current"],
1243}
1244`),
1245 checkAllCopyRules(`
1246.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1247.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001248.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001249`),
1250 checkMergeZips(
1251 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1252 ),
1253 )
1254}
1255
1256func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001257 result := testSdkWithJava(t, `
1258 sdk {
1259 name: "mysdk",
1260 java_sdk_libs: ["myjavalib"],
1261 }
1262
1263 java_sdk_library {
1264 name: "myjavalib",
1265 apex_available: ["//apex_available:anyapex"],
1266 srcs: ["Test.java"],
1267 sdk_version: "current",
1268 public: {
1269 enabled: true,
1270 },
1271 system: {
1272 enabled: true,
1273 },
1274 }
1275 `)
1276
Paul Duffin981b94b2021-03-11 12:32:12 +00001277 CheckSnapshot(result, "mysdk", "",
Paul Duffin3375e352020-04-28 10:44:03 +01001278 checkAndroidBpContents(`
1279// This is auto-generated. DO NOT EDIT.
1280
1281java_sdk_library_import {
1282 name: "mysdk_myjavalib@current",
1283 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001284 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001285 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001286 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001287 public: {
1288 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001289 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001290 current_api: "sdk_library/public/myjavalib.txt",
1291 removed_api: "sdk_library/public/myjavalib-removed.txt",
1292 sdk_version: "current",
1293 },
1294 system: {
1295 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001296 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001297 current_api: "sdk_library/system/myjavalib.txt",
1298 removed_api: "sdk_library/system/myjavalib-removed.txt",
1299 sdk_version: "system_current",
1300 },
1301}
1302
1303java_sdk_library_import {
1304 name: "myjavalib",
1305 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001306 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001307 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001308 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001309 public: {
1310 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001311 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001312 current_api: "sdk_library/public/myjavalib.txt",
1313 removed_api: "sdk_library/public/myjavalib-removed.txt",
1314 sdk_version: "current",
1315 },
1316 system: {
1317 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001318 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001319 current_api: "sdk_library/system/myjavalib.txt",
1320 removed_api: "sdk_library/system/myjavalib-removed.txt",
1321 sdk_version: "system_current",
1322 },
1323}
1324
1325sdk_snapshot {
1326 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001327 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001328 java_sdk_libs: ["mysdk_myjavalib@current"],
1329}
1330`),
1331 checkAllCopyRules(`
1332.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1333.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001334.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001335.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1336.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 +01001337.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 +01001338`),
1339 checkMergeZips(
1340 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1341 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1342 ),
1343 )
1344}
Paul Duffin8f265b92020-04-28 14:13:56 +01001345
1346func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1347 result := testSdkWithJava(t, `
1348 sdk {
1349 name: "mysdk",
1350 java_sdk_libs: ["myjavalib"],
1351 }
1352
1353 java_sdk_library {
1354 name: "myjavalib",
1355 apex_available: ["//apex_available:anyapex"],
1356 srcs: ["Test.java"],
1357 sdk_version: "current",
1358 public: {
1359 enabled: true,
1360 },
1361 system: {
1362 enabled: true,
1363 },
1364 module_lib: {
1365 enabled: true,
1366 },
1367 }
1368 `)
1369
Paul Duffin981b94b2021-03-11 12:32:12 +00001370 CheckSnapshot(result, "mysdk", "",
Paul Duffin8f265b92020-04-28 14:13:56 +01001371 checkAndroidBpContents(`
1372// This is auto-generated. DO NOT EDIT.
1373
1374java_sdk_library_import {
1375 name: "mysdk_myjavalib@current",
1376 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001377 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001378 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001379 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001380 public: {
1381 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001382 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001383 current_api: "sdk_library/public/myjavalib.txt",
1384 removed_api: "sdk_library/public/myjavalib-removed.txt",
1385 sdk_version: "current",
1386 },
1387 system: {
1388 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001389 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001390 current_api: "sdk_library/system/myjavalib.txt",
1391 removed_api: "sdk_library/system/myjavalib-removed.txt",
1392 sdk_version: "system_current",
1393 },
1394 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001395 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001396 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001397 current_api: "sdk_library/module-lib/myjavalib.txt",
1398 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001399 sdk_version: "module_current",
1400 },
1401}
1402
1403java_sdk_library_import {
1404 name: "myjavalib",
1405 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001406 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001407 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001408 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001409 public: {
1410 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001411 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001412 current_api: "sdk_library/public/myjavalib.txt",
1413 removed_api: "sdk_library/public/myjavalib-removed.txt",
1414 sdk_version: "current",
1415 },
1416 system: {
1417 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001418 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001419 current_api: "sdk_library/system/myjavalib.txt",
1420 removed_api: "sdk_library/system/myjavalib-removed.txt",
1421 sdk_version: "system_current",
1422 },
1423 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001424 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001425 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001426 current_api: "sdk_library/module-lib/myjavalib.txt",
1427 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001428 sdk_version: "module_current",
1429 },
1430}
1431
1432sdk_snapshot {
1433 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001434 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001435 java_sdk_libs: ["mysdk_myjavalib@current"],
1436}
1437`),
1438 checkAllCopyRules(`
1439.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1440.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001441.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001442.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1443.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 +01001444.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 +01001445.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 +01001446.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1447.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 +01001448`),
1449 checkMergeZips(
1450 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1451 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001452 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001453 ),
1454 )
1455}
Paul Duffinf7a64332020-05-13 16:54:55 +01001456
Paul Duffin0c5bae52020-06-02 13:00:08 +01001457func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1458 result := testSdkWithJava(t, `
1459 sdk {
1460 name: "mysdk",
1461 java_sdk_libs: ["myjavalib"],
1462 }
1463
1464 java_sdk_library {
1465 name: "myjavalib",
1466 apex_available: ["//apex_available:anyapex"],
1467 srcs: ["Test.java"],
1468 sdk_version: "current",
1469 public: {
1470 enabled: true,
1471 },
1472 system_server: {
1473 enabled: true,
1474 },
1475 }
1476 `)
1477
Paul Duffin981b94b2021-03-11 12:32:12 +00001478 CheckSnapshot(result, "mysdk", "",
Paul Duffin0c5bae52020-06-02 13:00:08 +01001479 checkAndroidBpContents(`
1480// This is auto-generated. DO NOT EDIT.
1481
1482java_sdk_library_import {
1483 name: "mysdk_myjavalib@current",
1484 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001485 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001486 apex_available: ["//apex_available:anyapex"],
1487 shared_library: true,
1488 public: {
1489 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001490 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001491 current_api: "sdk_library/public/myjavalib.txt",
1492 removed_api: "sdk_library/public/myjavalib-removed.txt",
1493 sdk_version: "current",
1494 },
1495 system_server: {
1496 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001497 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001498 current_api: "sdk_library/system-server/myjavalib.txt",
1499 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1500 sdk_version: "system_server_current",
1501 },
1502}
1503
1504java_sdk_library_import {
1505 name: "myjavalib",
1506 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001507 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001508 apex_available: ["//apex_available:anyapex"],
1509 shared_library: true,
1510 public: {
1511 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001512 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001513 current_api: "sdk_library/public/myjavalib.txt",
1514 removed_api: "sdk_library/public/myjavalib-removed.txt",
1515 sdk_version: "current",
1516 },
1517 system_server: {
1518 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001519 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001520 current_api: "sdk_library/system-server/myjavalib.txt",
1521 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1522 sdk_version: "system_server_current",
1523 },
1524}
1525
1526sdk_snapshot {
1527 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001528 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001529 java_sdk_libs: ["mysdk_myjavalib@current"],
1530}
1531`),
1532 checkAllCopyRules(`
1533.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1534.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1535.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1536.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1537.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1538.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1539`),
1540 checkMergeZips(
1541 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1542 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1543 ),
1544 )
1545}
1546
Paul Duffinf7a64332020-05-13 16:54:55 +01001547func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1548 result := testSdkWithJava(t, `
1549 sdk {
1550 name: "mysdk",
1551 java_sdk_libs: ["myjavalib"],
1552 }
1553
1554 java_sdk_library {
1555 name: "myjavalib",
1556 apex_available: ["//apex_available:anyapex"],
1557 srcs: ["Test.java"],
1558 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001559 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001560 public: {
1561 enabled: true,
1562 },
1563 }
1564 `)
1565
Paul Duffin981b94b2021-03-11 12:32:12 +00001566 CheckSnapshot(result, "mysdk", "",
Paul Duffinf7a64332020-05-13 16:54:55 +01001567 checkAndroidBpContents(`
1568// This is auto-generated. DO NOT EDIT.
1569
1570java_sdk_library_import {
1571 name: "mysdk_myjavalib@current",
1572 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001573 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001574 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001575 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001576 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001577 public: {
1578 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001579 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001580 current_api: "sdk_library/public/myjavalib.txt",
1581 removed_api: "sdk_library/public/myjavalib-removed.txt",
1582 sdk_version: "current",
1583 },
1584}
1585
1586java_sdk_library_import {
1587 name: "myjavalib",
1588 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001589 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001590 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001591 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001592 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001593 public: {
1594 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001595 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001596 current_api: "sdk_library/public/myjavalib.txt",
1597 removed_api: "sdk_library/public/myjavalib-removed.txt",
1598 sdk_version: "current",
1599 },
1600}
1601
1602sdk_snapshot {
1603 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001604 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001605 java_sdk_libs: ["mysdk_myjavalib@current"],
1606}
1607`),
1608 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001609.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1610.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1611.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001612`),
1613 checkMergeZips(
1614 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1615 ),
1616 )
1617}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001618
1619func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1620 result := testSdkWithJava(t, `
1621 sdk {
1622 name: "mysdk",
1623 java_sdk_libs: ["myjavalib"],
1624 }
1625
1626 java_sdk_library {
1627 name: "myjavalib",
1628 srcs: ["Test.java"],
1629 sdk_version: "current",
1630 public: {
1631 enabled: true,
1632 },
1633 doctag_files: ["docs/known_doctags"],
1634 }
1635
1636 filegroup {
1637 name: "mygroup",
1638 srcs: [":myjavalib{.doctags}"],
1639 }
1640 `)
1641
Paul Duffin981b94b2021-03-11 12:32:12 +00001642 CheckSnapshot(result, "mysdk", "",
Paul Duffina2ae7e02020-09-11 11:55:00 +01001643 checkAndroidBpContents(`
1644// This is auto-generated. DO NOT EDIT.
1645
1646java_sdk_library_import {
1647 name: "mysdk_myjavalib@current",
1648 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001649 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001650 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001651 shared_library: true,
1652 doctag_files: ["doctags/docs/known_doctags"],
1653 public: {
1654 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001655 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001656 current_api: "sdk_library/public/myjavalib.txt",
1657 removed_api: "sdk_library/public/myjavalib-removed.txt",
1658 sdk_version: "current",
1659 },
1660}
1661
1662java_sdk_library_import {
1663 name: "myjavalib",
1664 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001665 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001666 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001667 shared_library: true,
1668 doctag_files: ["doctags/docs/known_doctags"],
1669 public: {
1670 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001671 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001672 current_api: "sdk_library/public/myjavalib.txt",
1673 removed_api: "sdk_library/public/myjavalib-removed.txt",
1674 sdk_version: "current",
1675 },
1676}
1677
1678sdk_snapshot {
1679 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001680 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001681 java_sdk_libs: ["mysdk_myjavalib@current"],
1682}
1683`),
1684 checkAllCopyRules(`
1685.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1686.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1687.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1688docs/known_doctags -> doctags/docs/known_doctags
1689`),
1690 )
1691}