blob: b44f66e856d2c6148c9cb81483d22d21958180d4 [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"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000125 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100126 jars: ["java/sdkmember.jar"],
127}
128
129java_import {
130 name: "sdkmember",
131 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100132 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000133 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100134 jars: ["java/sdkmember.jar"],
135}
136
137sdk_snapshot {
138 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100139 visibility: ["//visibility:public"],
Paul Duffincee7e662020-07-09 17:32:57 +0100140 java_header_libs: ["mysdk_sdkmember@current"],
141}
142`))
143}
144
Paul Duffina80fdec2019-12-03 15:25:00 +0000145func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000146 result := testSdkWithJava(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000147 sdk {
148 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +0900149 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000150 }
151
152 sdk_snapshot {
153 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +0000154 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000155 }
156
157 sdk_snapshot {
158 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +0000159 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000160 }
161
Jiyong Park0f80c182020-01-31 02:49:53 +0900162 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000163 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900164 srcs: ["Test.java"],
165 system_modules: "none",
166 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000167 host_supported: true,
168 }
169
170 java_import {
171 name: "sdkmember_mysdk_1",
172 sdk_member_name: "sdkmember",
173 host_supported: true,
174 }
175
176 java_import {
177 name: "sdkmember_mysdk_2",
178 sdk_member_name: "sdkmember",
179 host_supported: true,
180 }
181
182 java_library {
183 name: "myjavalib",
184 srcs: ["Test.java"],
185 libs: ["sdkmember"],
186 system_modules: "none",
187 sdk_version: "none",
188 compile_dex: true,
189 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000190 apex_available: [
191 "myapex",
192 "myapex2",
193 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000194 }
195
196 apex {
197 name: "myapex",
198 java_libs: ["myjavalib"],
199 uses_sdks: ["mysdk@1"],
200 key: "myapex.key",
201 certificate: ":myapex.cert",
202 }
203
204 apex {
205 name: "myapex2",
206 java_libs: ["myjavalib"],
207 uses_sdks: ["mysdk@2"],
208 key: "myapex.key",
209 certificate: ":myapex.cert",
210 }
211 `)
212
Paul Duffina37eca22020-07-22 13:00:54 +0100213 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
214 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000215
Colin Crossaede88c2020-08-11 12:17:01 -0700216 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
217 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000218
219 // Depending on the uses_sdks value, different libs are linked
220 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
221 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
222}
223
Paul Duffina0dbf432019-12-05 11:25:53 +0000224func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
225 result := testSdkWithJava(t, `
226 sdk {
227 name: "mysdk",
228 java_header_libs: ["myjavalib"],
229 }
230
231 java_library {
232 name: "myjavalib",
233 srcs: ["Test.java"],
234 aidl: {
235 export_include_dirs: ["aidl"],
236 },
237 system_modules: "none",
238 sdk_version: "none",
239 compile_dex: true,
240 host_supported: true,
241 }
242 `)
243
Paul Duffin1356d8c2020-02-25 19:26:33 +0000244 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000245 checkAndroidBpContents(`
246// This is auto-generated. DO NOT EDIT.
247
248java_import {
249 name: "mysdk_myjavalib@current",
250 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100251 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000252 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000253 jars: ["java/myjavalib.jar"],
254}
255
256java_import {
257 name: "myjavalib",
258 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100259 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000260 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000261 jars: ["java/myjavalib.jar"],
262}
263
264sdk_snapshot {
265 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100266 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000267 java_header_libs: ["mysdk_myjavalib@current"],
268}
269
270`),
271 checkAllCopyRules(`
272.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
273aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
274`),
275 )
276}
277
278func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina0dbf432019-12-05 11:25:53 +0000279 result := testSdkWithJava(t, `
280 sdk {
281 name: "mysdk",
282 device_supported: false,
283 host_supported: true,
284 java_header_libs: ["myjavalib"],
285 }
286
287 java_library {
288 name: "myjavalib",
289 device_supported: false,
290 host_supported: true,
291 srcs: ["Test.java"],
292 aidl: {
293 export_include_dirs: ["aidl"],
294 },
295 system_modules: "none",
296 sdk_version: "none",
297 compile_dex: true,
298 }
299 `)
300
Paul Duffin1356d8c2020-02-25 19:26:33 +0000301 result.CheckSnapshot("mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000302 checkAndroidBpContents(`
303// This is auto-generated. DO NOT EDIT.
304
305java_import {
306 name: "mysdk_myjavalib@current",
307 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100308 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000309 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000310 device_supported: false,
311 host_supported: true,
312 jars: ["java/myjavalib.jar"],
313}
314
315java_import {
316 name: "myjavalib",
317 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100318 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000319 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000320 device_supported: false,
321 host_supported: true,
322 jars: ["java/myjavalib.jar"],
323}
324
325sdk_snapshot {
326 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100327 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000328 device_supported: false,
329 host_supported: true,
330 java_header_libs: ["mysdk_myjavalib@current"],
331}
332`),
333 checkAllCopyRules(`
334.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
335aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
336`),
337 )
338}
339
Paul Duffina04c1072020-03-02 10:16:35 +0000340func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffina04c1072020-03-02 10:16:35 +0000341 result := testSdkWithJava(t, `
342 sdk {
343 name: "mysdk",
344 host_supported: true,
345 java_header_libs: ["myjavalib"],
346 }
347
348 java_library {
349 name: "myjavalib",
350 host_supported: true,
351 srcs: ["Test.java"],
352 system_modules: "none",
353 sdk_version: "none",
354 compile_dex: true,
355 }
356 `)
357
358 result.CheckSnapshot("mysdk", "",
359 checkAndroidBpContents(`
360// This is auto-generated. DO NOT EDIT.
361
362java_import {
363 name: "mysdk_myjavalib@current",
364 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100365 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000366 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000367 host_supported: true,
368 target: {
369 android: {
370 jars: ["java/android/myjavalib.jar"],
371 },
372 linux_glibc: {
373 jars: ["java/linux_glibc/myjavalib.jar"],
374 },
375 },
376}
377
378java_import {
379 name: "myjavalib",
380 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100381 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000382 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000383 host_supported: true,
384 target: {
385 android: {
386 jars: ["java/android/myjavalib.jar"],
387 },
388 linux_glibc: {
389 jars: ["java/linux_glibc/myjavalib.jar"],
390 },
391 },
392}
393
394sdk_snapshot {
395 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100396 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000397 host_supported: true,
398 java_header_libs: ["mysdk_myjavalib@current"],
399}
400`),
401 checkAllCopyRules(`
402.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
403.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
404`),
405 )
406}
407
Paul Duffina0dbf432019-12-05 11:25:53 +0000408func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000409 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000410 module_exports {
411 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000412 java_libs: ["myjavalib"],
413 }
414
415 java_library {
416 name: "myjavalib",
417 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100418 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000419 aidl: {
420 export_include_dirs: ["aidl"],
421 },
422 system_modules: "none",
423 sdk_version: "none",
424 compile_dex: true,
425 host_supported: true,
426 }
427 `)
428
Paul Duffin1356d8c2020-02-25 19:26:33 +0000429 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000430 checkAndroidBpContents(`
431// This is auto-generated. DO NOT EDIT.
432
433java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000434 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000435 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100436 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000437 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000438 jars: ["java/myjavalib.jar"],
439}
440
441java_import {
442 name: "myjavalib",
443 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100444 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000445 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000446 jars: ["java/myjavalib.jar"],
447}
448
Paul Duffine6029182019-12-16 17:43:48 +0000449module_exports_snapshot {
450 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100451 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000452 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000453}
454
455`),
456 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100457.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000458aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
459`),
460 )
461}
462
Paul Duffina0dbf432019-12-05 11:25:53 +0000463func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000464 result := testSdkWithJava(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000465 module_exports {
466 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000467 device_supported: false,
468 host_supported: true,
469 java_libs: ["myjavalib"],
470 }
471
472 java_library {
473 name: "myjavalib",
474 device_supported: false,
475 host_supported: true,
476 srcs: ["Test.java"],
477 aidl: {
478 export_include_dirs: ["aidl"],
479 },
480 system_modules: "none",
481 sdk_version: "none",
482 compile_dex: true,
483 }
484 `)
485
Paul Duffin1356d8c2020-02-25 19:26:33 +0000486 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000487 checkAndroidBpContents(`
488// This is auto-generated. DO NOT EDIT.
489
490java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000491 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000492 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100493 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000494 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000495 device_supported: false,
496 host_supported: true,
497 jars: ["java/myjavalib.jar"],
498}
499
500java_import {
501 name: "myjavalib",
502 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100503 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000504 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000505 device_supported: false,
506 host_supported: true,
507 jars: ["java/myjavalib.jar"],
508}
509
Paul Duffine6029182019-12-16 17:43:48 +0000510module_exports_snapshot {
511 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100512 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000513 device_supported: false,
514 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000515 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000516}
517`),
518 checkAllCopyRules(`
519.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
520aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
521`),
522 )
523}
524
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000525func TestSnapshotWithJavaTest(t *testing.T) {
526 result := testSdkWithJava(t, `
527 module_exports {
528 name: "myexports",
529 java_tests: ["myjavatests"],
530 }
531
532 java_test {
533 name: "myjavatests",
534 srcs: ["Test.java"],
535 system_modules: "none",
536 sdk_version: "none",
537 compile_dex: true,
538 host_supported: true,
539 }
540 `)
541
Paul Duffin1356d8c2020-02-25 19:26:33 +0000542 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000543 checkAndroidBpContents(`
544// This is auto-generated. DO NOT EDIT.
545
546java_test_import {
547 name: "myexports_myjavatests@current",
548 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100549 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000550 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000551 jars: ["java/myjavatests.jar"],
552 test_config: "java/myjavatests-AndroidTest.xml",
553}
554
555java_test_import {
556 name: "myjavatests",
557 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100558 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000559 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000560 jars: ["java/myjavatests.jar"],
561 test_config: "java/myjavatests-AndroidTest.xml",
562}
563
564module_exports_snapshot {
565 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100566 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000567 java_tests: ["myexports_myjavatests@current"],
568}
569`),
570 checkAllCopyRules(`
571.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
572.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
573`),
574 )
575}
576
577func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000578 result := testSdkWithJava(t, `
579 module_exports {
580 name: "myexports",
581 device_supported: false,
582 host_supported: true,
583 java_tests: ["myjavatests"],
584 }
585
586 java_test {
587 name: "myjavatests",
588 device_supported: false,
589 host_supported: true,
590 srcs: ["Test.java"],
591 system_modules: "none",
592 sdk_version: "none",
593 compile_dex: true,
594 }
595 `)
596
Paul Duffin1356d8c2020-02-25 19:26:33 +0000597 result.CheckSnapshot("myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000598 checkAndroidBpContents(`
599// This is auto-generated. DO NOT EDIT.
600
601java_test_import {
602 name: "myexports_myjavatests@current",
603 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100604 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000605 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000606 device_supported: false,
607 host_supported: true,
608 jars: ["java/myjavatests.jar"],
609 test_config: "java/myjavatests-AndroidTest.xml",
610}
611
612java_test_import {
613 name: "myjavatests",
614 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100615 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000616 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000617 device_supported: false,
618 host_supported: true,
619 jars: ["java/myjavatests.jar"],
620 test_config: "java/myjavatests-AndroidTest.xml",
621}
622
623module_exports_snapshot {
624 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100625 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000626 device_supported: false,
627 host_supported: true,
628 java_tests: ["myexports_myjavatests@current"],
629}
630`),
631 checkAllCopyRules(`
632.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
633.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
634`),
635 )
636}
637
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000638func TestSnapshotWithJavaSystemModules(t *testing.T) {
639 result := testSdkWithJava(t, `
640 sdk {
641 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000642 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000643 java_system_modules: ["my-system-modules"],
644 }
645
646 java_system_modules {
647 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000648 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000649 }
650
651 java_library {
652 name: "system-module",
653 srcs: ["Test.java"],
654 sdk_version: "none",
655 system_modules: "none",
656 }
Paul Duffin72910952020-01-20 18:16:30 +0000657
658 java_library {
659 name: "exported-system-module",
660 srcs: ["Test.java"],
661 sdk_version: "none",
662 system_modules: "none",
663 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000664 `)
665
Paul Duffin1356d8c2020-02-25 19:26:33 +0000666 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000667 checkAndroidBpContents(`
668// This is auto-generated. DO NOT EDIT.
669
670java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000671 name: "mysdk_exported-system-module@current",
672 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100673 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000674 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000675 jars: ["java/exported-system-module.jar"],
676}
677
678java_import {
679 name: "exported-system-module",
680 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100681 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000682 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000683 jars: ["java/exported-system-module.jar"],
684}
685
686java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000687 name: "mysdk_system-module@current",
688 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000689 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000690 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000691 jars: ["java/system-module.jar"],
692}
693
694java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000695 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000696 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000697 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000698 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000699 jars: ["java/system-module.jar"],
700}
701
702java_system_modules_import {
703 name: "mysdk_my-system-modules@current",
704 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100705 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000706 libs: [
707 "mysdk_system-module@current",
708 "mysdk_exported-system-module@current",
709 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000710}
711
712java_system_modules_import {
713 name: "my-system-modules",
714 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100715 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000716 libs: [
717 "mysdk_system-module",
718 "exported-system-module",
719 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000720}
721
722sdk_snapshot {
723 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100724 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000725 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000726 java_system_modules: ["mysdk_my-system-modules@current"],
727}
728`),
Paul Duffin72910952020-01-20 18:16:30 +0000729 checkAllCopyRules(`
730.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
731.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
732`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000733 )
734}
735
736func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000737 result := testSdkWithJava(t, `
738 sdk {
739 name: "mysdk",
740 device_supported: false,
741 host_supported: true,
742 java_system_modules: ["my-system-modules"],
743 }
744
745 java_system_modules {
746 name: "my-system-modules",
747 device_supported: false,
748 host_supported: true,
749 libs: ["system-module"],
750 }
751
752 java_library {
753 name: "system-module",
754 device_supported: false,
755 host_supported: true,
756 srcs: ["Test.java"],
757 sdk_version: "none",
758 system_modules: "none",
759 }
760 `)
761
Paul Duffin1356d8c2020-02-25 19:26:33 +0000762 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000763 checkAndroidBpContents(`
764// This is auto-generated. DO NOT EDIT.
765
766java_import {
767 name: "mysdk_system-module@current",
768 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000769 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000770 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000771 device_supported: false,
772 host_supported: true,
773 jars: ["java/system-module.jar"],
774}
775
776java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000777 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000778 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000779 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000780 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000781 device_supported: false,
782 host_supported: true,
783 jars: ["java/system-module.jar"],
784}
785
786java_system_modules_import {
787 name: "mysdk_my-system-modules@current",
788 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100789 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000790 device_supported: false,
791 host_supported: true,
792 libs: ["mysdk_system-module@current"],
793}
794
795java_system_modules_import {
796 name: "my-system-modules",
797 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100798 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000799 device_supported: false,
800 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000801 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000802}
803
804sdk_snapshot {
805 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100806 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000807 device_supported: false,
808 host_supported: true,
809 java_system_modules: ["mysdk_my-system-modules@current"],
810}
811`),
812 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
813 )
814}
Paul Duffin865171e2020-03-02 18:38:15 +0000815
816func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000817 result := testSdkWithJava(t, `
818 module_exports {
819 name: "myexports",
820 host_supported: true,
821 java_libs: ["myjavalib"],
822 target: {
823 android: {
824 java_header_libs: ["androidjavalib"],
825 },
826 host: {
827 java_header_libs: ["hostjavalib"],
828 },
829 },
830 }
831
832 java_library {
833 name: "myjavalib",
834 host_supported: true,
835 srcs: ["Test.java"],
836 system_modules: "none",
837 sdk_version: "none",
838 }
839
840 java_library {
841 name: "androidjavalib",
842 srcs: ["Test.java"],
843 system_modules: "none",
844 sdk_version: "none",
845 }
846
847 java_library_host {
848 name: "hostjavalib",
849 srcs: ["Test.java"],
850 }
851 `)
852
853 result.CheckSnapshot("myexports", "",
854 checkAndroidBpContents(`
855// This is auto-generated. DO NOT EDIT.
856
857java_import {
858 name: "myexports_hostjavalib@current",
859 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100860 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000861 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000862 device_supported: false,
863 host_supported: true,
864 jars: ["java/hostjavalib.jar"],
865}
866
867java_import {
868 name: "hostjavalib",
869 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100870 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000871 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000872 device_supported: false,
873 host_supported: true,
874 jars: ["java/hostjavalib.jar"],
875}
876
877java_import {
878 name: "myexports_androidjavalib@current",
879 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100880 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000881 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000882 jars: ["java/androidjavalib.jar"],
883}
884
885java_import {
886 name: "androidjavalib",
887 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100888 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000889 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000890 jars: ["java/androidjavalib.jar"],
891}
892
893java_import {
894 name: "myexports_myjavalib@current",
895 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100896 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000897 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000898 host_supported: true,
899 target: {
900 android: {
901 jars: ["java/android/myjavalib.jar"],
902 },
903 linux_glibc: {
904 jars: ["java/linux_glibc/myjavalib.jar"],
905 },
906 },
907}
908
909java_import {
910 name: "myjavalib",
911 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100912 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000913 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000914 host_supported: true,
915 target: {
916 android: {
917 jars: ["java/android/myjavalib.jar"],
918 },
919 linux_glibc: {
920 jars: ["java/linux_glibc/myjavalib.jar"],
921 },
922 },
923}
924
925module_exports_snapshot {
926 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100927 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000928 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000929 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000930 target: {
931 android: {
932 java_header_libs: ["myexports_androidjavalib@current"],
933 },
934 linux_glibc: {
935 java_header_libs: ["myexports_hostjavalib@current"],
936 },
937 },
Paul Duffin865171e2020-03-02 18:38:15 +0000938}
939`),
940 checkAllCopyRules(`
941.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
942.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
943.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
944.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
945`),
946 )
947}
Paul Duffindd46f712020-02-10 13:37:10 +0000948
949func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
950 result := testSdkWithJava(t, `
951 sdk {
952 name: "mysdk",
953 java_sdk_libs: ["myjavalib"],
954 }
955
956 java_sdk_library {
957 name: "myjavalib",
958 apex_available: ["//apex_available:anyapex"],
959 srcs: ["Test.java"],
960 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100961 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100962 stubs_library_visibility: ["//other"],
963 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +0000964 }
965 `)
966
967 result.CheckSnapshot("mysdk", "",
968 checkAndroidBpContents(`
969// This is auto-generated. DO NOT EDIT.
970
971java_sdk_library_import {
972 name: "mysdk_myjavalib@current",
973 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100974 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000975 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100976 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +0000977 public: {
978 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000979 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100980 current_api: "sdk_library/public/myjavalib.txt",
981 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000982 sdk_version: "current",
983 },
984 system: {
985 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000986 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100987 current_api: "sdk_library/system/myjavalib.txt",
988 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000989 sdk_version: "system_current",
990 },
991 test: {
992 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000993 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100994 current_api: "sdk_library/test/myjavalib.txt",
995 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000996 sdk_version: "test_current",
997 },
998}
999
1000java_sdk_library_import {
1001 name: "myjavalib",
1002 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001003 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001004 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001005 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001006 public: {
1007 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001008 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001009 current_api: "sdk_library/public/myjavalib.txt",
1010 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001011 sdk_version: "current",
1012 },
1013 system: {
1014 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001015 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001016 current_api: "sdk_library/system/myjavalib.txt",
1017 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001018 sdk_version: "system_current",
1019 },
1020 test: {
1021 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001022 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001023 current_api: "sdk_library/test/myjavalib.txt",
1024 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001025 sdk_version: "test_current",
1026 },
1027}
1028
1029sdk_snapshot {
1030 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001031 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001032 java_sdk_libs: ["mysdk_myjavalib@current"],
1033}
1034`),
1035 checkAllCopyRules(`
1036.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001037.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001038.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001039.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001040.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 +01001041.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 +00001042.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001043.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 +01001044.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 +00001045`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001046 checkMergeZips(
1047 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1048 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1049 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001050 )
1051}
Paul Duffin3375e352020-04-28 10:44:03 +01001052
Paul Duffin780c5f42020-05-12 15:52:55 +01001053func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1054 result := testSdkWithJava(t, `
1055 sdk {
1056 name: "mysdk",
1057 java_sdk_libs: ["myjavalib"],
1058 }
1059
1060 java_sdk_library {
1061 name: "myjavalib",
1062 srcs: ["Test.java"],
1063 sdk_version: "none",
1064 system_modules: "none",
1065 }
1066 `)
1067
1068 result.CheckSnapshot("mysdk", "",
1069 checkAndroidBpContents(`
1070// This is auto-generated. DO NOT EDIT.
1071
1072java_sdk_library_import {
1073 name: "mysdk_myjavalib@current",
1074 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001075 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001076 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001077 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001078 public: {
1079 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001080 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001081 current_api: "sdk_library/public/myjavalib.txt",
1082 removed_api: "sdk_library/public/myjavalib-removed.txt",
1083 sdk_version: "none",
1084 },
1085}
1086
1087java_sdk_library_import {
1088 name: "myjavalib",
1089 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001090 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001091 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001092 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001093 public: {
1094 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001095 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001096 current_api: "sdk_library/public/myjavalib.txt",
1097 removed_api: "sdk_library/public/myjavalib-removed.txt",
1098 sdk_version: "none",
1099 },
1100}
1101
1102sdk_snapshot {
1103 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001104 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001105 java_sdk_libs: ["mysdk_myjavalib@current"],
1106}
1107`),
1108 checkAllCopyRules(`
1109.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1110.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001111.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001112`),
1113 checkMergeZips(
1114 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1115 ),
1116 )
1117}
1118
Paul Duffin87a05a32020-05-12 11:50:28 +01001119func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1120 result := testSdkWithJava(t, `
1121 sdk {
1122 name: "mysdk",
1123 java_sdk_libs: ["myjavalib"],
1124 }
1125
1126 java_sdk_library {
1127 name: "myjavalib",
1128 srcs: ["Test.java"],
1129 sdk_version: "module_current",
1130 public: {
1131 enabled: true,
1132 sdk_version: "module_current",
1133 },
1134 }
1135 `)
1136
1137 result.CheckSnapshot("mysdk", "",
1138 checkAndroidBpContents(`
1139// This is auto-generated. DO NOT EDIT.
1140
1141java_sdk_library_import {
1142 name: "mysdk_myjavalib@current",
1143 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001144 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001145 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001146 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001147 public: {
1148 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001149 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001150 current_api: "sdk_library/public/myjavalib.txt",
1151 removed_api: "sdk_library/public/myjavalib-removed.txt",
1152 sdk_version: "module_current",
1153 },
1154}
1155
1156java_sdk_library_import {
1157 name: "myjavalib",
1158 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001159 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001160 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001161 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001162 public: {
1163 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001164 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001165 current_api: "sdk_library/public/myjavalib.txt",
1166 removed_api: "sdk_library/public/myjavalib-removed.txt",
1167 sdk_version: "module_current",
1168 },
1169}
1170
1171sdk_snapshot {
1172 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001173 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001174 java_sdk_libs: ["mysdk_myjavalib@current"],
1175}
1176`),
1177 checkAllCopyRules(`
1178.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1179.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001180.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001181`),
1182 checkMergeZips(
1183 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1184 ),
1185 )
1186}
1187
1188func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001189 result := testSdkWithJava(t, `
1190 sdk {
1191 name: "mysdk",
1192 java_sdk_libs: ["myjavalib"],
1193 }
1194
1195 java_sdk_library {
1196 name: "myjavalib",
1197 apex_available: ["//apex_available:anyapex"],
1198 srcs: ["Test.java"],
1199 sdk_version: "current",
1200 public: {
1201 enabled: true,
1202 },
1203 system: {
1204 enabled: true,
1205 },
1206 }
1207 `)
1208
1209 result.CheckSnapshot("mysdk", "",
1210 checkAndroidBpContents(`
1211// This is auto-generated. DO NOT EDIT.
1212
1213java_sdk_library_import {
1214 name: "mysdk_myjavalib@current",
1215 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001216 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001217 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001218 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001219 public: {
1220 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001221 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001222 current_api: "sdk_library/public/myjavalib.txt",
1223 removed_api: "sdk_library/public/myjavalib-removed.txt",
1224 sdk_version: "current",
1225 },
1226 system: {
1227 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001228 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001229 current_api: "sdk_library/system/myjavalib.txt",
1230 removed_api: "sdk_library/system/myjavalib-removed.txt",
1231 sdk_version: "system_current",
1232 },
1233}
1234
1235java_sdk_library_import {
1236 name: "myjavalib",
1237 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001238 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001239 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001240 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001241 public: {
1242 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001243 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001244 current_api: "sdk_library/public/myjavalib.txt",
1245 removed_api: "sdk_library/public/myjavalib-removed.txt",
1246 sdk_version: "current",
1247 },
1248 system: {
1249 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001250 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001251 current_api: "sdk_library/system/myjavalib.txt",
1252 removed_api: "sdk_library/system/myjavalib-removed.txt",
1253 sdk_version: "system_current",
1254 },
1255}
1256
1257sdk_snapshot {
1258 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001259 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001260 java_sdk_libs: ["mysdk_myjavalib@current"],
1261}
1262`),
1263 checkAllCopyRules(`
1264.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1265.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001266.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001267.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1268.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 +01001269.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 +01001270`),
1271 checkMergeZips(
1272 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1273 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1274 ),
1275 )
1276}
Paul Duffin8f265b92020-04-28 14:13:56 +01001277
1278func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1279 result := testSdkWithJava(t, `
1280 sdk {
1281 name: "mysdk",
1282 java_sdk_libs: ["myjavalib"],
1283 }
1284
1285 java_sdk_library {
1286 name: "myjavalib",
1287 apex_available: ["//apex_available:anyapex"],
1288 srcs: ["Test.java"],
1289 sdk_version: "current",
1290 public: {
1291 enabled: true,
1292 },
1293 system: {
1294 enabled: true,
1295 },
1296 module_lib: {
1297 enabled: true,
1298 },
1299 }
1300 `)
1301
1302 result.CheckSnapshot("mysdk", "",
1303 checkAndroidBpContents(`
1304// This is auto-generated. DO NOT EDIT.
1305
1306java_sdk_library_import {
1307 name: "mysdk_myjavalib@current",
1308 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001309 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001310 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001311 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001312 public: {
1313 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001314 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001315 current_api: "sdk_library/public/myjavalib.txt",
1316 removed_api: "sdk_library/public/myjavalib-removed.txt",
1317 sdk_version: "current",
1318 },
1319 system: {
1320 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001321 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001322 current_api: "sdk_library/system/myjavalib.txt",
1323 removed_api: "sdk_library/system/myjavalib-removed.txt",
1324 sdk_version: "system_current",
1325 },
1326 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001327 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001328 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001329 current_api: "sdk_library/module-lib/myjavalib.txt",
1330 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001331 sdk_version: "module_current",
1332 },
1333}
1334
1335java_sdk_library_import {
1336 name: "myjavalib",
1337 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001338 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001339 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001340 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001341 public: {
1342 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001343 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001344 current_api: "sdk_library/public/myjavalib.txt",
1345 removed_api: "sdk_library/public/myjavalib-removed.txt",
1346 sdk_version: "current",
1347 },
1348 system: {
1349 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001350 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001351 current_api: "sdk_library/system/myjavalib.txt",
1352 removed_api: "sdk_library/system/myjavalib-removed.txt",
1353 sdk_version: "system_current",
1354 },
1355 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001356 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001357 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001358 current_api: "sdk_library/module-lib/myjavalib.txt",
1359 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001360 sdk_version: "module_current",
1361 },
1362}
1363
1364sdk_snapshot {
1365 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001366 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001367 java_sdk_libs: ["mysdk_myjavalib@current"],
1368}
1369`),
1370 checkAllCopyRules(`
1371.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1372.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001373.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001374.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1375.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 +01001376.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 +01001377.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 +01001378.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1379.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 +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",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001384 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001385 ),
1386 )
1387}
Paul Duffinf7a64332020-05-13 16:54:55 +01001388
Paul Duffin0c5bae52020-06-02 13:00:08 +01001389func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1390 result := testSdkWithJava(t, `
1391 sdk {
1392 name: "mysdk",
1393 java_sdk_libs: ["myjavalib"],
1394 }
1395
1396 java_sdk_library {
1397 name: "myjavalib",
1398 apex_available: ["//apex_available:anyapex"],
1399 srcs: ["Test.java"],
1400 sdk_version: "current",
1401 public: {
1402 enabled: true,
1403 },
1404 system_server: {
1405 enabled: true,
1406 },
1407 }
1408 `)
1409
1410 result.CheckSnapshot("mysdk", "",
1411 checkAndroidBpContents(`
1412// This is auto-generated. DO NOT EDIT.
1413
1414java_sdk_library_import {
1415 name: "mysdk_myjavalib@current",
1416 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001417 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001418 apex_available: ["//apex_available:anyapex"],
1419 shared_library: true,
1420 public: {
1421 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001422 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001423 current_api: "sdk_library/public/myjavalib.txt",
1424 removed_api: "sdk_library/public/myjavalib-removed.txt",
1425 sdk_version: "current",
1426 },
1427 system_server: {
1428 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001429 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001430 current_api: "sdk_library/system-server/myjavalib.txt",
1431 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1432 sdk_version: "system_server_current",
1433 },
1434}
1435
1436java_sdk_library_import {
1437 name: "myjavalib",
1438 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001439 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001440 apex_available: ["//apex_available:anyapex"],
1441 shared_library: true,
1442 public: {
1443 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001444 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001445 current_api: "sdk_library/public/myjavalib.txt",
1446 removed_api: "sdk_library/public/myjavalib-removed.txt",
1447 sdk_version: "current",
1448 },
1449 system_server: {
1450 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001451 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001452 current_api: "sdk_library/system-server/myjavalib.txt",
1453 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1454 sdk_version: "system_server_current",
1455 },
1456}
1457
1458sdk_snapshot {
1459 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001460 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001461 java_sdk_libs: ["mysdk_myjavalib@current"],
1462}
1463`),
1464 checkAllCopyRules(`
1465.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1466.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1467.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1468.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1469.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1470.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1471`),
1472 checkMergeZips(
1473 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1474 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1475 ),
1476 )
1477}
1478
Paul Duffinf7a64332020-05-13 16:54:55 +01001479func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1480 result := testSdkWithJava(t, `
1481 sdk {
1482 name: "mysdk",
1483 java_sdk_libs: ["myjavalib"],
1484 }
1485
1486 java_sdk_library {
1487 name: "myjavalib",
1488 apex_available: ["//apex_available:anyapex"],
1489 srcs: ["Test.java"],
1490 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001491 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001492 public: {
1493 enabled: true,
1494 },
1495 }
1496 `)
1497
1498 result.CheckSnapshot("mysdk", "",
1499 checkAndroidBpContents(`
1500// This is auto-generated. DO NOT EDIT.
1501
1502java_sdk_library_import {
1503 name: "mysdk_myjavalib@current",
1504 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001505 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001506 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001507 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001508 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001509 public: {
1510 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001511 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001512 current_api: "sdk_library/public/myjavalib.txt",
1513 removed_api: "sdk_library/public/myjavalib-removed.txt",
1514 sdk_version: "current",
1515 },
1516}
1517
1518java_sdk_library_import {
1519 name: "myjavalib",
1520 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001521 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001522 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001523 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001524 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001525 public: {
1526 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001527 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001528 current_api: "sdk_library/public/myjavalib.txt",
1529 removed_api: "sdk_library/public/myjavalib-removed.txt",
1530 sdk_version: "current",
1531 },
1532}
1533
1534sdk_snapshot {
1535 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001536 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001537 java_sdk_libs: ["mysdk_myjavalib@current"],
1538}
1539`),
1540 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001541.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1542.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1543.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001544`),
1545 checkMergeZips(
1546 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1547 ),
1548 )
1549}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001550
1551func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1552 result := testSdkWithJava(t, `
1553 sdk {
1554 name: "mysdk",
1555 java_sdk_libs: ["myjavalib"],
1556 }
1557
1558 java_sdk_library {
1559 name: "myjavalib",
1560 srcs: ["Test.java"],
1561 sdk_version: "current",
1562 public: {
1563 enabled: true,
1564 },
1565 doctag_files: ["docs/known_doctags"],
1566 }
1567
1568 filegroup {
1569 name: "mygroup",
1570 srcs: [":myjavalib{.doctags}"],
1571 }
1572 `)
1573
1574 result.CheckSnapshot("mysdk", "",
1575 checkAndroidBpContents(`
1576// This is auto-generated. DO NOT EDIT.
1577
1578java_sdk_library_import {
1579 name: "mysdk_myjavalib@current",
1580 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001581 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001582 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001583 shared_library: true,
1584 doctag_files: ["doctags/docs/known_doctags"],
1585 public: {
1586 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001587 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001588 current_api: "sdk_library/public/myjavalib.txt",
1589 removed_api: "sdk_library/public/myjavalib-removed.txt",
1590 sdk_version: "current",
1591 },
1592}
1593
1594java_sdk_library_import {
1595 name: "myjavalib",
1596 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001597 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001598 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001599 shared_library: true,
1600 doctag_files: ["doctags/docs/known_doctags"],
1601 public: {
1602 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001603 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001604 current_api: "sdk_library/public/myjavalib.txt",
1605 removed_api: "sdk_library/public/myjavalib-removed.txt",
1606 sdk_version: "current",
1607 },
1608}
1609
1610sdk_snapshot {
1611 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001612 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001613 java_sdk_libs: ["mysdk_myjavalib@current"],
1614}
1615`),
1616 checkAllCopyRules(`
1617.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1618.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1619.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1620docs/known_doctags -> doctags/docs/known_doctags
1621`),
1622 )
1623}