blob: d6828c95bf5985f2b3378ff5ef62826a93a238e4 [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 Duffind835daa2019-11-30 17:49:09 +0000622func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult {
623 t.Helper()
624
625 fs := map[string][]byte{
626 "foo/bar/Foo.java": nil,
627 "stubs-sources/foo/bar/Foo.java": nil,
628 }
629 return testSdkWithFs(t, bp, fs)
630}
631
Paul Duffina80fdec2019-12-03 15:25:00 +0000632// Note: This test does not verify that a droidstubs can be referenced, either
633// directly or indirectly from an APEX as droidstubs can never be a part of an
634// apex.
635func TestBasicSdkWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000636 testSdkWithDroidstubs(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000637 sdk {
638 name: "mysdk",
639 stubs_sources: ["mystub"],
640 }
641 sdk_snapshot {
642 name: "mysdk@10",
643 stubs_sources: ["mystub_mysdk@10"],
644 }
645 prebuilt_stubs_sources {
646 name: "mystub_mysdk@10",
647 sdk_member_name: "mystub",
648 srcs: ["stubs-sources/foo/bar/Foo.java"],
649 }
650 droidstubs {
651 name: "mystub",
652 srcs: ["foo/bar/Foo.java"],
653 sdk_version: "none",
654 system_modules: "none",
655 }
656 java_library {
657 name: "myjavalib",
658 srcs: [":mystub"],
659 sdk_version: "none",
660 system_modules: "none",
661 }
662 `)
663}
664
665func TestSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000666 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000667 module_exports {
668 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000669 stubs_sources: ["myjavaapistubs"],
670 }
671
672 droidstubs {
673 name: "myjavaapistubs",
674 srcs: ["foo/bar/Foo.java"],
675 system_modules: "none",
676 sdk_version: "none",
677 }
678 `)
679
Paul Duffin1356d8c2020-02-25 19:26:33 +0000680 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000681 checkAndroidBpContents(`
682// This is auto-generated. DO NOT EDIT.
683
684prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000685 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000686 sdk_member_name: "myjavaapistubs",
Paul Duffind99d9972020-09-29 16:00:55 +0100687 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000688 srcs: ["java/myjavaapistubs_stubs_sources"],
689}
690
691prebuilt_stubs_sources {
692 name: "myjavaapistubs",
693 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100694 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000695 srcs: ["java/myjavaapistubs_stubs_sources"],
696}
697
Paul Duffine6029182019-12-16 17:43:48 +0000698module_exports_snapshot {
699 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100700 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000701 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000702}
703
704`),
705 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100706 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000707 )
708}
709
710func TestHostSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000711 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000712 module_exports {
713 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000714 device_supported: false,
715 host_supported: true,
716 stubs_sources: ["myjavaapistubs"],
717 }
718
719 droidstubs {
720 name: "myjavaapistubs",
721 device_supported: false,
722 host_supported: true,
723 srcs: ["foo/bar/Foo.java"],
724 system_modules: "none",
725 sdk_version: "none",
726 }
727 `)
728
Paul Duffin1356d8c2020-02-25 19:26:33 +0000729 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000730 checkAndroidBpContents(`
731// This is auto-generated. DO NOT EDIT.
732
733prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000734 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000735 sdk_member_name: "myjavaapistubs",
Paul Duffind99d9972020-09-29 16:00:55 +0100736 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000737 device_supported: false,
738 host_supported: true,
739 srcs: ["java/myjavaapistubs_stubs_sources"],
740}
741
742prebuilt_stubs_sources {
743 name: "myjavaapistubs",
744 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100745 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000746 device_supported: false,
747 host_supported: true,
748 srcs: ["java/myjavaapistubs_stubs_sources"],
749}
750
Paul Duffine6029182019-12-16 17:43:48 +0000751module_exports_snapshot {
752 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100753 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000754 device_supported: false,
755 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000756 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000757}
758`),
759 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100760 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000761 )
762}
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000763
764func TestSnapshotWithJavaSystemModules(t *testing.T) {
765 result := testSdkWithJava(t, `
766 sdk {
767 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000768 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000769 java_system_modules: ["my-system-modules"],
770 }
771
772 java_system_modules {
773 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000774 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000775 }
776
777 java_library {
778 name: "system-module",
779 srcs: ["Test.java"],
780 sdk_version: "none",
781 system_modules: "none",
782 }
Paul Duffin72910952020-01-20 18:16:30 +0000783
784 java_library {
785 name: "exported-system-module",
786 srcs: ["Test.java"],
787 sdk_version: "none",
788 system_modules: "none",
789 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000790 `)
791
Paul Duffin1356d8c2020-02-25 19:26:33 +0000792 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000793 checkAndroidBpContents(`
794// This is auto-generated. DO NOT EDIT.
795
796java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000797 name: "mysdk_exported-system-module@current",
798 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100799 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000800 jars: ["java/exported-system-module.jar"],
801}
802
803java_import {
804 name: "exported-system-module",
805 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100806 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000807 jars: ["java/exported-system-module.jar"],
808}
809
810java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000811 name: "mysdk_system-module@current",
812 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000813 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000814 jars: ["java/system-module.jar"],
815}
816
817java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000818 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000819 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000820 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000821 jars: ["java/system-module.jar"],
822}
823
824java_system_modules_import {
825 name: "mysdk_my-system-modules@current",
826 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100827 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000828 libs: [
829 "mysdk_system-module@current",
830 "mysdk_exported-system-module@current",
831 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000832}
833
834java_system_modules_import {
835 name: "my-system-modules",
836 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100837 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000838 libs: [
839 "mysdk_system-module",
840 "exported-system-module",
841 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000842}
843
844sdk_snapshot {
845 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100846 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000847 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000848 java_system_modules: ["mysdk_my-system-modules@current"],
849}
850`),
Paul Duffin72910952020-01-20 18:16:30 +0000851 checkAllCopyRules(`
852.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
853.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
854`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000855 )
856}
857
858func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000859 result := testSdkWithJava(t, `
860 sdk {
861 name: "mysdk",
862 device_supported: false,
863 host_supported: true,
864 java_system_modules: ["my-system-modules"],
865 }
866
867 java_system_modules {
868 name: "my-system-modules",
869 device_supported: false,
870 host_supported: true,
871 libs: ["system-module"],
872 }
873
874 java_library {
875 name: "system-module",
876 device_supported: false,
877 host_supported: true,
878 srcs: ["Test.java"],
879 sdk_version: "none",
880 system_modules: "none",
881 }
882 `)
883
Paul Duffin1356d8c2020-02-25 19:26:33 +0000884 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000885 checkAndroidBpContents(`
886// This is auto-generated. DO NOT EDIT.
887
888java_import {
889 name: "mysdk_system-module@current",
890 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000891 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000892 device_supported: false,
893 host_supported: true,
894 jars: ["java/system-module.jar"],
895}
896
897java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000898 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000899 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000900 visibility: ["//visibility:private"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000901 device_supported: false,
902 host_supported: true,
903 jars: ["java/system-module.jar"],
904}
905
906java_system_modules_import {
907 name: "mysdk_my-system-modules@current",
908 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100909 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000910 device_supported: false,
911 host_supported: true,
912 libs: ["mysdk_system-module@current"],
913}
914
915java_system_modules_import {
916 name: "my-system-modules",
917 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100918 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000919 device_supported: false,
920 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000921 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000922}
923
924sdk_snapshot {
925 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100926 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000927 device_supported: false,
928 host_supported: true,
929 java_system_modules: ["mysdk_my-system-modules@current"],
930}
931`),
932 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
933 )
934}
Paul Duffin865171e2020-03-02 18:38:15 +0000935
936func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000937 result := testSdkWithJava(t, `
938 module_exports {
939 name: "myexports",
940 host_supported: true,
941 java_libs: ["myjavalib"],
942 target: {
943 android: {
944 java_header_libs: ["androidjavalib"],
945 },
946 host: {
947 java_header_libs: ["hostjavalib"],
948 },
949 },
950 }
951
952 java_library {
953 name: "myjavalib",
954 host_supported: true,
955 srcs: ["Test.java"],
956 system_modules: "none",
957 sdk_version: "none",
958 }
959
960 java_library {
961 name: "androidjavalib",
962 srcs: ["Test.java"],
963 system_modules: "none",
964 sdk_version: "none",
965 }
966
967 java_library_host {
968 name: "hostjavalib",
969 srcs: ["Test.java"],
970 }
971 `)
972
973 result.CheckSnapshot("myexports", "",
974 checkAndroidBpContents(`
975// This is auto-generated. DO NOT EDIT.
976
977java_import {
978 name: "myexports_hostjavalib@current",
979 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100980 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000981 device_supported: false,
982 host_supported: true,
983 jars: ["java/hostjavalib.jar"],
984}
985
986java_import {
987 name: "hostjavalib",
988 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100989 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000990 device_supported: false,
991 host_supported: true,
992 jars: ["java/hostjavalib.jar"],
993}
994
995java_import {
996 name: "myexports_androidjavalib@current",
997 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100998 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000999 jars: ["java/androidjavalib.jar"],
1000}
1001
1002java_import {
1003 name: "androidjavalib",
1004 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001005 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001006 jars: ["java/androidjavalib.jar"],
1007}
1008
1009java_import {
1010 name: "myexports_myjavalib@current",
1011 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001012 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001013 host_supported: true,
1014 target: {
1015 android: {
1016 jars: ["java/android/myjavalib.jar"],
1017 },
1018 linux_glibc: {
1019 jars: ["java/linux_glibc/myjavalib.jar"],
1020 },
1021 },
1022}
1023
1024java_import {
1025 name: "myjavalib",
1026 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001027 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001028 host_supported: true,
1029 target: {
1030 android: {
1031 jars: ["java/android/myjavalib.jar"],
1032 },
1033 linux_glibc: {
1034 jars: ["java/linux_glibc/myjavalib.jar"],
1035 },
1036 },
1037}
1038
1039module_exports_snapshot {
1040 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001041 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001042 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001043 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001044 target: {
1045 android: {
1046 java_header_libs: ["myexports_androidjavalib@current"],
1047 },
1048 linux_glibc: {
1049 java_header_libs: ["myexports_hostjavalib@current"],
1050 },
1051 },
Paul Duffin865171e2020-03-02 18:38:15 +00001052}
1053`),
1054 checkAllCopyRules(`
1055.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1056.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1057.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1058.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1059`),
1060 )
1061}
Paul Duffindd46f712020-02-10 13:37:10 +00001062
1063func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1064 result := testSdkWithJava(t, `
1065 sdk {
1066 name: "mysdk",
1067 java_sdk_libs: ["myjavalib"],
1068 }
1069
1070 java_sdk_library {
1071 name: "myjavalib",
1072 apex_available: ["//apex_available:anyapex"],
1073 srcs: ["Test.java"],
1074 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001075 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001076 stubs_library_visibility: ["//other"],
1077 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001078 }
1079 `)
1080
1081 result.CheckSnapshot("mysdk", "",
1082 checkAndroidBpContents(`
1083// This is auto-generated. DO NOT EDIT.
1084
1085java_sdk_library_import {
1086 name: "mysdk_myjavalib@current",
1087 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001088 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001089 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001090 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001091 public: {
1092 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001093 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001094 current_api: "sdk_library/public/myjavalib.txt",
1095 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001096 sdk_version: "current",
1097 },
1098 system: {
1099 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001100 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001101 current_api: "sdk_library/system/myjavalib.txt",
1102 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001103 sdk_version: "system_current",
1104 },
1105 test: {
1106 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001107 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001108 current_api: "sdk_library/test/myjavalib.txt",
1109 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001110 sdk_version: "test_current",
1111 },
1112}
1113
1114java_sdk_library_import {
1115 name: "myjavalib",
1116 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001117 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001118 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001119 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001120 public: {
1121 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001122 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001123 current_api: "sdk_library/public/myjavalib.txt",
1124 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001125 sdk_version: "current",
1126 },
1127 system: {
1128 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001129 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001130 current_api: "sdk_library/system/myjavalib.txt",
1131 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001132 sdk_version: "system_current",
1133 },
1134 test: {
1135 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001136 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001137 current_api: "sdk_library/test/myjavalib.txt",
1138 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001139 sdk_version: "test_current",
1140 },
1141}
1142
1143sdk_snapshot {
1144 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001145 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001146 java_sdk_libs: ["mysdk_myjavalib@current"],
1147}
1148`),
1149 checkAllCopyRules(`
1150.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001151.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001152.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001153.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001154.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 +01001155.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 +00001156.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001157.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 +01001158.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 +00001159`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001160 checkMergeZips(
1161 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1162 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1163 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001164 )
1165}
Paul Duffin3375e352020-04-28 10:44:03 +01001166
Paul Duffin780c5f42020-05-12 15:52:55 +01001167func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1168 result := testSdkWithJava(t, `
1169 sdk {
1170 name: "mysdk",
1171 java_sdk_libs: ["myjavalib"],
1172 }
1173
1174 java_sdk_library {
1175 name: "myjavalib",
1176 srcs: ["Test.java"],
1177 sdk_version: "none",
1178 system_modules: "none",
1179 }
1180 `)
1181
1182 result.CheckSnapshot("mysdk", "",
1183 checkAndroidBpContents(`
1184// This is auto-generated. DO NOT EDIT.
1185
1186java_sdk_library_import {
1187 name: "mysdk_myjavalib@current",
1188 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001189 visibility: ["//visibility:public"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001190 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001191 public: {
1192 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1193 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1194 current_api: "sdk_library/public/myjavalib.txt",
1195 removed_api: "sdk_library/public/myjavalib-removed.txt",
1196 sdk_version: "none",
1197 },
1198}
1199
1200java_sdk_library_import {
1201 name: "myjavalib",
1202 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001203 visibility: ["//visibility:public"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001204 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001205 public: {
1206 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1207 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1208 current_api: "sdk_library/public/myjavalib.txt",
1209 removed_api: "sdk_library/public/myjavalib-removed.txt",
1210 sdk_version: "none",
1211 },
1212}
1213
1214sdk_snapshot {
1215 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001216 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001217 java_sdk_libs: ["mysdk_myjavalib@current"],
1218}
1219`),
1220 checkAllCopyRules(`
1221.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1222.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001223.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001224`),
1225 checkMergeZips(
1226 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1227 ),
1228 )
1229}
1230
Paul Duffin87a05a32020-05-12 11:50:28 +01001231func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1232 result := testSdkWithJava(t, `
1233 sdk {
1234 name: "mysdk",
1235 java_sdk_libs: ["myjavalib"],
1236 }
1237
1238 java_sdk_library {
1239 name: "myjavalib",
1240 srcs: ["Test.java"],
1241 sdk_version: "module_current",
1242 public: {
1243 enabled: true,
1244 sdk_version: "module_current",
1245 },
1246 }
1247 `)
1248
1249 result.CheckSnapshot("mysdk", "",
1250 checkAndroidBpContents(`
1251// This is auto-generated. DO NOT EDIT.
1252
1253java_sdk_library_import {
1254 name: "mysdk_myjavalib@current",
1255 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001256 visibility: ["//visibility:public"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001257 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001258 public: {
1259 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1260 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1261 current_api: "sdk_library/public/myjavalib.txt",
1262 removed_api: "sdk_library/public/myjavalib-removed.txt",
1263 sdk_version: "module_current",
1264 },
1265}
1266
1267java_sdk_library_import {
1268 name: "myjavalib",
1269 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001270 visibility: ["//visibility:public"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001271 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001272 public: {
1273 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1274 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1275 current_api: "sdk_library/public/myjavalib.txt",
1276 removed_api: "sdk_library/public/myjavalib-removed.txt",
1277 sdk_version: "module_current",
1278 },
1279}
1280
1281sdk_snapshot {
1282 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001283 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001284 java_sdk_libs: ["mysdk_myjavalib@current"],
1285}
1286`),
1287 checkAllCopyRules(`
1288.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1289.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001290.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001291`),
1292 checkMergeZips(
1293 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1294 ),
1295 )
1296}
1297
1298func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001299 result := testSdkWithJava(t, `
1300 sdk {
1301 name: "mysdk",
1302 java_sdk_libs: ["myjavalib"],
1303 }
1304
1305 java_sdk_library {
1306 name: "myjavalib",
1307 apex_available: ["//apex_available:anyapex"],
1308 srcs: ["Test.java"],
1309 sdk_version: "current",
1310 public: {
1311 enabled: true,
1312 },
1313 system: {
1314 enabled: true,
1315 },
1316 }
1317 `)
1318
1319 result.CheckSnapshot("mysdk", "",
1320 checkAndroidBpContents(`
1321// This is auto-generated. DO NOT EDIT.
1322
1323java_sdk_library_import {
1324 name: "mysdk_myjavalib@current",
1325 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001326 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001327 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001328 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001329 public: {
1330 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1331 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1332 current_api: "sdk_library/public/myjavalib.txt",
1333 removed_api: "sdk_library/public/myjavalib-removed.txt",
1334 sdk_version: "current",
1335 },
1336 system: {
1337 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1338 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1339 current_api: "sdk_library/system/myjavalib.txt",
1340 removed_api: "sdk_library/system/myjavalib-removed.txt",
1341 sdk_version: "system_current",
1342 },
1343}
1344
1345java_sdk_library_import {
1346 name: "myjavalib",
1347 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001348 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001349 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001350 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001351 public: {
1352 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1353 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1354 current_api: "sdk_library/public/myjavalib.txt",
1355 removed_api: "sdk_library/public/myjavalib-removed.txt",
1356 sdk_version: "current",
1357 },
1358 system: {
1359 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1360 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1361 current_api: "sdk_library/system/myjavalib.txt",
1362 removed_api: "sdk_library/system/myjavalib-removed.txt",
1363 sdk_version: "system_current",
1364 },
1365}
1366
1367sdk_snapshot {
1368 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001369 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001370 java_sdk_libs: ["mysdk_myjavalib@current"],
1371}
1372`),
1373 checkAllCopyRules(`
1374.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1375.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001376.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001377.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1378.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 +01001379.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 +01001380`),
1381 checkMergeZips(
1382 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1383 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1384 ),
1385 )
1386}
Paul Duffin8f265b92020-04-28 14:13:56 +01001387
1388func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1389 result := testSdkWithJava(t, `
1390 sdk {
1391 name: "mysdk",
1392 java_sdk_libs: ["myjavalib"],
1393 }
1394
1395 java_sdk_library {
1396 name: "myjavalib",
1397 apex_available: ["//apex_available:anyapex"],
1398 srcs: ["Test.java"],
1399 sdk_version: "current",
1400 public: {
1401 enabled: true,
1402 },
1403 system: {
1404 enabled: true,
1405 },
1406 module_lib: {
1407 enabled: true,
1408 },
1409 }
1410 `)
1411
1412 result.CheckSnapshot("mysdk", "",
1413 checkAndroidBpContents(`
1414// This is auto-generated. DO NOT EDIT.
1415
1416java_sdk_library_import {
1417 name: "mysdk_myjavalib@current",
1418 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001419 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001420 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001421 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001422 public: {
1423 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1424 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1425 current_api: "sdk_library/public/myjavalib.txt",
1426 removed_api: "sdk_library/public/myjavalib-removed.txt",
1427 sdk_version: "current",
1428 },
1429 system: {
1430 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1431 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1432 current_api: "sdk_library/system/myjavalib.txt",
1433 removed_api: "sdk_library/system/myjavalib-removed.txt",
1434 sdk_version: "system_current",
1435 },
1436 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001437 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1438 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1439 current_api: "sdk_library/module-lib/myjavalib.txt",
1440 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001441 sdk_version: "module_current",
1442 },
1443}
1444
1445java_sdk_library_import {
1446 name: "myjavalib",
1447 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001448 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001449 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001450 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001451 public: {
1452 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1453 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1454 current_api: "sdk_library/public/myjavalib.txt",
1455 removed_api: "sdk_library/public/myjavalib-removed.txt",
1456 sdk_version: "current",
1457 },
1458 system: {
1459 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1460 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1461 current_api: "sdk_library/system/myjavalib.txt",
1462 removed_api: "sdk_library/system/myjavalib-removed.txt",
1463 sdk_version: "system_current",
1464 },
1465 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001466 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1467 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1468 current_api: "sdk_library/module-lib/myjavalib.txt",
1469 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001470 sdk_version: "module_current",
1471 },
1472}
1473
1474sdk_snapshot {
1475 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001476 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001477 java_sdk_libs: ["mysdk_myjavalib@current"],
1478}
1479`),
1480 checkAllCopyRules(`
1481.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1482.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001483.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001484.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1485.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 +01001486.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 +01001487.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 +01001488.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1489.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 +01001490`),
1491 checkMergeZips(
1492 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1493 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001494 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001495 ),
1496 )
1497}
Paul Duffinf7a64332020-05-13 16:54:55 +01001498
Paul Duffin0c5bae52020-06-02 13:00:08 +01001499func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1500 result := testSdkWithJava(t, `
1501 sdk {
1502 name: "mysdk",
1503 java_sdk_libs: ["myjavalib"],
1504 }
1505
1506 java_sdk_library {
1507 name: "myjavalib",
1508 apex_available: ["//apex_available:anyapex"],
1509 srcs: ["Test.java"],
1510 sdk_version: "current",
1511 public: {
1512 enabled: true,
1513 },
1514 system_server: {
1515 enabled: true,
1516 },
1517 }
1518 `)
1519
1520 result.CheckSnapshot("mysdk", "",
1521 checkAndroidBpContents(`
1522// This is auto-generated. DO NOT EDIT.
1523
1524java_sdk_library_import {
1525 name: "mysdk_myjavalib@current",
1526 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001527 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001528 apex_available: ["//apex_available:anyapex"],
1529 shared_library: true,
1530 public: {
1531 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1532 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1533 current_api: "sdk_library/public/myjavalib.txt",
1534 removed_api: "sdk_library/public/myjavalib-removed.txt",
1535 sdk_version: "current",
1536 },
1537 system_server: {
1538 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1539 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1540 current_api: "sdk_library/system-server/myjavalib.txt",
1541 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1542 sdk_version: "system_server_current",
1543 },
1544}
1545
1546java_sdk_library_import {
1547 name: "myjavalib",
1548 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001549 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001550 apex_available: ["//apex_available:anyapex"],
1551 shared_library: true,
1552 public: {
1553 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1554 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1555 current_api: "sdk_library/public/myjavalib.txt",
1556 removed_api: "sdk_library/public/myjavalib-removed.txt",
1557 sdk_version: "current",
1558 },
1559 system_server: {
1560 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1561 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1562 current_api: "sdk_library/system-server/myjavalib.txt",
1563 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1564 sdk_version: "system_server_current",
1565 },
1566}
1567
1568sdk_snapshot {
1569 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001570 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001571 java_sdk_libs: ["mysdk_myjavalib@current"],
1572}
1573`),
1574 checkAllCopyRules(`
1575.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1576.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1577.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1578.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1579.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1580.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1581`),
1582 checkMergeZips(
1583 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1584 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1585 ),
1586 )
1587}
1588
Paul Duffinf7a64332020-05-13 16:54:55 +01001589func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1590 result := testSdkWithJava(t, `
1591 sdk {
1592 name: "mysdk",
1593 java_sdk_libs: ["myjavalib"],
1594 }
1595
1596 java_sdk_library {
1597 name: "myjavalib",
1598 apex_available: ["//apex_available:anyapex"],
1599 srcs: ["Test.java"],
1600 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001601 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001602 public: {
1603 enabled: true,
1604 },
1605 }
1606 `)
1607
1608 result.CheckSnapshot("mysdk", "",
1609 checkAndroidBpContents(`
1610// This is auto-generated. DO NOT EDIT.
1611
1612java_sdk_library_import {
1613 name: "mysdk_myjavalib@current",
1614 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001615 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001616 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001617 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001618 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001619 public: {
1620 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1621 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1622 current_api: "sdk_library/public/myjavalib.txt",
1623 removed_api: "sdk_library/public/myjavalib-removed.txt",
1624 sdk_version: "current",
1625 },
1626}
1627
1628java_sdk_library_import {
1629 name: "myjavalib",
1630 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001631 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001632 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001633 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001634 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001635 public: {
1636 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1637 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1638 current_api: "sdk_library/public/myjavalib.txt",
1639 removed_api: "sdk_library/public/myjavalib-removed.txt",
1640 sdk_version: "current",
1641 },
1642}
1643
1644sdk_snapshot {
1645 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001646 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001647 java_sdk_libs: ["mysdk_myjavalib@current"],
1648}
1649`),
1650 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001651.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1652.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1653.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001654`),
1655 checkMergeZips(
1656 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1657 ),
1658 )
1659}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001660
1661func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1662 result := testSdkWithJava(t, `
1663 sdk {
1664 name: "mysdk",
1665 java_sdk_libs: ["myjavalib"],
1666 }
1667
1668 java_sdk_library {
1669 name: "myjavalib",
1670 srcs: ["Test.java"],
1671 sdk_version: "current",
1672 public: {
1673 enabled: true,
1674 },
1675 doctag_files: ["docs/known_doctags"],
1676 }
1677
1678 filegroup {
1679 name: "mygroup",
1680 srcs: [":myjavalib{.doctags}"],
1681 }
1682 `)
1683
1684 result.CheckSnapshot("mysdk", "",
1685 checkAndroidBpContents(`
1686// This is auto-generated. DO NOT EDIT.
1687
1688java_sdk_library_import {
1689 name: "mysdk_myjavalib@current",
1690 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001691 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001692 shared_library: true,
1693 doctag_files: ["doctags/docs/known_doctags"],
1694 public: {
1695 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1696 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1697 current_api: "sdk_library/public/myjavalib.txt",
1698 removed_api: "sdk_library/public/myjavalib-removed.txt",
1699 sdk_version: "current",
1700 },
1701}
1702
1703java_sdk_library_import {
1704 name: "myjavalib",
1705 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001706 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001707 shared_library: true,
1708 doctag_files: ["doctags/docs/known_doctags"],
1709 public: {
1710 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1711 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1712 current_api: "sdk_library/public/myjavalib.txt",
1713 removed_api: "sdk_library/public/myjavalib-removed.txt",
1714 sdk_version: "current",
1715 },
1716}
1717
1718sdk_snapshot {
1719 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001720 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001721 java_sdk_libs: ["mysdk_myjavalib@current"],
1722}
1723`),
1724 checkAllCopyRules(`
1725.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1726.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1727.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1728docs/known_doctags -> doctags/docs/known_doctags
1729`),
1730 )
1731}