blob: 5d9aeb38ef9be094a5438f9f6ff6f3cbfcac6c10 [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 Duffind835daa2019-11-30 17:49:09 +0000638func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult {
639 t.Helper()
640
641 fs := map[string][]byte{
642 "foo/bar/Foo.java": nil,
643 "stubs-sources/foo/bar/Foo.java": nil,
644 }
645 return testSdkWithFs(t, bp, fs)
646}
647
Paul Duffina80fdec2019-12-03 15:25:00 +0000648// Note: This test does not verify that a droidstubs can be referenced, either
649// directly or indirectly from an APEX as droidstubs can never be a part of an
650// apex.
651func TestBasicSdkWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000652 testSdkWithDroidstubs(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000653 sdk {
654 name: "mysdk",
655 stubs_sources: ["mystub"],
656 }
657 sdk_snapshot {
658 name: "mysdk@10",
659 stubs_sources: ["mystub_mysdk@10"],
660 }
661 prebuilt_stubs_sources {
662 name: "mystub_mysdk@10",
663 sdk_member_name: "mystub",
664 srcs: ["stubs-sources/foo/bar/Foo.java"],
665 }
666 droidstubs {
667 name: "mystub",
668 srcs: ["foo/bar/Foo.java"],
669 sdk_version: "none",
670 system_modules: "none",
671 }
672 java_library {
673 name: "myjavalib",
674 srcs: [":mystub"],
675 sdk_version: "none",
676 system_modules: "none",
677 }
678 `)
679}
680
681func TestSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000682 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000683 module_exports {
684 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000685 stubs_sources: ["myjavaapistubs"],
686 }
687
688 droidstubs {
689 name: "myjavaapistubs",
690 srcs: ["foo/bar/Foo.java"],
691 system_modules: "none",
692 sdk_version: "none",
693 }
694 `)
695
Paul Duffin1356d8c2020-02-25 19:26:33 +0000696 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000697 checkAndroidBpContents(`
698// This is auto-generated. DO NOT EDIT.
699
700prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000701 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000702 sdk_member_name: "myjavaapistubs",
Paul Duffind99d9972020-09-29 16:00:55 +0100703 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000704 srcs: ["java/myjavaapistubs_stubs_sources"],
705}
706
707prebuilt_stubs_sources {
708 name: "myjavaapistubs",
709 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100710 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000711 srcs: ["java/myjavaapistubs_stubs_sources"],
712}
713
Paul Duffine6029182019-12-16 17:43:48 +0000714module_exports_snapshot {
715 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100716 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000717 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000718}
719
720`),
721 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100722 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000723 )
724}
725
726func TestHostSnapshotWithDroidstubs(t *testing.T) {
Paul Duffind835daa2019-11-30 17:49:09 +0000727 result := testSdkWithDroidstubs(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000728 module_exports {
729 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000730 device_supported: false,
731 host_supported: true,
732 stubs_sources: ["myjavaapistubs"],
733 }
734
735 droidstubs {
736 name: "myjavaapistubs",
737 device_supported: false,
738 host_supported: true,
739 srcs: ["foo/bar/Foo.java"],
740 system_modules: "none",
741 sdk_version: "none",
742 }
743 `)
744
Paul Duffin1356d8c2020-02-25 19:26:33 +0000745 result.CheckSnapshot("myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000746 checkAndroidBpContents(`
747// This is auto-generated. DO NOT EDIT.
748
749prebuilt_stubs_sources {
Paul Duffine6029182019-12-16 17:43:48 +0000750 name: "myexports_myjavaapistubs@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000751 sdk_member_name: "myjavaapistubs",
Paul Duffind99d9972020-09-29 16:00:55 +0100752 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000753 device_supported: false,
754 host_supported: true,
755 srcs: ["java/myjavaapistubs_stubs_sources"],
756}
757
758prebuilt_stubs_sources {
759 name: "myjavaapistubs",
760 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100761 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000762 device_supported: false,
763 host_supported: true,
764 srcs: ["java/myjavaapistubs_stubs_sources"],
765}
766
Paul Duffine6029182019-12-16 17:43:48 +0000767module_exports_snapshot {
768 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100769 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000770 device_supported: false,
771 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000772 stubs_sources: ["myexports_myjavaapistubs@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000773}
774`),
775 checkAllCopyRules(""),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100776 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"),
Paul Duffina80fdec2019-12-03 15:25:00 +0000777 )
778}
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000779
780func TestSnapshotWithJavaSystemModules(t *testing.T) {
781 result := testSdkWithJava(t, `
782 sdk {
783 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000784 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000785 java_system_modules: ["my-system-modules"],
786 }
787
788 java_system_modules {
789 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000790 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000791 }
792
793 java_library {
794 name: "system-module",
795 srcs: ["Test.java"],
796 sdk_version: "none",
797 system_modules: "none",
798 }
Paul Duffin72910952020-01-20 18:16:30 +0000799
800 java_library {
801 name: "exported-system-module",
802 srcs: ["Test.java"],
803 sdk_version: "none",
804 system_modules: "none",
805 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000806 `)
807
Paul Duffin1356d8c2020-02-25 19:26:33 +0000808 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000809 checkAndroidBpContents(`
810// This is auto-generated. DO NOT EDIT.
811
812java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000813 name: "mysdk_exported-system-module@current",
814 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100815 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000816 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000817 jars: ["java/exported-system-module.jar"],
818}
819
820java_import {
821 name: "exported-system-module",
822 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100823 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000824 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000825 jars: ["java/exported-system-module.jar"],
826}
827
828java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000829 name: "mysdk_system-module@current",
830 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000831 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000832 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000833 jars: ["java/system-module.jar"],
834}
835
836java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000837 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000838 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000839 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000840 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000841 jars: ["java/system-module.jar"],
842}
843
844java_system_modules_import {
845 name: "mysdk_my-system-modules@current",
846 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100847 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000848 libs: [
849 "mysdk_system-module@current",
850 "mysdk_exported-system-module@current",
851 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000852}
853
854java_system_modules_import {
855 name: "my-system-modules",
856 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100857 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000858 libs: [
859 "mysdk_system-module",
860 "exported-system-module",
861 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000862}
863
864sdk_snapshot {
865 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100866 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000867 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000868 java_system_modules: ["mysdk_my-system-modules@current"],
869}
870`),
Paul Duffin72910952020-01-20 18:16:30 +0000871 checkAllCopyRules(`
872.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
873.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
874`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000875 )
876}
877
878func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000879 result := testSdkWithJava(t, `
880 sdk {
881 name: "mysdk",
882 device_supported: false,
883 host_supported: true,
884 java_system_modules: ["my-system-modules"],
885 }
886
887 java_system_modules {
888 name: "my-system-modules",
889 device_supported: false,
890 host_supported: true,
891 libs: ["system-module"],
892 }
893
894 java_library {
895 name: "system-module",
896 device_supported: false,
897 host_supported: true,
898 srcs: ["Test.java"],
899 sdk_version: "none",
900 system_modules: "none",
901 }
902 `)
903
Paul Duffin1356d8c2020-02-25 19:26:33 +0000904 result.CheckSnapshot("mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000905 checkAndroidBpContents(`
906// This is auto-generated. DO NOT EDIT.
907
908java_import {
909 name: "mysdk_system-module@current",
910 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000911 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000912 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000913 device_supported: false,
914 host_supported: true,
915 jars: ["java/system-module.jar"],
916}
917
918java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000919 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000920 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000921 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000922 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000923 device_supported: false,
924 host_supported: true,
925 jars: ["java/system-module.jar"],
926}
927
928java_system_modules_import {
929 name: "mysdk_my-system-modules@current",
930 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100931 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000932 device_supported: false,
933 host_supported: true,
934 libs: ["mysdk_system-module@current"],
935}
936
937java_system_modules_import {
938 name: "my-system-modules",
939 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100940 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000941 device_supported: false,
942 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000943 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000944}
945
946sdk_snapshot {
947 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100948 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000949 device_supported: false,
950 host_supported: true,
951 java_system_modules: ["mysdk_my-system-modules@current"],
952}
953`),
954 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
955 )
956}
Paul Duffin865171e2020-03-02 18:38:15 +0000957
958func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin865171e2020-03-02 18:38:15 +0000959 result := testSdkWithJava(t, `
960 module_exports {
961 name: "myexports",
962 host_supported: true,
963 java_libs: ["myjavalib"],
964 target: {
965 android: {
966 java_header_libs: ["androidjavalib"],
967 },
968 host: {
969 java_header_libs: ["hostjavalib"],
970 },
971 },
972 }
973
974 java_library {
975 name: "myjavalib",
976 host_supported: true,
977 srcs: ["Test.java"],
978 system_modules: "none",
979 sdk_version: "none",
980 }
981
982 java_library {
983 name: "androidjavalib",
984 srcs: ["Test.java"],
985 system_modules: "none",
986 sdk_version: "none",
987 }
988
989 java_library_host {
990 name: "hostjavalib",
991 srcs: ["Test.java"],
992 }
993 `)
994
995 result.CheckSnapshot("myexports", "",
996 checkAndroidBpContents(`
997// This is auto-generated. DO NOT EDIT.
998
999java_import {
1000 name: "myexports_hostjavalib@current",
1001 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001002 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001003 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001004 device_supported: false,
1005 host_supported: true,
1006 jars: ["java/hostjavalib.jar"],
1007}
1008
1009java_import {
1010 name: "hostjavalib",
1011 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001012 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001013 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001014 device_supported: false,
1015 host_supported: true,
1016 jars: ["java/hostjavalib.jar"],
1017}
1018
1019java_import {
1020 name: "myexports_androidjavalib@current",
1021 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001022 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001023 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001024 jars: ["java/androidjavalib.jar"],
1025}
1026
1027java_import {
1028 name: "androidjavalib",
1029 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001030 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001031 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001032 jars: ["java/androidjavalib.jar"],
1033}
1034
1035java_import {
1036 name: "myexports_myjavalib@current",
1037 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001038 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001039 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001040 host_supported: true,
1041 target: {
1042 android: {
1043 jars: ["java/android/myjavalib.jar"],
1044 },
1045 linux_glibc: {
1046 jars: ["java/linux_glibc/myjavalib.jar"],
1047 },
1048 },
1049}
1050
1051java_import {
1052 name: "myjavalib",
1053 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001054 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001055 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001056 host_supported: true,
1057 target: {
1058 android: {
1059 jars: ["java/android/myjavalib.jar"],
1060 },
1061 linux_glibc: {
1062 jars: ["java/linux_glibc/myjavalib.jar"],
1063 },
1064 },
1065}
1066
1067module_exports_snapshot {
1068 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001069 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001070 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001071 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001072 target: {
1073 android: {
1074 java_header_libs: ["myexports_androidjavalib@current"],
1075 },
1076 linux_glibc: {
1077 java_header_libs: ["myexports_hostjavalib@current"],
1078 },
1079 },
Paul Duffin865171e2020-03-02 18:38:15 +00001080}
1081`),
1082 checkAllCopyRules(`
1083.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1084.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1085.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1086.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1087`),
1088 )
1089}
Paul Duffindd46f712020-02-10 13:37:10 +00001090
1091func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
1092 result := testSdkWithJava(t, `
1093 sdk {
1094 name: "mysdk",
1095 java_sdk_libs: ["myjavalib"],
1096 }
1097
1098 java_sdk_library {
1099 name: "myjavalib",
1100 apex_available: ["//apex_available:anyapex"],
1101 srcs: ["Test.java"],
1102 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001103 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001104 stubs_library_visibility: ["//other"],
1105 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001106 }
1107 `)
1108
1109 result.CheckSnapshot("mysdk", "",
1110 checkAndroidBpContents(`
1111// This is auto-generated. DO NOT EDIT.
1112
1113java_sdk_library_import {
1114 name: "mysdk_myjavalib@current",
1115 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001116 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001117 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001118 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001119 public: {
1120 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001121 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001122 current_api: "sdk_library/public/myjavalib.txt",
1123 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001124 sdk_version: "current",
1125 },
1126 system: {
1127 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001128 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001129 current_api: "sdk_library/system/myjavalib.txt",
1130 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001131 sdk_version: "system_current",
1132 },
1133 test: {
1134 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001135 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001136 current_api: "sdk_library/test/myjavalib.txt",
1137 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001138 sdk_version: "test_current",
1139 },
1140}
1141
1142java_sdk_library_import {
1143 name: "myjavalib",
1144 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001145 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001146 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001147 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001148 public: {
1149 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001150 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001151 current_api: "sdk_library/public/myjavalib.txt",
1152 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001153 sdk_version: "current",
1154 },
1155 system: {
1156 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001157 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001158 current_api: "sdk_library/system/myjavalib.txt",
1159 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001160 sdk_version: "system_current",
1161 },
1162 test: {
1163 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffin3d1248c2020-04-09 00:10:17 +01001164 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001165 current_api: "sdk_library/test/myjavalib.txt",
1166 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001167 sdk_version: "test_current",
1168 },
1169}
1170
1171sdk_snapshot {
1172 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001173 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001174 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
Paul Duffin1fd005d2020-04-09 01:08:11 +01001179.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 Duffindd46f712020-02-10 13:37:10 +00001181.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001182.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 +01001183.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 +00001184.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001185.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 +01001186.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 +00001187`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001188 checkMergeZips(
1189 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1190 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1191 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001192 )
1193}
Paul Duffin3375e352020-04-28 10:44:03 +01001194
Paul Duffin780c5f42020-05-12 15:52:55 +01001195func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
1196 result := testSdkWithJava(t, `
1197 sdk {
1198 name: "mysdk",
1199 java_sdk_libs: ["myjavalib"],
1200 }
1201
1202 java_sdk_library {
1203 name: "myjavalib",
1204 srcs: ["Test.java"],
1205 sdk_version: "none",
1206 system_modules: "none",
1207 }
1208 `)
1209
1210 result.CheckSnapshot("mysdk", "",
1211 checkAndroidBpContents(`
1212// This is auto-generated. DO NOT EDIT.
1213
1214java_sdk_library_import {
1215 name: "mysdk_myjavalib@current",
1216 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001217 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001218 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001219 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001220 public: {
1221 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1222 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1223 current_api: "sdk_library/public/myjavalib.txt",
1224 removed_api: "sdk_library/public/myjavalib-removed.txt",
1225 sdk_version: "none",
1226 },
1227}
1228
1229java_sdk_library_import {
1230 name: "myjavalib",
1231 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001232 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001233 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001234 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001235 public: {
1236 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1237 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1238 current_api: "sdk_library/public/myjavalib.txt",
1239 removed_api: "sdk_library/public/myjavalib-removed.txt",
1240 sdk_version: "none",
1241 },
1242}
1243
1244sdk_snapshot {
1245 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001246 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001247 java_sdk_libs: ["mysdk_myjavalib@current"],
1248}
1249`),
1250 checkAllCopyRules(`
1251.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1252.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001253.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001254`),
1255 checkMergeZips(
1256 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1257 ),
1258 )
1259}
1260
Paul Duffin87a05a32020-05-12 11:50:28 +01001261func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
1262 result := testSdkWithJava(t, `
1263 sdk {
1264 name: "mysdk",
1265 java_sdk_libs: ["myjavalib"],
1266 }
1267
1268 java_sdk_library {
1269 name: "myjavalib",
1270 srcs: ["Test.java"],
1271 sdk_version: "module_current",
1272 public: {
1273 enabled: true,
1274 sdk_version: "module_current",
1275 },
1276 }
1277 `)
1278
1279 result.CheckSnapshot("mysdk", "",
1280 checkAndroidBpContents(`
1281// This is auto-generated. DO NOT EDIT.
1282
1283java_sdk_library_import {
1284 name: "mysdk_myjavalib@current",
1285 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001286 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001287 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001288 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001289 public: {
1290 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1291 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1292 current_api: "sdk_library/public/myjavalib.txt",
1293 removed_api: "sdk_library/public/myjavalib-removed.txt",
1294 sdk_version: "module_current",
1295 },
1296}
1297
1298java_sdk_library_import {
1299 name: "myjavalib",
1300 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001301 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001302 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001303 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001304 public: {
1305 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1306 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1307 current_api: "sdk_library/public/myjavalib.txt",
1308 removed_api: "sdk_library/public/myjavalib-removed.txt",
1309 sdk_version: "module_current",
1310 },
1311}
1312
1313sdk_snapshot {
1314 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001315 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001316 java_sdk_libs: ["mysdk_myjavalib@current"],
1317}
1318`),
1319 checkAllCopyRules(`
1320.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1321.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001322.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001323`),
1324 checkMergeZips(
1325 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1326 ),
1327 )
1328}
1329
1330func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin3375e352020-04-28 10:44:03 +01001331 result := testSdkWithJava(t, `
1332 sdk {
1333 name: "mysdk",
1334 java_sdk_libs: ["myjavalib"],
1335 }
1336
1337 java_sdk_library {
1338 name: "myjavalib",
1339 apex_available: ["//apex_available:anyapex"],
1340 srcs: ["Test.java"],
1341 sdk_version: "current",
1342 public: {
1343 enabled: true,
1344 },
1345 system: {
1346 enabled: true,
1347 },
1348 }
1349 `)
1350
1351 result.CheckSnapshot("mysdk", "",
1352 checkAndroidBpContents(`
1353// This is auto-generated. DO NOT EDIT.
1354
1355java_sdk_library_import {
1356 name: "mysdk_myjavalib@current",
1357 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001358 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001359 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001360 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001361 public: {
1362 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1363 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1364 current_api: "sdk_library/public/myjavalib.txt",
1365 removed_api: "sdk_library/public/myjavalib-removed.txt",
1366 sdk_version: "current",
1367 },
1368 system: {
1369 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1370 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1371 current_api: "sdk_library/system/myjavalib.txt",
1372 removed_api: "sdk_library/system/myjavalib-removed.txt",
1373 sdk_version: "system_current",
1374 },
1375}
1376
1377java_sdk_library_import {
1378 name: "myjavalib",
1379 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001380 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001381 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001382 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001383 public: {
1384 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1385 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1386 current_api: "sdk_library/public/myjavalib.txt",
1387 removed_api: "sdk_library/public/myjavalib-removed.txt",
1388 sdk_version: "current",
1389 },
1390 system: {
1391 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1392 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1393 current_api: "sdk_library/system/myjavalib.txt",
1394 removed_api: "sdk_library/system/myjavalib-removed.txt",
1395 sdk_version: "system_current",
1396 },
1397}
1398
1399sdk_snapshot {
1400 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001401 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001402 java_sdk_libs: ["mysdk_myjavalib@current"],
1403}
1404`),
1405 checkAllCopyRules(`
1406.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1407.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001408.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001409.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1410.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 +01001411.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 +01001412`),
1413 checkMergeZips(
1414 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1415 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1416 ),
1417 )
1418}
Paul Duffin8f265b92020-04-28 14:13:56 +01001419
1420func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
1421 result := testSdkWithJava(t, `
1422 sdk {
1423 name: "mysdk",
1424 java_sdk_libs: ["myjavalib"],
1425 }
1426
1427 java_sdk_library {
1428 name: "myjavalib",
1429 apex_available: ["//apex_available:anyapex"],
1430 srcs: ["Test.java"],
1431 sdk_version: "current",
1432 public: {
1433 enabled: true,
1434 },
1435 system: {
1436 enabled: true,
1437 },
1438 module_lib: {
1439 enabled: true,
1440 },
1441 }
1442 `)
1443
1444 result.CheckSnapshot("mysdk", "",
1445 checkAndroidBpContents(`
1446// This is auto-generated. DO NOT EDIT.
1447
1448java_sdk_library_import {
1449 name: "mysdk_myjavalib@current",
1450 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001451 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001452 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001453 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001454 public: {
1455 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1456 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1457 current_api: "sdk_library/public/myjavalib.txt",
1458 removed_api: "sdk_library/public/myjavalib-removed.txt",
1459 sdk_version: "current",
1460 },
1461 system: {
1462 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1463 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1464 current_api: "sdk_library/system/myjavalib.txt",
1465 removed_api: "sdk_library/system/myjavalib-removed.txt",
1466 sdk_version: "system_current",
1467 },
1468 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001469 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1470 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1471 current_api: "sdk_library/module-lib/myjavalib.txt",
1472 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001473 sdk_version: "module_current",
1474 },
1475}
1476
1477java_sdk_library_import {
1478 name: "myjavalib",
1479 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001480 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001481 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001482 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001483 public: {
1484 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1485 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1486 current_api: "sdk_library/public/myjavalib.txt",
1487 removed_api: "sdk_library/public/myjavalib-removed.txt",
1488 sdk_version: "current",
1489 },
1490 system: {
1491 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1492 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1493 current_api: "sdk_library/system/myjavalib.txt",
1494 removed_api: "sdk_library/system/myjavalib-removed.txt",
1495 sdk_version: "system_current",
1496 },
1497 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001498 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
1499 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
1500 current_api: "sdk_library/module-lib/myjavalib.txt",
1501 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001502 sdk_version: "module_current",
1503 },
1504}
1505
1506sdk_snapshot {
1507 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001508 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001509 java_sdk_libs: ["mysdk_myjavalib@current"],
1510}
1511`),
1512 checkAllCopyRules(`
1513.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1514.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001515.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001516.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1517.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 +01001518.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 +01001519.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 +01001520.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1521.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 +01001522`),
1523 checkMergeZips(
1524 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1525 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001526 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001527 ),
1528 )
1529}
Paul Duffinf7a64332020-05-13 16:54:55 +01001530
Paul Duffin0c5bae52020-06-02 13:00:08 +01001531func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
1532 result := testSdkWithJava(t, `
1533 sdk {
1534 name: "mysdk",
1535 java_sdk_libs: ["myjavalib"],
1536 }
1537
1538 java_sdk_library {
1539 name: "myjavalib",
1540 apex_available: ["//apex_available:anyapex"],
1541 srcs: ["Test.java"],
1542 sdk_version: "current",
1543 public: {
1544 enabled: true,
1545 },
1546 system_server: {
1547 enabled: true,
1548 },
1549 }
1550 `)
1551
1552 result.CheckSnapshot("mysdk", "",
1553 checkAndroidBpContents(`
1554// This is auto-generated. DO NOT EDIT.
1555
1556java_sdk_library_import {
1557 name: "mysdk_myjavalib@current",
1558 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001559 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001560 apex_available: ["//apex_available:anyapex"],
1561 shared_library: true,
1562 public: {
1563 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1564 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1565 current_api: "sdk_library/public/myjavalib.txt",
1566 removed_api: "sdk_library/public/myjavalib-removed.txt",
1567 sdk_version: "current",
1568 },
1569 system_server: {
1570 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1571 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1572 current_api: "sdk_library/system-server/myjavalib.txt",
1573 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1574 sdk_version: "system_server_current",
1575 },
1576}
1577
1578java_sdk_library_import {
1579 name: "myjavalib",
1580 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001581 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001582 apex_available: ["//apex_available:anyapex"],
1583 shared_library: true,
1584 public: {
1585 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1586 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1587 current_api: "sdk_library/public/myjavalib.txt",
1588 removed_api: "sdk_library/public/myjavalib-removed.txt",
1589 sdk_version: "current",
1590 },
1591 system_server: {
1592 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
1593 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
1594 current_api: "sdk_library/system-server/myjavalib.txt",
1595 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1596 sdk_version: "system_server_current",
1597 },
1598}
1599
1600sdk_snapshot {
1601 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001602 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001603 java_sdk_libs: ["mysdk_myjavalib@current"],
1604}
1605`),
1606 checkAllCopyRules(`
1607.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1608.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1609.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1610.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1611.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1612.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1613`),
1614 checkMergeZips(
1615 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1616 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1617 ),
1618 )
1619}
1620
Paul Duffinf7a64332020-05-13 16:54:55 +01001621func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
1622 result := testSdkWithJava(t, `
1623 sdk {
1624 name: "mysdk",
1625 java_sdk_libs: ["myjavalib"],
1626 }
1627
1628 java_sdk_library {
1629 name: "myjavalib",
1630 apex_available: ["//apex_available:anyapex"],
1631 srcs: ["Test.java"],
1632 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001633 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001634 public: {
1635 enabled: true,
1636 },
1637 }
1638 `)
1639
1640 result.CheckSnapshot("mysdk", "",
1641 checkAndroidBpContents(`
1642// This is auto-generated. DO NOT EDIT.
1643
1644java_sdk_library_import {
1645 name: "mysdk_myjavalib@current",
1646 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001647 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001648 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001649 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001650 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001651 public: {
1652 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1653 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1654 current_api: "sdk_library/public/myjavalib.txt",
1655 removed_api: "sdk_library/public/myjavalib-removed.txt",
1656 sdk_version: "current",
1657 },
1658}
1659
1660java_sdk_library_import {
1661 name: "myjavalib",
1662 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001663 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001664 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001665 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001666 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001667 public: {
1668 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1669 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1670 current_api: "sdk_library/public/myjavalib.txt",
1671 removed_api: "sdk_library/public/myjavalib-removed.txt",
1672 sdk_version: "current",
1673 },
1674}
1675
1676sdk_snapshot {
1677 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001678 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001679 java_sdk_libs: ["mysdk_myjavalib@current"],
1680}
1681`),
1682 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001683.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1684.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1685.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001686`),
1687 checkMergeZips(
1688 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1689 ),
1690 )
1691}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001692
1693func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
1694 result := testSdkWithJava(t, `
1695 sdk {
1696 name: "mysdk",
1697 java_sdk_libs: ["myjavalib"],
1698 }
1699
1700 java_sdk_library {
1701 name: "myjavalib",
1702 srcs: ["Test.java"],
1703 sdk_version: "current",
1704 public: {
1705 enabled: true,
1706 },
1707 doctag_files: ["docs/known_doctags"],
1708 }
1709
1710 filegroup {
1711 name: "mygroup",
1712 srcs: [":myjavalib{.doctags}"],
1713 }
1714 `)
1715
1716 result.CheckSnapshot("mysdk", "",
1717 checkAndroidBpContents(`
1718// This is auto-generated. DO NOT EDIT.
1719
1720java_sdk_library_import {
1721 name: "mysdk_myjavalib@current",
1722 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001723 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001724 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001725 shared_library: true,
1726 doctag_files: ["doctags/docs/known_doctags"],
1727 public: {
1728 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1729 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1730 current_api: "sdk_library/public/myjavalib.txt",
1731 removed_api: "sdk_library/public/myjavalib-removed.txt",
1732 sdk_version: "current",
1733 },
1734}
1735
1736java_sdk_library_import {
1737 name: "myjavalib",
1738 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001739 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001740 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001741 shared_library: true,
1742 doctag_files: ["doctags/docs/known_doctags"],
1743 public: {
1744 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1745 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1746 current_api: "sdk_library/public/myjavalib.txt",
1747 removed_api: "sdk_library/public/myjavalib-removed.txt",
1748 sdk_version: "current",
1749 },
1750}
1751
1752sdk_snapshot {
1753 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001754 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001755 java_sdk_libs: ["mysdk_myjavalib@current"],
1756}
1757`),
1758 checkAllCopyRules(`
1759.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1760.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1761.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1762docs/known_doctags -> doctags/docs/known_doctags
1763`),
1764 )
1765}