blob: d989c5be909945600f37b88338e7b6abe5a1f3cb [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 Duffina0dbf432019-12-05 11:25:53 +0000475func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000476 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000477 module_exports {
478 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000479 device_supported: false,
480 host_supported: true,
481 java_libs: ["myjavalib"],
482 }
483
484 java_library {
485 name: "myjavalib",
486 device_supported: false,
487 host_supported: true,
488 srcs: ["Test.java"],
489 aidl: {
490 export_include_dirs: ["aidl"],
491 },
492 system_modules: "none",
493 sdk_version: "none",
494 compile_dex: true,
495 }
496 `)
497
Paul Duffin1356d8c2020-02-25 19:26:33 +0000498 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000499 checkAndroidBpContents(`
500// This is auto-generated. DO NOT EDIT.
501
502java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000503 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000504 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100505 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000506 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000507 device_supported: false,
508 host_supported: true,
509 jars: ["java/myjavalib.jar"],
510}
511
512java_import {
513 name: "myjavalib",
514 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100515 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000516 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000517 device_supported: false,
518 host_supported: true,
519 jars: ["java/myjavalib.jar"],
520}
521
Paul Duffine6029182019-12-16 17:43:48 +0000522module_exports_snapshot {
523 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100524 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000525 device_supported: false,
526 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000527 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000528}
529`),
530 checkAllCopyRules(`
531.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
532aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
533`),
534 )
535}
536
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000537func TestSnapshotWithJavaTest(t *testing.T) {
538 result := testSdkWithJava(t, `
539 module_exports {
540 name: "myexports",
541 java_tests: ["myjavatests"],
542 }
543
544 java_test {
545 name: "myjavatests",
546 srcs: ["Test.java"],
547 system_modules: "none",
548 sdk_version: "none",
549 compile_dex: true,
550 host_supported: true,
551 }
552 `)
553
Paul Duffin1356d8c2020-02-25 19:26:33 +0000554 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000555 checkAndroidBpContents(`
556// This is auto-generated. DO NOT EDIT.
557
558java_test_import {
559 name: "myexports_myjavatests@current",
560 sdk_member_name: "myjavatests",
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 Duffin1b82e6a2019-12-03 18:06:47 +0000563 jars: ["java/myjavatests.jar"],
564 test_config: "java/myjavatests-AndroidTest.xml",
565}
566
567java_test_import {
568 name: "myjavatests",
569 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100570 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000571 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000572 jars: ["java/myjavatests.jar"],
573 test_config: "java/myjavatests-AndroidTest.xml",
574}
575
576module_exports_snapshot {
577 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100578 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000579 java_tests: ["myexports_myjavatests@current"],
580}
581`),
582 checkAllCopyRules(`
583.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
584.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
585`),
586 )
587}
588
589func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000590 result := testSdkWithJava(t, `
591 module_exports {
592 name: "myexports",
593 device_supported: false,
594 host_supported: true,
595 java_tests: ["myjavatests"],
596 }
597
598 java_test {
599 name: "myjavatests",
600 device_supported: false,
601 host_supported: true,
602 srcs: ["Test.java"],
603 system_modules: "none",
604 sdk_version: "none",
605 compile_dex: true,
606 }
607 `)
608
Paul Duffin1356d8c2020-02-25 19:26:33 +0000609 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000610 checkAndroidBpContents(`
611// This is auto-generated. DO NOT EDIT.
612
613java_test_import {
614 name: "myexports_myjavatests@current",
615 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100616 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000617 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000618 device_supported: false,
619 host_supported: true,
620 jars: ["java/myjavatests.jar"],
621 test_config: "java/myjavatests-AndroidTest.xml",
622}
623
624java_test_import {
625 name: "myjavatests",
626 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100627 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000628 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000629 device_supported: false,
630 host_supported: true,
631 jars: ["java/myjavatests.jar"],
632 test_config: "java/myjavatests-AndroidTest.xml",
633}
634
635module_exports_snapshot {
636 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100637 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000638 device_supported: false,
639 host_supported: true,
640 java_tests: ["myexports_myjavatests@current"],
641}
642`),
643 checkAllCopyRules(`
644.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
645.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
646`),
647 )
648}
649
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000650func TestSnapshotWithJavaSystemModules(t *testing.T) {
651 result := testSdkWithJava(t, `
652 sdk {
653 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000654 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000655 java_system_modules: ["my-system-modules"],
656 }
657
658 java_system_modules {
659 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000660 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000661 }
662
663 java_library {
664 name: "system-module",
665 srcs: ["Test.java"],
666 sdk_version: "none",
667 system_modules: "none",
668 }
Paul Duffin72910952020-01-20 18:16:30 +0000669
670 java_library {
671 name: "exported-system-module",
672 srcs: ["Test.java"],
673 sdk_version: "none",
674 system_modules: "none",
675 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000676 `)
677
Paul Duffin1356d8c2020-02-25 19:26:33 +0000678 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000679 checkAndroidBpContents(`
680// This is auto-generated. DO NOT EDIT.
681
682java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000683 name: "mysdk_exported-system-module@current",
684 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100685 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000686 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000687 jars: ["java/exported-system-module.jar"],
688}
689
690java_import {
691 name: "exported-system-module",
692 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100693 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000694 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000695 jars: ["java/exported-system-module.jar"],
696}
697
698java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000699 name: "mysdk_system-module@current",
700 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000701 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000702 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000703 jars: ["java/system-module.jar"],
704}
705
706java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000707 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000708 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000709 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000710 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000711 jars: ["java/system-module.jar"],
712}
713
714java_system_modules_import {
715 name: "mysdk_my-system-modules@current",
716 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100717 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000718 libs: [
719 "mysdk_system-module@current",
720 "mysdk_exported-system-module@current",
721 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000722}
723
724java_system_modules_import {
725 name: "my-system-modules",
726 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100727 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000728 libs: [
729 "mysdk_system-module",
730 "exported-system-module",
731 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000732}
733
734sdk_snapshot {
735 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100736 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000737 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000738 java_system_modules: ["mysdk_my-system-modules@current"],
739}
740`),
Paul Duffin72910952020-01-20 18:16:30 +0000741 checkAllCopyRules(`
742.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
743.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
744`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000745 )
746}
747
748func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000749 result := testSdkWithJava(t, `
750 sdk {
751 name: "mysdk",
752 device_supported: false,
753 host_supported: true,
754 java_system_modules: ["my-system-modules"],
755 }
756
757 java_system_modules {
758 name: "my-system-modules",
759 device_supported: false,
760 host_supported: true,
761 libs: ["system-module"],
762 }
763
764 java_library {
765 name: "system-module",
766 device_supported: false,
767 host_supported: true,
768 srcs: ["Test.java"],
769 sdk_version: "none",
770 system_modules: "none",
771 }
772 `)
773
Paul Duffin1356d8c2020-02-25 19:26:33 +0000774 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000775 checkAndroidBpContents(`
776// This is auto-generated. DO NOT EDIT.
777
778java_import {
779 name: "mysdk_system-module@current",
780 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000781 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000782 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000783 device_supported: false,
784 host_supported: true,
785 jars: ["java/system-module.jar"],
786}
787
788java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000789 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000790 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000791 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000792 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000793 device_supported: false,
794 host_supported: true,
795 jars: ["java/system-module.jar"],
796}
797
798java_system_modules_import {
799 name: "mysdk_my-system-modules@current",
800 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100801 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000802 device_supported: false,
803 host_supported: true,
804 libs: ["mysdk_system-module@current"],
805}
806
807java_system_modules_import {
808 name: "my-system-modules",
809 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100810 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000811 device_supported: false,
812 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000813 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000814}
815
816sdk_snapshot {
817 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100818 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000819 device_supported: false,
820 host_supported: true,
821 java_system_modules: ["mysdk_my-system-modules@current"],
822}
823`),
824 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
825 )
826}
Paul Duffin865171e2020-03-02 18:38:15 +0000827
828func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000829 result := testSdkWithJava(t, `
830 module_exports {
831 name: "myexports",
832 host_supported: true,
833 java_libs: ["myjavalib"],
834 target: {
835 android: {
836 java_header_libs: ["androidjavalib"],
837 },
838 host: {
839 java_header_libs: ["hostjavalib"],
840 },
841 },
842 }
843
844 java_library {
845 name: "myjavalib",
846 host_supported: true,
847 srcs: ["Test.java"],
848 system_modules: "none",
849 sdk_version: "none",
850 }
851
852 java_library {
853 name: "androidjavalib",
854 srcs: ["Test.java"],
855 system_modules: "none",
856 sdk_version: "none",
857 }
858
859 java_library_host {
860 name: "hostjavalib",
861 srcs: ["Test.java"],
862 }
863 `)
864
865 result.CheckSnapshot("myexports", "",
866 checkAndroidBpContents(`
867// This is auto-generated. DO NOT EDIT.
868
869java_import {
870 name: "myexports_hostjavalib@current",
871 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100872 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000873 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000874 device_supported: false,
875 host_supported: true,
876 jars: ["java/hostjavalib.jar"],
877}
878
879java_import {
880 name: "hostjavalib",
881 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100882 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000883 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000884 device_supported: false,
885 host_supported: true,
886 jars: ["java/hostjavalib.jar"],
887}
888
889java_import {
890 name: "myexports_androidjavalib@current",
891 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100892 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000893 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000894 jars: ["java/androidjavalib.jar"],
895}
896
897java_import {
898 name: "androidjavalib",
899 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100900 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000901 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000902 jars: ["java/androidjavalib.jar"],
903}
904
905java_import {
906 name: "myexports_myjavalib@current",
907 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100908 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000909 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000910 host_supported: true,
911 target: {
912 android: {
913 jars: ["java/android/myjavalib.jar"],
914 },
915 linux_glibc: {
916 jars: ["java/linux_glibc/myjavalib.jar"],
917 },
918 },
919}
920
921java_import {
922 name: "myjavalib",
923 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100924 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000925 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000926 host_supported: true,
927 target: {
928 android: {
929 jars: ["java/android/myjavalib.jar"],
930 },
931 linux_glibc: {
932 jars: ["java/linux_glibc/myjavalib.jar"],
933 },
934 },
935}
936
937module_exports_snapshot {
938 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100939 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000940 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000941 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000942 target: {
943 android: {
944 java_header_libs: ["myexports_androidjavalib@current"],
945 },
946 linux_glibc: {
947 java_header_libs: ["myexports_hostjavalib@current"],
948 },
949 },
Paul Duffin865171e2020-03-02 18:38:15 +0000950}
951`),
952 checkAllCopyRules(`
953.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
954.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
955.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
956.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
957`),
958 )
959}
Paul Duffindd46f712020-02-10 13:37:10 +0000960
961func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
962 result := testSdkWithJava(t, `
963 sdk {
964 name: "mysdk",
965 java_sdk_libs: ["myjavalib"],
966 }
967
968 java_sdk_library {
969 name: "myjavalib",
970 apex_available: ["//apex_available:anyapex"],
971 srcs: ["Test.java"],
972 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100973 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100974 stubs_library_visibility: ["//other"],
975 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +0000976 }
977 `)
978
979 result.CheckSnapshot("mysdk", "",
980 checkAndroidBpContents(`
981// This is auto-generated. DO NOT EDIT.
982
983java_sdk_library_import {
984 name: "mysdk_myjavalib@current",
985 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100986 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000987 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100988 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +0000989 public: {
990 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000991 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100992 current_api: "sdk_library/public/myjavalib.txt",
993 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000994 sdk_version: "current",
995 },
996 system: {
997 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000998 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100999 current_api: "sdk_library/system/myjavalib.txt",
1000 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001001 sdk_version: "system_current",
1002 },
1003 test: {
1004 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001005 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001006 current_api: "sdk_library/test/myjavalib.txt",
1007 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001008 sdk_version: "test_current",
1009 },
1010}
1011
1012java_sdk_library_import {
1013 name: "myjavalib",
1014 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001015 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001016 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001017 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001018 public: {
1019 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001020 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001021 current_api: "sdk_library/public/myjavalib.txt",
1022 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001023 sdk_version: "current",
1024 },
1025 system: {
1026 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001027 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001028 current_api: "sdk_library/system/myjavalib.txt",
1029 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001030 sdk_version: "system_current",
1031 },
1032 test: {
1033 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001034 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001035 current_api: "sdk_library/test/myjavalib.txt",
1036 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001037 sdk_version: "test_current",
1038 },
1039}
1040
1041sdk_snapshot {
1042 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001043 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001044 java_sdk_libs: ["mysdk_myjavalib@current"],
1045}
1046`),
1047 checkAllCopyRules(`
1048.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001049.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001050.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001051.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001052.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 +01001053.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 +00001054.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001055.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 +01001056.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 +00001057`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001058 checkMergeZips(
1059 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1060 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1061 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001062 )
1063}
Paul Duffin3375e352020-04-28 10:44:03 +01001064
Paul Duffin780c5f42020-05-12 15:52:55 +01001065func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1066 result := testSdkWithJava(t, `
1067 sdk {
1068 name: "mysdk",
1069 java_sdk_libs: ["myjavalib"],
1070 }
1071
1072 java_sdk_library {
1073 name: "myjavalib",
1074 srcs: ["Test.java"],
1075 sdk_version: "none",
1076 system_modules: "none",
1077 }
1078 `)
1079
1080 result.CheckSnapshot("mysdk", "",
1081 checkAndroidBpContents(`
1082// This is auto-generated. DO NOT EDIT.
1083
1084java_sdk_library_import {
1085 name: "mysdk_myjavalib@current",
1086 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001087 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001088 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001089 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001090 public: {
1091 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001092 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001093 current_api: "sdk_library/public/myjavalib.txt",
1094 removed_api: "sdk_library/public/myjavalib-removed.txt",
1095 sdk_version: "none",
1096 },
1097}
1098
1099java_sdk_library_import {
1100 name: "myjavalib",
1101 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001102 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001103 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001104 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001105 public: {
1106 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001107 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001108 current_api: "sdk_library/public/myjavalib.txt",
1109 removed_api: "sdk_library/public/myjavalib-removed.txt",
1110 sdk_version: "none",
1111 },
1112}
1113
1114sdk_snapshot {
1115 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001116 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001117 java_sdk_libs: ["mysdk_myjavalib@current"],
1118}
1119`),
1120 checkAllCopyRules(`
1121.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1122.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001123.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001124`),
1125 checkMergeZips(
1126 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1127 ),
1128 )
1129}
1130
Paul Duffin87a05a32020-05-12 11:50:28 +01001131func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1132 result := testSdkWithJava(t, `
1133 sdk {
1134 name: "mysdk",
1135 java_sdk_libs: ["myjavalib"],
1136 }
1137
1138 java_sdk_library {
1139 name: "myjavalib",
1140 srcs: ["Test.java"],
1141 sdk_version: "module_current",
1142 public: {
1143 enabled: true,
1144 sdk_version: "module_current",
1145 },
1146 }
1147 `)
1148
1149 result.CheckSnapshot("mysdk", "",
1150 checkAndroidBpContents(`
1151// This is auto-generated. DO NOT EDIT.
1152
1153java_sdk_library_import {
1154 name: "mysdk_myjavalib@current",
1155 sdk_member_name: "myjavalib",
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 Duffin87a05a32020-05-12 11:50:28 +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 Duffin87a05a32020-05-12 11:50:28 +01001162 current_api: "sdk_library/public/myjavalib.txt",
1163 removed_api: "sdk_library/public/myjavalib-removed.txt",
1164 sdk_version: "module_current",
1165 },
1166}
1167
1168java_sdk_library_import {
1169 name: "myjavalib",
1170 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001171 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001172 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001173 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001174 public: {
1175 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001176 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001177 current_api: "sdk_library/public/myjavalib.txt",
1178 removed_api: "sdk_library/public/myjavalib-removed.txt",
1179 sdk_version: "module_current",
1180 },
1181}
1182
1183sdk_snapshot {
1184 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001185 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001186 java_sdk_libs: ["mysdk_myjavalib@current"],
1187}
1188`),
1189 checkAllCopyRules(`
1190.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1191.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001192.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001193`),
1194 checkMergeZips(
1195 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1196 ),
1197 )
1198}
1199
1200func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001201 result := testSdkWithJava(t, `
1202 sdk {
1203 name: "mysdk",
1204 java_sdk_libs: ["myjavalib"],
1205 }
1206
1207 java_sdk_library {
1208 name: "myjavalib",
1209 apex_available: ["//apex_available:anyapex"],
1210 srcs: ["Test.java"],
1211 sdk_version: "current",
1212 public: {
1213 enabled: true,
1214 },
1215 system: {
1216 enabled: true,
1217 },
1218 }
1219 `)
1220
1221 result.CheckSnapshot("mysdk", "",
1222 checkAndroidBpContents(`
1223// This is auto-generated. DO NOT EDIT.
1224
1225java_sdk_library_import {
1226 name: "mysdk_myjavalib@current",
1227 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001228 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001229 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001230 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001231 public: {
1232 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001233 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001234 current_api: "sdk_library/public/myjavalib.txt",
1235 removed_api: "sdk_library/public/myjavalib-removed.txt",
1236 sdk_version: "current",
1237 },
1238 system: {
1239 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001240 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001241 current_api: "sdk_library/system/myjavalib.txt",
1242 removed_api: "sdk_library/system/myjavalib-removed.txt",
1243 sdk_version: "system_current",
1244 },
1245}
1246
1247java_sdk_library_import {
1248 name: "myjavalib",
1249 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001250 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001251 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001252 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001253 public: {
1254 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001255 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001256 current_api: "sdk_library/public/myjavalib.txt",
1257 removed_api: "sdk_library/public/myjavalib-removed.txt",
1258 sdk_version: "current",
1259 },
1260 system: {
1261 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001262 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001263 current_api: "sdk_library/system/myjavalib.txt",
1264 removed_api: "sdk_library/system/myjavalib-removed.txt",
1265 sdk_version: "system_current",
1266 },
1267}
1268
1269sdk_snapshot {
1270 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001271 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001272 java_sdk_libs: ["mysdk_myjavalib@current"],
1273}
1274`),
1275 checkAllCopyRules(`
1276.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1277.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001278.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001279.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1280.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 +01001281.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 +01001282`),
1283 checkMergeZips(
1284 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1285 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1286 ),
1287 )
1288}
Paul Duffin8f265b92020-04-28 14:13:56 +01001289
1290func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1291 result := testSdkWithJava(t, `
1292 sdk {
1293 name: "mysdk",
1294 java_sdk_libs: ["myjavalib"],
1295 }
1296
1297 java_sdk_library {
1298 name: "myjavalib",
1299 apex_available: ["//apex_available:anyapex"],
1300 srcs: ["Test.java"],
1301 sdk_version: "current",
1302 public: {
1303 enabled: true,
1304 },
1305 system: {
1306 enabled: true,
1307 },
1308 module_lib: {
1309 enabled: true,
1310 },
1311 }
1312 `)
1313
1314 result.CheckSnapshot("mysdk", "",
1315 checkAndroidBpContents(`
1316// This is auto-generated. DO NOT EDIT.
1317
1318java_sdk_library_import {
1319 name: "mysdk_myjavalib@current",
1320 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001321 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001322 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001323 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001324 public: {
1325 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001326 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001327 current_api: "sdk_library/public/myjavalib.txt",
1328 removed_api: "sdk_library/public/myjavalib-removed.txt",
1329 sdk_version: "current",
1330 },
1331 system: {
1332 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001333 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001334 current_api: "sdk_library/system/myjavalib.txt",
1335 removed_api: "sdk_library/system/myjavalib-removed.txt",
1336 sdk_version: "system_current",
1337 },
1338 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001339 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001340 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001341 current_api: "sdk_library/module-lib/myjavalib.txt",
1342 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001343 sdk_version: "module_current",
1344 },
1345}
1346
1347java_sdk_library_import {
1348 name: "myjavalib",
1349 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001350 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001351 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001352 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001353 public: {
1354 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001355 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001356 current_api: "sdk_library/public/myjavalib.txt",
1357 removed_api: "sdk_library/public/myjavalib-removed.txt",
1358 sdk_version: "current",
1359 },
1360 system: {
1361 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001362 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001363 current_api: "sdk_library/system/myjavalib.txt",
1364 removed_api: "sdk_library/system/myjavalib-removed.txt",
1365 sdk_version: "system_current",
1366 },
1367 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001368 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001369 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001370 current_api: "sdk_library/module-lib/myjavalib.txt",
1371 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001372 sdk_version: "module_current",
1373 },
1374}
1375
1376sdk_snapshot {
1377 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001378 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001379 java_sdk_libs: ["mysdk_myjavalib@current"],
1380}
1381`),
1382 checkAllCopyRules(`
1383.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1384.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001385.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001386.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1387.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 +01001388.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 +01001389.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 +01001390.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1391.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 +01001392`),
1393 checkMergeZips(
1394 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1395 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001396 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001397 ),
1398 )
1399}
Paul Duffinf7a64332020-05-13 16:54:55 +01001400
Paul Duffin0c5bae52020-06-02 13:00:08 +01001401func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1402 result := testSdkWithJava(t, `
1403 sdk {
1404 name: "mysdk",
1405 java_sdk_libs: ["myjavalib"],
1406 }
1407
1408 java_sdk_library {
1409 name: "myjavalib",
1410 apex_available: ["//apex_available:anyapex"],
1411 srcs: ["Test.java"],
1412 sdk_version: "current",
1413 public: {
1414 enabled: true,
1415 },
1416 system_server: {
1417 enabled: true,
1418 },
1419 }
1420 `)
1421
1422 result.CheckSnapshot("mysdk", "",
1423 checkAndroidBpContents(`
1424// This is auto-generated. DO NOT EDIT.
1425
1426java_sdk_library_import {
1427 name: "mysdk_myjavalib@current",
1428 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001429 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001430 apex_available: ["//apex_available:anyapex"],
1431 shared_library: true,
1432 public: {
1433 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001434 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001435 current_api: "sdk_library/public/myjavalib.txt",
1436 removed_api: "sdk_library/public/myjavalib-removed.txt",
1437 sdk_version: "current",
1438 },
1439 system_server: {
1440 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001441 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001442 current_api: "sdk_library/system-server/myjavalib.txt",
1443 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1444 sdk_version: "system_server_current",
1445 },
1446}
1447
1448java_sdk_library_import {
1449 name: "myjavalib",
1450 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001451 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001452 apex_available: ["//apex_available:anyapex"],
1453 shared_library: true,
1454 public: {
1455 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001456 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001457 current_api: "sdk_library/public/myjavalib.txt",
1458 removed_api: "sdk_library/public/myjavalib-removed.txt",
1459 sdk_version: "current",
1460 },
1461 system_server: {
1462 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001463 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001464 current_api: "sdk_library/system-server/myjavalib.txt",
1465 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1466 sdk_version: "system_server_current",
1467 },
1468}
1469
1470sdk_snapshot {
1471 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001472 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001473 java_sdk_libs: ["mysdk_myjavalib@current"],
1474}
1475`),
1476 checkAllCopyRules(`
1477.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1478.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1479.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1480.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1481.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1482.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1483`),
1484 checkMergeZips(
1485 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1486 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1487 ),
1488 )
1489}
1490
Paul Duffinf7a64332020-05-13 16:54:55 +01001491func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1492 result := testSdkWithJava(t, `
1493 sdk {
1494 name: "mysdk",
1495 java_sdk_libs: ["myjavalib"],
1496 }
1497
1498 java_sdk_library {
1499 name: "myjavalib",
1500 apex_available: ["//apex_available:anyapex"],
1501 srcs: ["Test.java"],
1502 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001503 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001504 public: {
1505 enabled: true,
1506 },
1507 }
1508 `)
1509
1510 result.CheckSnapshot("mysdk", "",
1511 checkAndroidBpContents(`
1512// This is auto-generated. DO NOT EDIT.
1513
1514java_sdk_library_import {
1515 name: "mysdk_myjavalib@current",
1516 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001517 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001518 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001519 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001520 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001521 public: {
1522 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001523 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001524 current_api: "sdk_library/public/myjavalib.txt",
1525 removed_api: "sdk_library/public/myjavalib-removed.txt",
1526 sdk_version: "current",
1527 },
1528}
1529
1530java_sdk_library_import {
1531 name: "myjavalib",
1532 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001533 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001534 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001535 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001536 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001537 public: {
1538 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001539 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001540 current_api: "sdk_library/public/myjavalib.txt",
1541 removed_api: "sdk_library/public/myjavalib-removed.txt",
1542 sdk_version: "current",
1543 },
1544}
1545
1546sdk_snapshot {
1547 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001548 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001549 java_sdk_libs: ["mysdk_myjavalib@current"],
1550}
1551`),
1552 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001553.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1554.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1555.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001556`),
1557 checkMergeZips(
1558 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1559 ),
1560 )
1561}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001562
1563func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1564 result := testSdkWithJava(t, `
1565 sdk {
1566 name: "mysdk",
1567 java_sdk_libs: ["myjavalib"],
1568 }
1569
1570 java_sdk_library {
1571 name: "myjavalib",
1572 srcs: ["Test.java"],
1573 sdk_version: "current",
1574 public: {
1575 enabled: true,
1576 },
1577 doctag_files: ["docs/known_doctags"],
1578 }
1579
1580 filegroup {
1581 name: "mygroup",
1582 srcs: [":myjavalib{.doctags}"],
1583 }
1584 `)
1585
1586 result.CheckSnapshot("mysdk", "",
1587 checkAndroidBpContents(`
1588// This is auto-generated. DO NOT EDIT.
1589
1590java_sdk_library_import {
1591 name: "mysdk_myjavalib@current",
1592 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001593 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001594 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001595 shared_library: true,
1596 doctag_files: ["doctags/docs/known_doctags"],
1597 public: {
1598 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001599 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001600 current_api: "sdk_library/public/myjavalib.txt",
1601 removed_api: "sdk_library/public/myjavalib-removed.txt",
1602 sdk_version: "current",
1603 },
1604}
1605
1606java_sdk_library_import {
1607 name: "myjavalib",
1608 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001609 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001610 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001611 shared_library: true,
1612 doctag_files: ["doctags/docs/known_doctags"],
1613 public: {
1614 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001615 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001616 current_api: "sdk_library/public/myjavalib.txt",
1617 removed_api: "sdk_library/public/myjavalib-removed.txt",
1618 sdk_version: "current",
1619 },
1620}
1621
1622sdk_snapshot {
1623 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001624 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001625 java_sdk_libs: ["mysdk_myjavalib@current"],
1626}
1627`),
1628 checkAllCopyRules(`
1629.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1630.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1631.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1632docs/known_doctags -> doctags/docs/known_doctags
1633`),
1634 )
1635}