blob: 731e528bf97a910b94522106beef629ad193a2cb [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,
Paul Duffind835daa2019-11-30 17:49:09 +000047 }
Paul Duffindd46f712020-02-10 13:37:10 +000048
49 // for java_sdk_library tests
50 bp = `
51java_system_modules_import {
52 name: "core-current-stubs-system-modules",
53}
54java_system_modules_import {
Pete Gillin84c38072020-07-09 18:03:41 +010055 name: "stable-core-platform-api-stubs-system-modules",
Paul Duffindd46f712020-02-10 13:37:10 +000056}
57java_import {
Pete Gillin84c38072020-07-09 18:03:41 +010058 name: "stable.core.platform.api.stubs",
Paul Duffindd46f712020-02-10 13:37:10 +000059}
Paul Duffin260bd312020-04-28 14:15:17 +010060java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000061 name: "android_stubs_current",
62}
Paul Duffin260bd312020-04-28 14:15:17 +010063java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000064 name: "android_system_stubs_current",
65}
Paul Duffin260bd312020-04-28 14:15:17 +010066java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000067 name: "android_test_stubs_current",
68}
69java_import {
Paul Duffin8f265b92020-04-28 14:13:56 +010070 name: "android_module_lib_stubs_current",
71}
72java_import {
Paul Duffin0c5bae52020-06-02 13:00:08 +010073 name: "android_system_server_stubs_current",
74}
75java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000076 name: "core-lambda-stubs",
77 sdk_version: "none",
78}
79java_import {
80 name: "ext",
81 sdk_version: "none",
82}
83java_import {
84 name: "framework",
85 sdk_version: "none",
86}
87` + bp
88
Paul Duffind835daa2019-11-30 17:49:09 +000089 return testSdkWithFs(t, bp, fs)
90}
91
Paul Duffina80fdec2019-12-03 15:25:00 +000092// Contains tests for SDK members provided by the java package.
93
Paul Duffincee7e662020-07-09 17:32:57 +010094func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
95 result := testSdkWithJava(t, `
96 sdk {
97 name: "mysdk",
98 java_header_libs: ["sdkmember"],
99 }
100
101 java_library {
102 name: "sdkmember",
103 srcs: ["Test.java"],
104 system_modules: "none",
105 sdk_version: "none",
106 }
107
108 java_import {
109 name: "sdkmember",
110 prefer: true,
111 jars: ["prebuilt.jar"],
112 }
113 `)
114
115 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
116 java.CheckModuleDependencies(t, result.ctx, "mysdk", "android_common", []string{"sdkmember"})
117
118 result.CheckSnapshot("mysdk", "",
119 checkAndroidBpContents(`// This is auto-generated. DO NOT EDIT.
120
121java_import {
122 name: "mysdk_sdkmember@current",
123 sdk_member_name: "sdkmember",
Paul Duffind99d9972020-09-29 16:00:55 +0100124 visibility: ["//visibility:public"],
Paul Duffincee7e662020-07-09 17:32:57 +0100125 jars: ["java/sdkmember.jar"],
126}
127
128java_import {
129 name: "sdkmember",
130 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100131 visibility: ["//visibility:public"],
Paul Duffincee7e662020-07-09 17:32:57 +0100132 jars: ["java/sdkmember.jar"],
133}
134
135sdk_snapshot {
136 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100137 visibility: ["//visibility:public"],
Paul Duffincee7e662020-07-09 17:32:57 +0100138 java_header_libs: ["mysdk_sdkmember@current"],
139}
140`))
141}
142
Paul Duffina80fdec2019-12-03 15:25:00 +0000143func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000144 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000145 sdk {
146 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +0900147 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000148 }
149
150 sdk_snapshot {
151 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +0000152 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000153 }
154
155 sdk_snapshot {
156 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +0000157 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000158 }
159
Jiyong Park0f80c182020-01-31 02:49:53 +0900160 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000161 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900162 srcs: ["Test.java"],
163 system_modules: "none",
164 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000165 host_supported: true,
166 }
167
168 java_import {
169 name: "sdkmember_mysdk_1",
170 sdk_member_name: "sdkmember",
171 host_supported: true,
172 }
173
174 java_import {
175 name: "sdkmember_mysdk_2",
176 sdk_member_name: "sdkmember",
177 host_supported: true,
178 }
179
180 java_library {
181 name: "myjavalib",
182 srcs: ["Test.java"],
183 libs: ["sdkmember"],
184 system_modules: "none",
185 sdk_version: "none",
186 compile_dex: true,
187 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000188 apex_available: [
189 "myapex",
190 "myapex2",
191 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000192 }
193
194 apex {
195 name: "myapex",
196 java_libs: ["myjavalib"],
197 uses_sdks: ["mysdk@1"],
198 key: "myapex.key",
199 certificate: ":myapex.cert",
200 }
201
202 apex {
203 name: "myapex2",
204 java_libs: ["myjavalib"],
205 uses_sdks: ["mysdk@2"],
206 key: "myapex.key",
207 certificate: ":myapex.cert",
208 }
209 `)
210
Paul Duffina37eca22020-07-22 13:00:54 +0100211 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
212 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000213
Colin Crossaede88c2020-08-11 12:17:01 -0700214 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
215 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000216
217 // Depending on the uses_sdks value, different libs are linked
218 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
219 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
220}
221
Paul Duffina0dbf432019-12-05 11:25:53 +0000222func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
223 result := testSdkWithJava(t, `
224 sdk {
225 name: "mysdk",
226 java_header_libs: ["myjavalib"],
227 }
228
229 java_library {
230 name: "myjavalib",
231 srcs: ["Test.java"],
232 aidl: {
233 export_include_dirs: ["aidl"],
234 },
235 system_modules: "none",
236 sdk_version: "none",
237 compile_dex: true,
238 host_supported: true,
239 }
240 `)
241
Paul Duffin1356d8c2020-02-25 19:26:33 +0000242 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000243 checkAndroidBpContents(`
244// This is auto-generated. DO NOT EDIT.
245
246java_import {
247 name: "mysdk_myjavalib@current",
248 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100249 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000250 jars: ["java/myjavalib.jar"],
251}
252
253java_import {
254 name: "myjavalib",
255 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100256 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000257 jars: ["java/myjavalib.jar"],
258}
259
260sdk_snapshot {
261 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100262 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000263 java_header_libs: ["mysdk_myjavalib@current"],
264}
265
266`),
267 checkAllCopyRules(`
268.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
269aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
270`),
271 )
272}
273
274func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina0dbf432019-12-05 11:25:53 +0000275 result := testSdkWithJava(t, `
276 sdk {
277 name: "mysdk",
278 device_supported: false,
279 host_supported: true,
280 java_header_libs: ["myjavalib"],
281 }
282
283 java_library {
284 name: "myjavalib",
285 device_supported: false,
286 host_supported: true,
287 srcs: ["Test.java"],
288 aidl: {
289 export_include_dirs: ["aidl"],
290 },
291 system_modules: "none",
292 sdk_version: "none",
293 compile_dex: true,
294 }
295 `)
296
Paul Duffin1356d8c2020-02-25 19:26:33 +0000297 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000298 checkAndroidBpContents(`
299// This is auto-generated. DO NOT EDIT.
300
301java_import {
302 name: "mysdk_myjavalib@current",
303 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100304 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000305 device_supported: false,
306 host_supported: true,
307 jars: ["java/myjavalib.jar"],
308}
309
310java_import {
311 name: "myjavalib",
312 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100313 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000314 device_supported: false,
315 host_supported: true,
316 jars: ["java/myjavalib.jar"],
317}
318
319sdk_snapshot {
320 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100321 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000322 device_supported: false,
323 host_supported: true,
324 java_header_libs: ["mysdk_myjavalib@current"],
325}
326`),
327 checkAllCopyRules(`
328.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
329aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
330`),
331 )
332}
333
Paul Duffina04c1072020-03-02 10:16:35 +0000334func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina04c1072020-03-02 10:16:35 +0000335 result := testSdkWithJava(t, `
336 sdk {
337 name: "mysdk",
338 host_supported: true,
339 java_header_libs: ["myjavalib"],
340 }
341
342 java_library {
343 name: "myjavalib",
344 host_supported: true,
345 srcs: ["Test.java"],
346 system_modules: "none",
347 sdk_version: "none",
348 compile_dex: true,
349 }
350 `)
351
352 result.CheckSnapshot("mysdk", "",
353 checkAndroidBpContents(`
354// This is auto-generated. DO NOT EDIT.
355
356java_import {
357 name: "mysdk_myjavalib@current",
358 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100359 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000360 host_supported: true,
361 target: {
362 android: {
363 jars: ["java/android/myjavalib.jar"],
364 },
365 linux_glibc: {
366 jars: ["java/linux_glibc/myjavalib.jar"],
367 },
368 },
369}
370
371java_import {
372 name: "myjavalib",
373 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100374 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000375 host_supported: true,
376 target: {
377 android: {
378 jars: ["java/android/myjavalib.jar"],
379 },
380 linux_glibc: {
381 jars: ["java/linux_glibc/myjavalib.jar"],
382 },
383 },
384}
385
386sdk_snapshot {
387 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100388 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000389 host_supported: true,
390 java_header_libs: ["mysdk_myjavalib@current"],
391}
392`),
393 checkAllCopyRules(`
394.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
395.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
396`),
397 )
398}
399
Paul Duffina0dbf432019-12-05 11:25:53 +0000400func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000401 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000402 module_exports {
403 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000404 java_libs: ["myjavalib"],
405 }
406
407 java_library {
408 name: "myjavalib",
409 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100410 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000411 aidl: {
412 export_include_dirs: ["aidl"],
413 },
414 system_modules: "none",
415 sdk_version: "none",
416 compile_dex: true,
417 host_supported: true,
418 }
419 `)
420
Paul Duffin1356d8c2020-02-25 19:26:33 +0000421 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000422 checkAndroidBpContents(`
423// This is auto-generated. DO NOT EDIT.
424
425java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000426 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000427 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100428 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000429 jars: ["java/myjavalib.jar"],
430}
431
432java_import {
433 name: "myjavalib",
434 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100435 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000436 jars: ["java/myjavalib.jar"],
437}
438
Paul Duffine6029182019-12-16 17:43:48 +0000439module_exports_snapshot {
440 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100441 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000442 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000443}
444
445`),
446 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100447.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000448aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
449`),
450 )
451}
452
Paul Duffina0dbf432019-12-05 11:25:53 +0000453func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000454 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000455 module_exports {
456 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000457 device_supported: false,
458 host_supported: true,
459 java_libs: ["myjavalib"],
460 }
461
462 java_library {
463 name: "myjavalib",
464 device_supported: false,
465 host_supported: true,
466 srcs: ["Test.java"],
467 aidl: {
468 export_include_dirs: ["aidl"],
469 },
470 system_modules: "none",
471 sdk_version: "none",
472 compile_dex: true,
473 }
474 `)
475
Paul Duffin1356d8c2020-02-25 19:26:33 +0000476 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000477 checkAndroidBpContents(`
478// This is auto-generated. DO NOT EDIT.
479
480java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000481 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000482 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100483 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000484 device_supported: false,
485 host_supported: true,
486 jars: ["java/myjavalib.jar"],
487}
488
489java_import {
490 name: "myjavalib",
491 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100492 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000493 device_supported: false,
494 host_supported: true,
495 jars: ["java/myjavalib.jar"],
496}
497
Paul Duffine6029182019-12-16 17:43:48 +0000498module_exports_snapshot {
499 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100500 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000501 device_supported: false,
502 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000503 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000504}
505`),
506 checkAllCopyRules(`
507.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
508aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
509`),
510 )
511}
512
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000513func TestSnapshotWithJavaTest(t *testing.T) {
514 result := testSdkWithJava(t, `
515 module_exports {
516 name: "myexports",
517 java_tests: ["myjavatests"],
518 }
519
520 java_test {
521 name: "myjavatests",
522 srcs: ["Test.java"],
523 system_modules: "none",
524 sdk_version: "none",
525 compile_dex: true,
526 host_supported: true,
527 }
528 `)
529
Paul Duffin1356d8c2020-02-25 19:26:33 +0000530 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000531 checkAndroidBpContents(`
532// This is auto-generated. DO NOT EDIT.
533
534java_test_import {
535 name: "myexports_myjavatests@current",
536 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100537 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000538 jars: ["java/myjavatests.jar"],
539 test_config: "java/myjavatests-AndroidTest.xml",
540}
541
542java_test_import {
543 name: "myjavatests",
544 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100545 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000546 jars: ["java/myjavatests.jar"],
547 test_config: "java/myjavatests-AndroidTest.xml",
548}
549
550module_exports_snapshot {
551 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100552 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000553 java_tests: ["myexports_myjavatests@current"],
554}
555`),
556 checkAllCopyRules(`
557.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
558.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
559`),
560 )
561}
562
563func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000564 result := testSdkWithJava(t, `
565 module_exports {
566 name: "myexports",
567 device_supported: false,
568 host_supported: true,
569 java_tests: ["myjavatests"],
570 }
571
572 java_test {
573 name: "myjavatests",
574 device_supported: false,
575 host_supported: true,
576 srcs: ["Test.java"],
577 system_modules: "none",
578 sdk_version: "none",
579 compile_dex: true,
580 }
581 `)
582
Paul Duffin1356d8c2020-02-25 19:26:33 +0000583 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000584 checkAndroidBpContents(`
585// This is auto-generated. DO NOT EDIT.
586
587java_test_import {
588 name: "myexports_myjavatests@current",
589 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100590 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000591 device_supported: false,
592 host_supported: true,
593 jars: ["java/myjavatests.jar"],
594 test_config: "java/myjavatests-AndroidTest.xml",
595}
596
597java_test_import {
598 name: "myjavatests",
599 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100600 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000601 device_supported: false,
602 host_supported: true,
603 jars: ["java/myjavatests.jar"],
604 test_config: "java/myjavatests-AndroidTest.xml",
605}
606
607module_exports_snapshot {
608 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100609 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000610 device_supported: false,
611 host_supported: true,
612 java_tests: ["myexports_myjavatests@current"],
613}
614`),
615 checkAllCopyRules(`
616.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
617.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
618`),
619 )
620}
621
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000622func TestSnapshotWithJavaSystemModules(t *testing.T) {
623 result := testSdkWithJava(t, `
624 sdk {
625 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000626 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000627 java_system_modules: ["my-system-modules"],
628 }
629
630 java_system_modules {
631 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000632 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000633 }
634
635 java_library {
636 name: "system-module",
637 srcs: ["Test.java"],
638 sdk_version: "none",
639 system_modules: "none",
640 }
Paul Duffin72910952020-01-20 18:16:30 +0000641
642 java_library {
643 name: "exported-system-module",
644 srcs: ["Test.java"],
645 sdk_version: "none",
646 system_modules: "none",
647 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000648 `)
649
Paul Duffin1356d8c2020-02-25 19:26:33 +0000650 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000651 checkAndroidBpContents(`
652// This is auto-generated. DO NOT EDIT.
653
654java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000655 name: "mysdk_exported-system-module@current",
656 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100657 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000658 jars: ["java/exported-system-module.jar"],
659}
660
661java_import {
662 name: "exported-system-module",
663 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100664 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000665 jars: ["java/exported-system-module.jar"],
666}
667
668java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000669 name: "mysdk_system-module@current",
670 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000671 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000672 jars: ["java/system-module.jar"],
673}
674
675java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000676 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000677 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000678 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000679 jars: ["java/system-module.jar"],
680}
681
682java_system_modules_import {
683 name: "mysdk_my-system-modules@current",
684 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100685 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000686 libs: [
687 "mysdk_system-module@current",
688 "mysdk_exported-system-module@current",
689 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000690}
691
692java_system_modules_import {
693 name: "my-system-modules",
694 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100695 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000696 libs: [
697 "mysdk_system-module",
698 "exported-system-module",
699 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000700}
701
702sdk_snapshot {
703 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100704 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000705 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000706 java_system_modules: ["mysdk_my-system-modules@current"],
707}
708`),
Paul Duffin72910952020-01-20 18:16:30 +0000709 checkAllCopyRules(`
710.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
711.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
712`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000713 )
714}
715
716func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000717 result := testSdkWithJava(t, `
718 sdk {
719 name: "mysdk",
720 device_supported: false,
721 host_supported: true,
722 java_system_modules: ["my-system-modules"],
723 }
724
725 java_system_modules {
726 name: "my-system-modules",
727 device_supported: false,
728 host_supported: true,
729 libs: ["system-module"],
730 }
731
732 java_library {
733 name: "system-module",
734 device_supported: false,
735 host_supported: true,
736 srcs: ["Test.java"],
737 sdk_version: "none",
738 system_modules: "none",
739 }
740 `)
741
Paul Duffin1356d8c2020-02-25 19:26:33 +0000742 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000743 checkAndroidBpContents(`
744// This is auto-generated. DO NOT EDIT.
745
746java_import {
747 name: "mysdk_system-module@current",
748 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000749 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000750 device_supported: false,
751 host_supported: true,
752 jars: ["java/system-module.jar"],
753}
754
755java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000756 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000757 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000758 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000759 device_supported: false,
760 host_supported: true,
761 jars: ["java/system-module.jar"],
762}
763
764java_system_modules_import {
765 name: "mysdk_my-system-modules@current",
766 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100767 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000768 device_supported: false,
769 host_supported: true,
770 libs: ["mysdk_system-module@current"],
771}
772
773java_system_modules_import {
774 name: "my-system-modules",
775 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100776 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000777 device_supported: false,
778 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000779 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000780}
781
782sdk_snapshot {
783 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100784 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000785 device_supported: false,
786 host_supported: true,
787 java_system_modules: ["mysdk_my-system-modules@current"],
788}
789`),
790 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
791 )
792}
Paul Duffin865171e2020-03-02 18:38:15 +0000793
794func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000795 result := testSdkWithJava(t, `
796 module_exports {
797 name: "myexports",
798 host_supported: true,
799 java_libs: ["myjavalib"],
800 target: {
801 android: {
802 java_header_libs: ["androidjavalib"],
803 },
804 host: {
805 java_header_libs: ["hostjavalib"],
806 },
807 },
808 }
809
810 java_library {
811 name: "myjavalib",
812 host_supported: true,
813 srcs: ["Test.java"],
814 system_modules: "none",
815 sdk_version: "none",
816 }
817
818 java_library {
819 name: "androidjavalib",
820 srcs: ["Test.java"],
821 system_modules: "none",
822 sdk_version: "none",
823 }
824
825 java_library_host {
826 name: "hostjavalib",
827 srcs: ["Test.java"],
828 }
829 `)
830
831 result.CheckSnapshot("myexports", "",
832 checkAndroidBpContents(`
833// This is auto-generated. DO NOT EDIT.
834
835java_import {
836 name: "myexports_hostjavalib@current",
837 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100838 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000839 device_supported: false,
840 host_supported: true,
841 jars: ["java/hostjavalib.jar"],
842}
843
844java_import {
845 name: "hostjavalib",
846 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100847 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000848 device_supported: false,
849 host_supported: true,
850 jars: ["java/hostjavalib.jar"],
851}
852
853java_import {
854 name: "myexports_androidjavalib@current",
855 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100856 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000857 jars: ["java/androidjavalib.jar"],
858}
859
860java_import {
861 name: "androidjavalib",
862 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100863 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000864 jars: ["java/androidjavalib.jar"],
865}
866
867java_import {
868 name: "myexports_myjavalib@current",
869 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100870 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000871 host_supported: true,
872 target: {
873 android: {
874 jars: ["java/android/myjavalib.jar"],
875 },
876 linux_glibc: {
877 jars: ["java/linux_glibc/myjavalib.jar"],
878 },
879 },
880}
881
882java_import {
883 name: "myjavalib",
884 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100885 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000886 host_supported: true,
887 target: {
888 android: {
889 jars: ["java/android/myjavalib.jar"],
890 },
891 linux_glibc: {
892 jars: ["java/linux_glibc/myjavalib.jar"],
893 },
894 },
895}
896
897module_exports_snapshot {
898 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100899 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000900 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000901 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000902 target: {
903 android: {
904 java_header_libs: ["myexports_androidjavalib@current"],
905 },
906 linux_glibc: {
907 java_header_libs: ["myexports_hostjavalib@current"],
908 },
909 },
Paul Duffin865171e2020-03-02 18:38:15 +0000910}
911`),
912 checkAllCopyRules(`
913.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
914.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
915.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
916.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
917`),
918 )
919}
Paul Duffindd46f712020-02-10 13:37:10 +0000920
921func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
922 result := testSdkWithJava(t, `
923 sdk {
924 name: "mysdk",
925 java_sdk_libs: ["myjavalib"],
926 }
927
928 java_sdk_library {
929 name: "myjavalib",
930 apex_available: ["//apex_available:anyapex"],
931 srcs: ["Test.java"],
932 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100933 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100934 stubs_library_visibility: ["//other"],
935 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +0000936 }
937 `)
938
939 result.CheckSnapshot("mysdk", "",
940 checkAndroidBpContents(`
941// This is auto-generated. DO NOT EDIT.
942
943java_sdk_library_import {
944 name: "mysdk_myjavalib@current",
945 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100946 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000947 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100948 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +0000949 public: {
950 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +0000951 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100952 current_api: "sdk_library/public/myjavalib.txt",
953 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000954 sdk_version: "current",
955 },
956 system: {
957 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +0000958 stub_srcs: ["sdk_library/system/myjavalib_stub_sources/**/*.java"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100959 current_api: "sdk_library/system/myjavalib.txt",
960 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000961 sdk_version: "system_current",
962 },
963 test: {
964 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +0000965 stub_srcs: ["sdk_library/test/myjavalib_stub_sources/**/*.java"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100966 current_api: "sdk_library/test/myjavalib.txt",
967 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000968 sdk_version: "test_current",
969 },
970}
971
972java_sdk_library_import {
973 name: "myjavalib",
974 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100975 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000976 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100977 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +0000978 public: {
979 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +0000980 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100981 current_api: "sdk_library/public/myjavalib.txt",
982 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000983 sdk_version: "current",
984 },
985 system: {
986 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +0000987 stub_srcs: ["sdk_library/system/myjavalib_stub_sources/**/*.java"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100988 current_api: "sdk_library/system/myjavalib.txt",
989 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000990 sdk_version: "system_current",
991 },
992 test: {
993 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +0000994 stub_srcs: ["sdk_library/test/myjavalib_stub_sources/**/*.java"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100995 current_api: "sdk_library/test/myjavalib.txt",
996 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000997 sdk_version: "test_current",
998 },
999}
1000
1001sdk_snapshot {
1002 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001003 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001004 java_sdk_libs: ["mysdk_myjavalib@current"],
1005}
1006`),
1007 checkAllCopyRules(`
1008.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001009.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001010.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001011.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001012.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 +01001013.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 +00001014.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001015.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 +01001016.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 +00001017`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001018 checkMergeZips(
1019 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1020 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1021 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001022 )
1023}
Paul Duffin3375e352020-04-28 10:44:03 +01001024
Paul Duffin780c5f42020-05-12 15:52:55 +01001025func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1026 result := testSdkWithJava(t, `
1027 sdk {
1028 name: "mysdk",
1029 java_sdk_libs: ["myjavalib"],
1030 }
1031
1032 java_sdk_library {
1033 name: "myjavalib",
1034 srcs: ["Test.java"],
1035 sdk_version: "none",
1036 system_modules: "none",
1037 }
1038 `)
1039
1040 result.CheckSnapshot("mysdk", "",
1041 checkAndroidBpContents(`
1042// This is auto-generated. DO NOT EDIT.
1043
1044java_sdk_library_import {
1045 name: "mysdk_myjavalib@current",
1046 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001047 visibility: ["//visibility:public"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001048 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001049 public: {
1050 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001051 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001052 current_api: "sdk_library/public/myjavalib.txt",
1053 removed_api: "sdk_library/public/myjavalib-removed.txt",
1054 sdk_version: "none",
1055 },
1056}
1057
1058java_sdk_library_import {
1059 name: "myjavalib",
1060 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001061 visibility: ["//visibility:public"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001062 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001063 public: {
1064 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001065 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001066 current_api: "sdk_library/public/myjavalib.txt",
1067 removed_api: "sdk_library/public/myjavalib-removed.txt",
1068 sdk_version: "none",
1069 },
1070}
1071
1072sdk_snapshot {
1073 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001074 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001075 java_sdk_libs: ["mysdk_myjavalib@current"],
1076}
1077`),
1078 checkAllCopyRules(`
1079.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1080.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001081.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001082`),
1083 checkMergeZips(
1084 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1085 ),
1086 )
1087}
1088
Paul Duffin87a05a32020-05-12 11:50:28 +01001089func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1090 result := testSdkWithJava(t, `
1091 sdk {
1092 name: "mysdk",
1093 java_sdk_libs: ["myjavalib"],
1094 }
1095
1096 java_sdk_library {
1097 name: "myjavalib",
1098 srcs: ["Test.java"],
1099 sdk_version: "module_current",
1100 public: {
1101 enabled: true,
1102 sdk_version: "module_current",
1103 },
1104 }
1105 `)
1106
1107 result.CheckSnapshot("mysdk", "",
1108 checkAndroidBpContents(`
1109// This is auto-generated. DO NOT EDIT.
1110
1111java_sdk_library_import {
1112 name: "mysdk_myjavalib@current",
1113 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001114 visibility: ["//visibility:public"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001115 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001116 public: {
1117 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001118 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001119 current_api: "sdk_library/public/myjavalib.txt",
1120 removed_api: "sdk_library/public/myjavalib-removed.txt",
1121 sdk_version: "module_current",
1122 },
1123}
1124
1125java_sdk_library_import {
1126 name: "myjavalib",
1127 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001128 visibility: ["//visibility:public"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001129 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001130 public: {
1131 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001132 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001133 current_api: "sdk_library/public/myjavalib.txt",
1134 removed_api: "sdk_library/public/myjavalib-removed.txt",
1135 sdk_version: "module_current",
1136 },
1137}
1138
1139sdk_snapshot {
1140 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001141 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001142 java_sdk_libs: ["mysdk_myjavalib@current"],
1143}
1144`),
1145 checkAllCopyRules(`
1146.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1147.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001148.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001149`),
1150 checkMergeZips(
1151 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1152 ),
1153 )
1154}
1155
1156func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001157 result := testSdkWithJava(t, `
1158 sdk {
1159 name: "mysdk",
1160 java_sdk_libs: ["myjavalib"],
1161 }
1162
1163 java_sdk_library {
1164 name: "myjavalib",
1165 apex_available: ["//apex_available:anyapex"],
1166 srcs: ["Test.java"],
1167 sdk_version: "current",
1168 public: {
1169 enabled: true,
1170 },
1171 system: {
1172 enabled: true,
1173 },
1174 }
1175 `)
1176
1177 result.CheckSnapshot("mysdk", "",
1178 checkAndroidBpContents(`
1179// This is auto-generated. DO NOT EDIT.
1180
1181java_sdk_library_import {
1182 name: "mysdk_myjavalib@current",
1183 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001184 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001185 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001186 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001187 public: {
1188 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001189 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin3375e352020-04-28 10:44:03 +01001190 current_api: "sdk_library/public/myjavalib.txt",
1191 removed_api: "sdk_library/public/myjavalib-removed.txt",
1192 sdk_version: "current",
1193 },
1194 system: {
1195 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001196 stub_srcs: ["sdk_library/system/myjavalib_stub_sources/**/*.java"],
Paul Duffin3375e352020-04-28 10:44:03 +01001197 current_api: "sdk_library/system/myjavalib.txt",
1198 removed_api: "sdk_library/system/myjavalib-removed.txt",
1199 sdk_version: "system_current",
1200 },
1201}
1202
1203java_sdk_library_import {
1204 name: "myjavalib",
1205 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001206 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001207 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001208 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001209 public: {
1210 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001211 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin3375e352020-04-28 10:44:03 +01001212 current_api: "sdk_library/public/myjavalib.txt",
1213 removed_api: "sdk_library/public/myjavalib-removed.txt",
1214 sdk_version: "current",
1215 },
1216 system: {
1217 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001218 stub_srcs: ["sdk_library/system/myjavalib_stub_sources/**/*.java"],
Paul Duffin3375e352020-04-28 10:44:03 +01001219 current_api: "sdk_library/system/myjavalib.txt",
1220 removed_api: "sdk_library/system/myjavalib-removed.txt",
1221 sdk_version: "system_current",
1222 },
1223}
1224
1225sdk_snapshot {
1226 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001227 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001228 java_sdk_libs: ["mysdk_myjavalib@current"],
1229}
1230`),
1231 checkAllCopyRules(`
1232.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1233.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001234.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001235.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1236.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 +01001237.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 +01001238`),
1239 checkMergeZips(
1240 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1241 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1242 ),
1243 )
1244}
Paul Duffin8f265b92020-04-28 14:13:56 +01001245
1246func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1247 result := testSdkWithJava(t, `
1248 sdk {
1249 name: "mysdk",
1250 java_sdk_libs: ["myjavalib"],
1251 }
1252
1253 java_sdk_library {
1254 name: "myjavalib",
1255 apex_available: ["//apex_available:anyapex"],
1256 srcs: ["Test.java"],
1257 sdk_version: "current",
1258 public: {
1259 enabled: true,
1260 },
1261 system: {
1262 enabled: true,
1263 },
1264 module_lib: {
1265 enabled: true,
1266 },
1267 }
1268 `)
1269
1270 result.CheckSnapshot("mysdk", "",
1271 checkAndroidBpContents(`
1272// This is auto-generated. DO NOT EDIT.
1273
1274java_sdk_library_import {
1275 name: "mysdk_myjavalib@current",
1276 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001277 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001278 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001279 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001280 public: {
1281 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001282 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001283 current_api: "sdk_library/public/myjavalib.txt",
1284 removed_api: "sdk_library/public/myjavalib-removed.txt",
1285 sdk_version: "current",
1286 },
1287 system: {
1288 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001289 stub_srcs: ["sdk_library/system/myjavalib_stub_sources/**/*.java"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001290 current_api: "sdk_library/system/myjavalib.txt",
1291 removed_api: "sdk_library/system/myjavalib-removed.txt",
1292 sdk_version: "system_current",
1293 },
1294 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001295 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001296 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources/**/*.java"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001297 current_api: "sdk_library/module-lib/myjavalib.txt",
1298 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001299 sdk_version: "module_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 Duffin8f265b92020-04-28 14:13:56 +01001307 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001308 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001309 public: {
1310 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001311 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin8f265b92020-04-28 14:13:56 +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 Duffin7f979572020-11-09 15:55:27 +00001318 stub_srcs: ["sdk_library/system/myjavalib_stub_sources/**/*.java"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001319 current_api: "sdk_library/system/myjavalib.txt",
1320 removed_api: "sdk_library/system/myjavalib-removed.txt",
1321 sdk_version: "system_current",
1322 },
1323 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001324 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001325 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources/**/*.java"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001326 current_api: "sdk_library/module-lib/myjavalib.txt",
1327 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001328 sdk_version: "module_current",
1329 },
1330}
1331
1332sdk_snapshot {
1333 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001334 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001335 java_sdk_libs: ["mysdk_myjavalib@current"],
1336}
1337`),
1338 checkAllCopyRules(`
1339.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1340.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001341.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001342.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1343.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 +01001344.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 +01001345.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 +01001346.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1347.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 +01001348`),
1349 checkMergeZips(
1350 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1351 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001352 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001353 ),
1354 )
1355}
Paul Duffinf7a64332020-05-13 16:54:55 +01001356
Paul Duffin0c5bae52020-06-02 13:00:08 +01001357func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1358 result := testSdkWithJava(t, `
1359 sdk {
1360 name: "mysdk",
1361 java_sdk_libs: ["myjavalib"],
1362 }
1363
1364 java_sdk_library {
1365 name: "myjavalib",
1366 apex_available: ["//apex_available:anyapex"],
1367 srcs: ["Test.java"],
1368 sdk_version: "current",
1369 public: {
1370 enabled: true,
1371 },
1372 system_server: {
1373 enabled: true,
1374 },
1375 }
1376 `)
1377
1378 result.CheckSnapshot("mysdk", "",
1379 checkAndroidBpContents(`
1380// This is auto-generated. DO NOT EDIT.
1381
1382java_sdk_library_import {
1383 name: "mysdk_myjavalib@current",
1384 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001385 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001386 apex_available: ["//apex_available:anyapex"],
1387 shared_library: true,
1388 public: {
1389 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001390 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001391 current_api: "sdk_library/public/myjavalib.txt",
1392 removed_api: "sdk_library/public/myjavalib-removed.txt",
1393 sdk_version: "current",
1394 },
1395 system_server: {
1396 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001397 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources/**/*.java"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001398 current_api: "sdk_library/system-server/myjavalib.txt",
1399 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1400 sdk_version: "system_server_current",
1401 },
1402}
1403
1404java_sdk_library_import {
1405 name: "myjavalib",
1406 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001407 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001408 apex_available: ["//apex_available:anyapex"],
1409 shared_library: true,
1410 public: {
1411 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001412 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001413 current_api: "sdk_library/public/myjavalib.txt",
1414 removed_api: "sdk_library/public/myjavalib-removed.txt",
1415 sdk_version: "current",
1416 },
1417 system_server: {
1418 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001419 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources/**/*.java"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001420 current_api: "sdk_library/system-server/myjavalib.txt",
1421 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1422 sdk_version: "system_server_current",
1423 },
1424}
1425
1426sdk_snapshot {
1427 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001428 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001429 java_sdk_libs: ["mysdk_myjavalib@current"],
1430}
1431`),
1432 checkAllCopyRules(`
1433.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1434.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1435.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1436.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1437.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1438.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1439`),
1440 checkMergeZips(
1441 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1442 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1443 ),
1444 )
1445}
1446
Paul Duffinf7a64332020-05-13 16:54:55 +01001447func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1448 result := testSdkWithJava(t, `
1449 sdk {
1450 name: "mysdk",
1451 java_sdk_libs: ["myjavalib"],
1452 }
1453
1454 java_sdk_library {
1455 name: "myjavalib",
1456 apex_available: ["//apex_available:anyapex"],
1457 srcs: ["Test.java"],
1458 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001459 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001460 public: {
1461 enabled: true,
1462 },
1463 }
1464 `)
1465
1466 result.CheckSnapshot("mysdk", "",
1467 checkAndroidBpContents(`
1468// This is auto-generated. DO NOT EDIT.
1469
1470java_sdk_library_import {
1471 name: "mysdk_myjavalib@current",
1472 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001473 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001474 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001475 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001476 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001477 public: {
1478 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001479 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001480 current_api: "sdk_library/public/myjavalib.txt",
1481 removed_api: "sdk_library/public/myjavalib-removed.txt",
1482 sdk_version: "current",
1483 },
1484}
1485
1486java_sdk_library_import {
1487 name: "myjavalib",
1488 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001489 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001490 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001491 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001492 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001493 public: {
1494 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001495 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001496 current_api: "sdk_library/public/myjavalib.txt",
1497 removed_api: "sdk_library/public/myjavalib-removed.txt",
1498 sdk_version: "current",
1499 },
1500}
1501
1502sdk_snapshot {
1503 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001504 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001505 java_sdk_libs: ["mysdk_myjavalib@current"],
1506}
1507`),
1508 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001509.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1510.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1511.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001512`),
1513 checkMergeZips(
1514 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1515 ),
1516 )
1517}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001518
1519func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1520 result := testSdkWithJava(t, `
1521 sdk {
1522 name: "mysdk",
1523 java_sdk_libs: ["myjavalib"],
1524 }
1525
1526 java_sdk_library {
1527 name: "myjavalib",
1528 srcs: ["Test.java"],
1529 sdk_version: "current",
1530 public: {
1531 enabled: true,
1532 },
1533 doctag_files: ["docs/known_doctags"],
1534 }
1535
1536 filegroup {
1537 name: "mygroup",
1538 srcs: [":myjavalib{.doctags}"],
1539 }
1540 `)
1541
1542 result.CheckSnapshot("mysdk", "",
1543 checkAndroidBpContents(`
1544// This is auto-generated. DO NOT EDIT.
1545
1546java_sdk_library_import {
1547 name: "mysdk_myjavalib@current",
1548 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001549 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001550 shared_library: true,
1551 doctag_files: ["doctags/docs/known_doctags"],
1552 public: {
1553 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001554 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001555 current_api: "sdk_library/public/myjavalib.txt",
1556 removed_api: "sdk_library/public/myjavalib-removed.txt",
1557 sdk_version: "current",
1558 },
1559}
1560
1561java_sdk_library_import {
1562 name: "myjavalib",
1563 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001564 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001565 shared_library: true,
1566 doctag_files: ["doctags/docs/known_doctags"],
1567 public: {
1568 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin7f979572020-11-09 15:55:27 +00001569 stub_srcs: ["sdk_library/public/myjavalib_stub_sources/**/*.java"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001570 current_api: "sdk_library/public/myjavalib.txt",
1571 removed_api: "sdk_library/public/myjavalib-removed.txt",
1572 sdk_version: "current",
1573 },
1574}
1575
1576sdk_snapshot {
1577 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001578 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001579 java_sdk_libs: ["mysdk_myjavalib@current"],
1580}
1581`),
1582 checkAllCopyRules(`
1583.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1584.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1585.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1586docs/known_doctags -> doctags/docs/known_doctags
1587`),
1588 )
1589}