blob: 6f78ded35a10c9ebeb94f7af214ecc9e1e110993 [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
Paul Duffin4a2a29c2021-03-09 22:27:13 +000020 "android/soong/android"
Paul Duffincee7e662020-07-09 17:32:57 +010021 "android/soong/java"
Paul Duffina80fdec2019-12-03 15:25:00 +000022)
23
Paul Duffind14cbc12021-03-18 09:14:23 +000024var prepareForSdkTestWithJava = android.GroupFixturePreparers(
25 java.PrepareForTestWithJavaBuildComponents,
26 PrepareForTestWithSdkBuildComponents,
27)
28
Paul Duffin9ec86b12021-03-15 11:17:52 +000029var prepareForSdkTestWithJavaSdkLibrary = android.GroupFixturePreparers(
30 prepareForSdkTestWithJava,
31 java.PrepareForTestWithJavaDefaultModules,
32 java.PrepareForTestWithJavaSdkLibraryFiles,
33 java.FixtureWithLastReleaseApis("myjavalib"),
34)
35
Paul Duffina80fdec2019-12-03 15:25:00 +000036// Contains tests for SDK members provided by the java package.
37
Paul Duffincee7e662020-07-09 17:32:57 +010038func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000039 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +010040 sdk {
41 name: "mysdk",
42 java_header_libs: ["sdkmember"],
43 }
44
45 java_library {
46 name: "sdkmember",
47 srcs: ["Test.java"],
48 system_modules: "none",
49 sdk_version: "none",
50 }
Paul Duffincee7e662020-07-09 17:32:57 +010051 `)
52
53 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin1822a0a2021-03-21 12:56:33 +000054 sdkChecker := func(t *testing.T, result *android.TestResult) {
55 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
56 }
Paul Duffincee7e662020-07-09 17:32:57 +010057
Paul Duffin36474d32021-03-12 12:19:43 +000058 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin1822a0a2021-03-21 12:56:33 +000059 snapshotTestChecker(checkSnapshotWithSourcePreferred, sdkChecker),
60 snapshotTestChecker(checkSnapshotPreferredWithSource, sdkChecker),
61 )
Paul Duffincee7e662020-07-09 17:32:57 +010062}
63
Paul Duffina80fdec2019-12-03 15:25:00 +000064func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000065 result := android.GroupFixturePreparers(
66 prepareForSdkTestWithJava,
67 prepareForSdkTestWithApex,
68 ).RunTestWithBp(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +000069 sdk {
70 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +090071 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +000072 }
73
74 sdk_snapshot {
75 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +000076 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +000077 }
78
79 sdk_snapshot {
80 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +000081 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +000082 }
83
Jiyong Park0f80c182020-01-31 02:49:53 +090084 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +000085 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +090086 srcs: ["Test.java"],
87 system_modules: "none",
88 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +000089 host_supported: true,
90 }
91
92 java_import {
93 name: "sdkmember_mysdk_1",
94 sdk_member_name: "sdkmember",
95 host_supported: true,
96 }
97
98 java_import {
99 name: "sdkmember_mysdk_2",
100 sdk_member_name: "sdkmember",
101 host_supported: true,
102 }
103
104 java_library {
105 name: "myjavalib",
106 srcs: ["Test.java"],
107 libs: ["sdkmember"],
108 system_modules: "none",
109 sdk_version: "none",
110 compile_dex: true,
111 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000112 apex_available: [
113 "myapex",
114 "myapex2",
115 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000116 }
117
118 apex {
119 name: "myapex",
120 java_libs: ["myjavalib"],
121 uses_sdks: ["mysdk@1"],
122 key: "myapex.key",
123 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000124 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000125 }
126
127 apex {
128 name: "myapex2",
129 java_libs: ["myjavalib"],
130 uses_sdks: ["mysdk@2"],
131 key: "myapex.key",
132 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000133 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000134 }
135 `)
136
Paul Duffin8306f252021-03-11 12:18:24 +0000137 sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
138 sdkMemberV2 := result.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000139
Paul Duffin8306f252021-03-11 12:18:24 +0000140 javalibForMyApex := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
141 javalibForMyApex2 := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000142
143 // Depending on the uses_sdks value, different libs are linked
144 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
145 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
146}
147
Paul Duffina0dbf432019-12-05 11:25:53 +0000148func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000149 result := android.GroupFixturePreparers(
150 prepareForSdkTestWithJava,
151 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
152 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000153 sdk {
154 name: "mysdk",
155 java_header_libs: ["myjavalib"],
156 }
157
158 java_library {
159 name: "myjavalib",
160 srcs: ["Test.java"],
161 aidl: {
162 export_include_dirs: ["aidl"],
163 },
164 system_modules: "none",
165 sdk_version: "none",
166 compile_dex: true,
167 host_supported: true,
168 }
169 `)
170
Paul Duffin36474d32021-03-12 12:19:43 +0000171 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000172 checkAndroidBpContents(`
173// This is auto-generated. DO NOT EDIT.
174
175java_import {
176 name: "mysdk_myjavalib@current",
177 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100178 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000179 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000180 jars: ["java/myjavalib.jar"],
181}
182
183java_import {
184 name: "myjavalib",
185 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100186 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000187 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000188 jars: ["java/myjavalib.jar"],
189}
190
191sdk_snapshot {
192 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100193 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000194 java_header_libs: ["mysdk_myjavalib@current"],
195}
196
197`),
198 checkAllCopyRules(`
199.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
200aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
201`),
202 )
203}
204
205func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000206 result := android.GroupFixturePreparers(
207 prepareForSdkTestWithJava,
208 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
209 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000210 sdk {
211 name: "mysdk",
212 device_supported: false,
213 host_supported: true,
214 java_header_libs: ["myjavalib"],
215 }
216
217 java_library {
218 name: "myjavalib",
219 device_supported: false,
220 host_supported: true,
221 srcs: ["Test.java"],
222 aidl: {
223 export_include_dirs: ["aidl"],
224 },
225 system_modules: "none",
226 sdk_version: "none",
227 compile_dex: true,
228 }
229 `)
230
Paul Duffin36474d32021-03-12 12:19:43 +0000231 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000232 checkAndroidBpContents(`
233// This is auto-generated. DO NOT EDIT.
234
235java_import {
236 name: "mysdk_myjavalib@current",
237 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100238 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000239 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000240 device_supported: false,
241 host_supported: true,
242 jars: ["java/myjavalib.jar"],
243}
244
245java_import {
246 name: "myjavalib",
247 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100248 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000249 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000250 device_supported: false,
251 host_supported: true,
252 jars: ["java/myjavalib.jar"],
253}
254
255sdk_snapshot {
256 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100257 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000258 device_supported: false,
259 host_supported: true,
260 java_header_libs: ["mysdk_myjavalib@current"],
261}
262`),
263 checkAllCopyRules(`
264.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
265aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
266`),
267 )
268}
269
Paul Duffina04c1072020-03-02 10:16:35 +0000270func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000271 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000272 sdk {
273 name: "mysdk",
274 host_supported: true,
275 java_header_libs: ["myjavalib"],
276 }
277
278 java_library {
279 name: "myjavalib",
280 host_supported: true,
281 srcs: ["Test.java"],
282 system_modules: "none",
283 sdk_version: "none",
284 compile_dex: true,
285 }
286 `)
287
Paul Duffin36474d32021-03-12 12:19:43 +0000288 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina04c1072020-03-02 10:16:35 +0000289 checkAndroidBpContents(`
290// This is auto-generated. DO NOT EDIT.
291
292java_import {
293 name: "mysdk_myjavalib@current",
294 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100295 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000296 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000297 host_supported: true,
298 target: {
299 android: {
300 jars: ["java/android/myjavalib.jar"],
301 },
302 linux_glibc: {
303 jars: ["java/linux_glibc/myjavalib.jar"],
304 },
305 },
306}
307
308java_import {
309 name: "myjavalib",
310 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100311 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000312 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000313 host_supported: true,
314 target: {
315 android: {
316 jars: ["java/android/myjavalib.jar"],
317 },
318 linux_glibc: {
319 jars: ["java/linux_glibc/myjavalib.jar"],
320 },
321 },
322}
323
324sdk_snapshot {
325 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100326 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000327 host_supported: true,
328 java_header_libs: ["mysdk_myjavalib@current"],
329}
330`),
331 checkAllCopyRules(`
332.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
333.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
334`),
335 )
336}
337
Paul Duffina0dbf432019-12-05 11:25:53 +0000338func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000339 result := android.GroupFixturePreparers(
340 prepareForSdkTestWithJava,
341 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
342 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000343 module_exports {
344 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000345 java_libs: ["myjavalib"],
346 }
347
348 java_library {
349 name: "myjavalib",
350 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100351 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000352 aidl: {
353 export_include_dirs: ["aidl"],
354 },
355 system_modules: "none",
356 sdk_version: "none",
357 compile_dex: true,
358 host_supported: true,
359 }
360 `)
361
Paul Duffin36474d32021-03-12 12:19:43 +0000362 CheckSnapshot(t, result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000363 checkAndroidBpContents(`
364// This is auto-generated. DO NOT EDIT.
365
366java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000367 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000368 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100369 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000370 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000371 jars: ["java/myjavalib.jar"],
372}
373
374java_import {
375 name: "myjavalib",
376 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100377 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000378 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000379 jars: ["java/myjavalib.jar"],
380}
381
Paul Duffine6029182019-12-16 17:43:48 +0000382module_exports_snapshot {
383 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100384 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000385 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000386}
387
388`),
389 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100390.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000391aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
392`),
393 )
394}
395
Paul Duffindb170e42020-12-08 17:48:25 +0000396func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000397 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffindb170e42020-12-08 17:48:25 +0000398 module_exports {
399 name: "myexports",
400 java_boot_libs: ["myjavalib"],
401 }
402
403 java_library {
404 name: "myjavalib",
405 srcs: ["Test.java"],
406 java_resources: ["resource.txt"],
407 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
408 // intended to be used for compiling Java, only for accessing the dex implementation jar.
409 aidl: {
410 export_include_dirs: ["aidl"],
411 },
412 system_modules: "none",
413 sdk_version: "none",
414 compile_dex: true,
415 }
416 `)
417
Paul Duffin36474d32021-03-12 12:19:43 +0000418 CheckSnapshot(t, result, "myexports", "",
Paul Duffindb170e42020-12-08 17:48:25 +0000419 checkAndroidBpContents(`
420// This is auto-generated. DO NOT EDIT.
421
422java_import {
423 name: "myexports_myjavalib@current",
424 sdk_member_name: "myjavalib",
425 visibility: ["//visibility:public"],
426 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000427 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000428}
429
430java_import {
431 name: "myjavalib",
432 prefer: false,
433 visibility: ["//visibility:public"],
434 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000435 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000436}
437
438module_exports_snapshot {
439 name: "myexports@current",
440 visibility: ["//visibility:public"],
441 java_boot_libs: ["myexports_myjavalib@current"],
442}
Paul Duffindb170e42020-12-08 17:48:25 +0000443`),
444 checkAllCopyRules(`
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000445.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000446`),
447 )
448}
449
Paul Duffina0dbf432019-12-05 11:25:53 +0000450func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000451 result := android.GroupFixturePreparers(
452 prepareForSdkTestWithJava,
453 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
454 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000455 module_exports {
456 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000457 device_supported: false,
458 host_supported: true,
459 java_libs: ["myjavalib"],
460 }
461
462 java_library {
463 name: "myjavalib",
464 device_supported: false,
465 host_supported: true,
466 srcs: ["Test.java"],
467 aidl: {
468 export_include_dirs: ["aidl"],
469 },
470 system_modules: "none",
471 sdk_version: "none",
472 compile_dex: true,
473 }
474 `)
475
Paul Duffin36474d32021-03-12 12:19:43 +0000476 CheckSnapshot(t, result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000477 checkAndroidBpContents(`
478// This is auto-generated. DO NOT EDIT.
479
480java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000481 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000482 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100483 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000484 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000485 device_supported: false,
486 host_supported: true,
487 jars: ["java/myjavalib.jar"],
488}
489
490java_import {
491 name: "myjavalib",
492 prefer: false,
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
Paul Duffine6029182019-12-16 17:43:48 +0000500module_exports_snapshot {
501 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100502 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000503 device_supported: false,
504 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000505 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000506}
507`),
508 checkAllCopyRules(`
509.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
510aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
511`),
512 )
513}
514
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000515func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000516 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000517 module_exports {
518 name: "myexports",
519 java_tests: ["myjavatests"],
520 }
521
522 java_test {
523 name: "myjavatests",
524 srcs: ["Test.java"],
525 system_modules: "none",
526 sdk_version: "none",
527 compile_dex: true,
528 host_supported: true,
529 }
530 `)
531
Paul Duffin36474d32021-03-12 12:19:43 +0000532 CheckSnapshot(t, result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000533 checkAndroidBpContents(`
534// This is auto-generated. DO NOT EDIT.
535
536java_test_import {
537 name: "myexports_myjavatests@current",
538 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100539 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000540 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000541 jars: ["java/myjavatests.jar"],
542 test_config: "java/myjavatests-AndroidTest.xml",
543}
544
545java_test_import {
546 name: "myjavatests",
547 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100548 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000549 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000550 jars: ["java/myjavatests.jar"],
551 test_config: "java/myjavatests-AndroidTest.xml",
552}
553
554module_exports_snapshot {
555 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100556 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000557 java_tests: ["myexports_myjavatests@current"],
558}
559`),
560 checkAllCopyRules(`
561.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
562.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
563`),
564 )
565}
566
567func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000568 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000569 module_exports {
570 name: "myexports",
571 device_supported: false,
572 host_supported: true,
573 java_tests: ["myjavatests"],
574 }
575
576 java_test {
577 name: "myjavatests",
578 device_supported: false,
579 host_supported: true,
580 srcs: ["Test.java"],
581 system_modules: "none",
582 sdk_version: "none",
583 compile_dex: true,
584 }
585 `)
586
Paul Duffin36474d32021-03-12 12:19:43 +0000587 CheckSnapshot(t, result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000588 checkAndroidBpContents(`
589// This is auto-generated. DO NOT EDIT.
590
591java_test_import {
592 name: "myexports_myjavatests@current",
593 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100594 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000595 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000596 device_supported: false,
597 host_supported: true,
598 jars: ["java/myjavatests.jar"],
599 test_config: "java/myjavatests-AndroidTest.xml",
600}
601
602java_test_import {
603 name: "myjavatests",
604 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100605 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000606 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000607 device_supported: false,
608 host_supported: true,
609 jars: ["java/myjavatests.jar"],
610 test_config: "java/myjavatests-AndroidTest.xml",
611}
612
613module_exports_snapshot {
614 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100615 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000616 device_supported: false,
617 host_supported: true,
618 java_tests: ["myexports_myjavatests@current"],
619}
620`),
621 checkAllCopyRules(`
622.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
623.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
624`),
625 )
626}
627
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000628func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000629 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000630 sdk {
631 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000632 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000633 java_system_modules: ["my-system-modules"],
634 }
635
636 java_system_modules {
637 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000638 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000639 }
640
641 java_library {
642 name: "system-module",
643 srcs: ["Test.java"],
644 sdk_version: "none",
645 system_modules: "none",
646 }
Paul Duffin72910952020-01-20 18:16:30 +0000647
648 java_library {
649 name: "exported-system-module",
650 srcs: ["Test.java"],
651 sdk_version: "none",
652 system_modules: "none",
653 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000654 `)
655
Paul Duffin36474d32021-03-12 12:19:43 +0000656 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000657 checkAndroidBpContents(`
658// This is auto-generated. DO NOT EDIT.
659
660java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000661 name: "mysdk_exported-system-module@current",
662 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100663 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000664 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000665 jars: ["java/exported-system-module.jar"],
666}
667
668java_import {
669 name: "exported-system-module",
670 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100671 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000672 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000673 jars: ["java/exported-system-module.jar"],
674}
675
676java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000677 name: "mysdk_system-module@current",
678 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000679 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000680 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000681 jars: ["java/system-module.jar"],
682}
683
684java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000685 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000686 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000687 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000688 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000689 jars: ["java/system-module.jar"],
690}
691
692java_system_modules_import {
693 name: "mysdk_my-system-modules@current",
694 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100695 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000696 libs: [
697 "mysdk_system-module@current",
698 "mysdk_exported-system-module@current",
699 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000700}
701
702java_system_modules_import {
703 name: "my-system-modules",
704 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100705 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000706 libs: [
707 "mysdk_system-module",
708 "exported-system-module",
709 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000710}
711
712sdk_snapshot {
713 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100714 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000715 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000716 java_system_modules: ["mysdk_my-system-modules@current"],
717}
718`),
Paul Duffin72910952020-01-20 18:16:30 +0000719 checkAllCopyRules(`
720.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
721.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
722`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000723 )
724}
725
726func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000727 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000728 sdk {
729 name: "mysdk",
730 device_supported: false,
731 host_supported: true,
732 java_system_modules: ["my-system-modules"],
733 }
734
735 java_system_modules {
736 name: "my-system-modules",
737 device_supported: false,
738 host_supported: true,
739 libs: ["system-module"],
740 }
741
742 java_library {
743 name: "system-module",
744 device_supported: false,
745 host_supported: true,
746 srcs: ["Test.java"],
747 sdk_version: "none",
748 system_modules: "none",
749 }
750 `)
751
Paul Duffin36474d32021-03-12 12:19:43 +0000752 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000753 checkAndroidBpContents(`
754// This is auto-generated. DO NOT EDIT.
755
756java_import {
757 name: "mysdk_system-module@current",
758 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000759 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000760 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000761 device_supported: false,
762 host_supported: true,
763 jars: ["java/system-module.jar"],
764}
765
766java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000767 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000768 prefer: false,
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_system_modules_import {
777 name: "mysdk_my-system-modules@current",
778 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100779 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000780 device_supported: false,
781 host_supported: true,
782 libs: ["mysdk_system-module@current"],
783}
784
785java_system_modules_import {
786 name: "my-system-modules",
787 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100788 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000789 device_supported: false,
790 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000791 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000792}
793
794sdk_snapshot {
795 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100796 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000797 device_supported: false,
798 host_supported: true,
799 java_system_modules: ["mysdk_my-system-modules@current"],
800}
801`),
802 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
803 )
804}
Paul Duffin865171e2020-03-02 18:38:15 +0000805
806func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000807 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000808 module_exports {
809 name: "myexports",
810 host_supported: true,
811 java_libs: ["myjavalib"],
812 target: {
813 android: {
814 java_header_libs: ["androidjavalib"],
815 },
816 host: {
817 java_header_libs: ["hostjavalib"],
818 },
819 },
820 }
821
822 java_library {
823 name: "myjavalib",
824 host_supported: true,
825 srcs: ["Test.java"],
826 system_modules: "none",
827 sdk_version: "none",
828 }
829
830 java_library {
831 name: "androidjavalib",
832 srcs: ["Test.java"],
833 system_modules: "none",
834 sdk_version: "none",
835 }
836
837 java_library_host {
838 name: "hostjavalib",
839 srcs: ["Test.java"],
840 }
841 `)
842
Paul Duffin36474d32021-03-12 12:19:43 +0000843 CheckSnapshot(t, result, "myexports", "",
Paul Duffin865171e2020-03-02 18:38:15 +0000844 checkAndroidBpContents(`
845// This is auto-generated. DO NOT EDIT.
846
847java_import {
848 name: "myexports_hostjavalib@current",
849 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100850 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000851 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000852 device_supported: false,
853 host_supported: true,
854 jars: ["java/hostjavalib.jar"],
855}
856
857java_import {
858 name: "hostjavalib",
859 prefer: false,
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: "myexports_androidjavalib@current",
869 sdk_member_name: "androidjavalib",
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 jars: ["java/androidjavalib.jar"],
873}
874
875java_import {
876 name: "androidjavalib",
877 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100878 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000879 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000880 jars: ["java/androidjavalib.jar"],
881}
882
883java_import {
884 name: "myexports_myjavalib@current",
885 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100886 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000887 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000888 host_supported: true,
889 target: {
890 android: {
891 jars: ["java/android/myjavalib.jar"],
892 },
893 linux_glibc: {
894 jars: ["java/linux_glibc/myjavalib.jar"],
895 },
896 },
897}
898
899java_import {
900 name: "myjavalib",
901 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100902 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000903 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000904 host_supported: true,
905 target: {
906 android: {
907 jars: ["java/android/myjavalib.jar"],
908 },
909 linux_glibc: {
910 jars: ["java/linux_glibc/myjavalib.jar"],
911 },
912 },
913}
914
915module_exports_snapshot {
916 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100917 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +0000918 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +0000919 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +0000920 target: {
921 android: {
922 java_header_libs: ["myexports_androidjavalib@current"],
923 },
924 linux_glibc: {
925 java_header_libs: ["myexports_hostjavalib@current"],
926 },
927 },
Paul Duffin865171e2020-03-02 18:38:15 +0000928}
929`),
930 checkAllCopyRules(`
931.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
932.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
933.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
934.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
935`),
936 )
937}
Paul Duffindd46f712020-02-10 13:37:10 +0000938
939func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000940 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +0000941 sdk {
942 name: "mysdk",
943 java_sdk_libs: ["myjavalib"],
944 }
945
946 java_sdk_library {
947 name: "myjavalib",
948 apex_available: ["//apex_available:anyapex"],
949 srcs: ["Test.java"],
950 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100951 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100952 stubs_library_visibility: ["//other"],
953 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +0000954 }
955 `)
956
Paul Duffin36474d32021-03-12 12:19:43 +0000957 CheckSnapshot(t, result, "mysdk", "",
Paul Duffindd46f712020-02-10 13:37:10 +0000958 checkAndroidBpContents(`
959// This is auto-generated. DO NOT EDIT.
960
961java_sdk_library_import {
962 name: "mysdk_myjavalib@current",
963 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100964 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000965 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100966 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +0000967 public: {
968 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000969 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100970 current_api: "sdk_library/public/myjavalib.txt",
971 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000972 sdk_version: "current",
973 },
974 system: {
975 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000976 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100977 current_api: "sdk_library/system/myjavalib.txt",
978 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000979 sdk_version: "system_current",
980 },
981 test: {
982 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000983 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100984 current_api: "sdk_library/test/myjavalib.txt",
985 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000986 sdk_version: "test_current",
987 },
988}
989
990java_sdk_library_import {
991 name: "myjavalib",
992 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100993 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000994 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100995 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +0000996 public: {
997 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000998 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100999 current_api: "sdk_library/public/myjavalib.txt",
1000 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001001 sdk_version: "current",
1002 },
1003 system: {
1004 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001005 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001006 current_api: "sdk_library/system/myjavalib.txt",
1007 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001008 sdk_version: "system_current",
1009 },
1010 test: {
1011 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001012 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001013 current_api: "sdk_library/test/myjavalib.txt",
1014 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001015 sdk_version: "test_current",
1016 },
1017}
1018
1019sdk_snapshot {
1020 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001021 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001022 java_sdk_libs: ["mysdk_myjavalib@current"],
1023}
1024`),
1025 checkAllCopyRules(`
1026.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001027.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001028.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001029.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001030.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 +01001031.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 +00001032.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001033.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 +01001034.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 +00001035`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001036 checkMergeZips(
1037 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1038 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1039 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001040 )
1041}
Paul Duffin3375e352020-04-28 10:44:03 +01001042
Paul Duffin780c5f42020-05-12 15:52:55 +01001043func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001044 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001045 sdk {
1046 name: "mysdk",
1047 java_sdk_libs: ["myjavalib"],
1048 }
1049
1050 java_sdk_library {
1051 name: "myjavalib",
1052 srcs: ["Test.java"],
1053 sdk_version: "none",
1054 system_modules: "none",
1055 }
1056 `)
1057
Paul Duffin36474d32021-03-12 12:19:43 +00001058 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin780c5f42020-05-12 15:52:55 +01001059 checkAndroidBpContents(`
1060// This is auto-generated. DO NOT EDIT.
1061
1062java_sdk_library_import {
1063 name: "mysdk_myjavalib@current",
1064 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001065 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001066 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001067 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001068 public: {
1069 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001070 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001071 current_api: "sdk_library/public/myjavalib.txt",
1072 removed_api: "sdk_library/public/myjavalib-removed.txt",
1073 sdk_version: "none",
1074 },
1075}
1076
1077java_sdk_library_import {
1078 name: "myjavalib",
1079 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001080 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001081 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001082 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001083 public: {
1084 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001085 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001086 current_api: "sdk_library/public/myjavalib.txt",
1087 removed_api: "sdk_library/public/myjavalib-removed.txt",
1088 sdk_version: "none",
1089 },
1090}
1091
1092sdk_snapshot {
1093 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001094 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001095 java_sdk_libs: ["mysdk_myjavalib@current"],
1096}
1097`),
1098 checkAllCopyRules(`
1099.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1100.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001101.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001102`),
1103 checkMergeZips(
1104 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1105 ),
1106 )
1107}
1108
Paul Duffin87a05a32020-05-12 11:50:28 +01001109func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001110 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001111 sdk {
1112 name: "mysdk",
1113 java_sdk_libs: ["myjavalib"],
1114 }
1115
1116 java_sdk_library {
1117 name: "myjavalib",
1118 srcs: ["Test.java"],
1119 sdk_version: "module_current",
1120 public: {
1121 enabled: true,
1122 sdk_version: "module_current",
1123 },
1124 }
1125 `)
1126
Paul Duffin36474d32021-03-12 12:19:43 +00001127 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin87a05a32020-05-12 11:50:28 +01001128 checkAndroidBpContents(`
1129// This is auto-generated. DO NOT EDIT.
1130
1131java_sdk_library_import {
1132 name: "mysdk_myjavalib@current",
1133 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001134 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001135 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001136 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001137 public: {
1138 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001139 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001140 current_api: "sdk_library/public/myjavalib.txt",
1141 removed_api: "sdk_library/public/myjavalib-removed.txt",
1142 sdk_version: "module_current",
1143 },
1144}
1145
1146java_sdk_library_import {
1147 name: "myjavalib",
1148 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001149 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001150 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001151 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001152 public: {
1153 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001154 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001155 current_api: "sdk_library/public/myjavalib.txt",
1156 removed_api: "sdk_library/public/myjavalib-removed.txt",
1157 sdk_version: "module_current",
1158 },
1159}
1160
1161sdk_snapshot {
1162 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001163 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001164 java_sdk_libs: ["mysdk_myjavalib@current"],
1165}
1166`),
1167 checkAllCopyRules(`
1168.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1169.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001170.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001171`),
1172 checkMergeZips(
1173 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1174 ),
1175 )
1176}
1177
1178func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001179 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001180 sdk {
1181 name: "mysdk",
1182 java_sdk_libs: ["myjavalib"],
1183 }
1184
1185 java_sdk_library {
1186 name: "myjavalib",
1187 apex_available: ["//apex_available:anyapex"],
1188 srcs: ["Test.java"],
1189 sdk_version: "current",
1190 public: {
1191 enabled: true,
1192 },
1193 system: {
1194 enabled: true,
1195 },
1196 }
1197 `)
1198
Paul Duffin36474d32021-03-12 12:19:43 +00001199 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin3375e352020-04-28 10:44:03 +01001200 checkAndroidBpContents(`
1201// This is auto-generated. DO NOT EDIT.
1202
1203java_sdk_library_import {
1204 name: "mysdk_myjavalib@current",
1205 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001206 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001207 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001208 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001209 public: {
1210 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001211 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001212 current_api: "sdk_library/public/myjavalib.txt",
1213 removed_api: "sdk_library/public/myjavalib-removed.txt",
1214 sdk_version: "current",
1215 },
1216 system: {
1217 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001218 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001219 current_api: "sdk_library/system/myjavalib.txt",
1220 removed_api: "sdk_library/system/myjavalib-removed.txt",
1221 sdk_version: "system_current",
1222 },
1223}
1224
1225java_sdk_library_import {
1226 name: "myjavalib",
1227 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001228 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001229 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001230 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001231 public: {
1232 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001233 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001234 current_api: "sdk_library/public/myjavalib.txt",
1235 removed_api: "sdk_library/public/myjavalib-removed.txt",
1236 sdk_version: "current",
1237 },
1238 system: {
1239 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001240 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001241 current_api: "sdk_library/system/myjavalib.txt",
1242 removed_api: "sdk_library/system/myjavalib-removed.txt",
1243 sdk_version: "system_current",
1244 },
1245}
1246
1247sdk_snapshot {
1248 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001249 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001250 java_sdk_libs: ["mysdk_myjavalib@current"],
1251}
1252`),
1253 checkAllCopyRules(`
1254.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1255.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001256.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001257.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1258.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 +01001259.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 +01001260`),
1261 checkMergeZips(
1262 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1263 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1264 ),
1265 )
1266}
Paul Duffin8f265b92020-04-28 14:13:56 +01001267
1268func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001269 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001270 sdk {
1271 name: "mysdk",
1272 java_sdk_libs: ["myjavalib"],
1273 }
1274
1275 java_sdk_library {
1276 name: "myjavalib",
1277 apex_available: ["//apex_available:anyapex"],
1278 srcs: ["Test.java"],
1279 sdk_version: "current",
1280 public: {
1281 enabled: true,
1282 },
1283 system: {
1284 enabled: true,
1285 },
1286 module_lib: {
1287 enabled: true,
1288 },
1289 }
1290 `)
1291
Paul Duffin36474d32021-03-12 12:19:43 +00001292 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin8f265b92020-04-28 14:13:56 +01001293 checkAndroidBpContents(`
1294// This is auto-generated. DO NOT EDIT.
1295
1296java_sdk_library_import {
1297 name: "mysdk_myjavalib@current",
1298 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001299 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001300 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001301 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001302 public: {
1303 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001304 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001305 current_api: "sdk_library/public/myjavalib.txt",
1306 removed_api: "sdk_library/public/myjavalib-removed.txt",
1307 sdk_version: "current",
1308 },
1309 system: {
1310 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001311 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001312 current_api: "sdk_library/system/myjavalib.txt",
1313 removed_api: "sdk_library/system/myjavalib-removed.txt",
1314 sdk_version: "system_current",
1315 },
1316 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001317 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001318 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001319 current_api: "sdk_library/module-lib/myjavalib.txt",
1320 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001321 sdk_version: "module_current",
1322 },
1323}
1324
1325java_sdk_library_import {
1326 name: "myjavalib",
1327 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001328 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001329 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001330 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001331 public: {
1332 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001333 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001334 current_api: "sdk_library/public/myjavalib.txt",
1335 removed_api: "sdk_library/public/myjavalib-removed.txt",
1336 sdk_version: "current",
1337 },
1338 system: {
1339 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001340 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001341 current_api: "sdk_library/system/myjavalib.txt",
1342 removed_api: "sdk_library/system/myjavalib-removed.txt",
1343 sdk_version: "system_current",
1344 },
1345 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001346 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001347 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001348 current_api: "sdk_library/module-lib/myjavalib.txt",
1349 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001350 sdk_version: "module_current",
1351 },
1352}
1353
1354sdk_snapshot {
1355 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001356 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001357 java_sdk_libs: ["mysdk_myjavalib@current"],
1358}
1359`),
1360 checkAllCopyRules(`
1361.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1362.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001363.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001364.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1365.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 +01001366.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 +01001367.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 +01001368.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1369.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 +01001370`),
1371 checkMergeZips(
1372 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1373 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001374 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001375 ),
1376 )
1377}
Paul Duffinf7a64332020-05-13 16:54:55 +01001378
Paul Duffin0c5bae52020-06-02 13:00:08 +01001379func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001380 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001381 sdk {
1382 name: "mysdk",
1383 java_sdk_libs: ["myjavalib"],
1384 }
1385
1386 java_sdk_library {
1387 name: "myjavalib",
1388 apex_available: ["//apex_available:anyapex"],
1389 srcs: ["Test.java"],
1390 sdk_version: "current",
1391 public: {
1392 enabled: true,
1393 },
1394 system_server: {
1395 enabled: true,
1396 },
1397 }
1398 `)
1399
Paul Duffin36474d32021-03-12 12:19:43 +00001400 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin0c5bae52020-06-02 13:00:08 +01001401 checkAndroidBpContents(`
1402// This is auto-generated. DO NOT EDIT.
1403
1404java_sdk_library_import {
1405 name: "mysdk_myjavalib@current",
1406 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001407 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001408 apex_available: ["//apex_available:anyapex"],
1409 shared_library: true,
1410 public: {
1411 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001412 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001413 current_api: "sdk_library/public/myjavalib.txt",
1414 removed_api: "sdk_library/public/myjavalib-removed.txt",
1415 sdk_version: "current",
1416 },
1417 system_server: {
1418 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001419 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001420 current_api: "sdk_library/system-server/myjavalib.txt",
1421 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1422 sdk_version: "system_server_current",
1423 },
1424}
1425
1426java_sdk_library_import {
1427 name: "myjavalib",
1428 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001429 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001430 apex_available: ["//apex_available:anyapex"],
1431 shared_library: true,
1432 public: {
1433 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001434 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001435 current_api: "sdk_library/public/myjavalib.txt",
1436 removed_api: "sdk_library/public/myjavalib-removed.txt",
1437 sdk_version: "current",
1438 },
1439 system_server: {
1440 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001441 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001442 current_api: "sdk_library/system-server/myjavalib.txt",
1443 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1444 sdk_version: "system_server_current",
1445 },
1446}
1447
1448sdk_snapshot {
1449 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001450 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001451 java_sdk_libs: ["mysdk_myjavalib@current"],
1452}
1453`),
1454 checkAllCopyRules(`
1455.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1456.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1457.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1458.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1459.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1460.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1461`),
1462 checkMergeZips(
1463 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1464 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1465 ),
1466 )
1467}
1468
Paul Duffinf7a64332020-05-13 16:54:55 +01001469func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001470 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001471 sdk {
1472 name: "mysdk",
1473 java_sdk_libs: ["myjavalib"],
1474 }
1475
1476 java_sdk_library {
1477 name: "myjavalib",
1478 apex_available: ["//apex_available:anyapex"],
1479 srcs: ["Test.java"],
1480 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001481 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001482 public: {
1483 enabled: true,
1484 },
1485 }
1486 `)
1487
Paul Duffin36474d32021-03-12 12:19:43 +00001488 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinf7a64332020-05-13 16:54:55 +01001489 checkAndroidBpContents(`
1490// This is auto-generated. DO NOT EDIT.
1491
1492java_sdk_library_import {
1493 name: "mysdk_myjavalib@current",
1494 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001495 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001496 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001497 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001498 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001499 public: {
1500 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001501 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001502 current_api: "sdk_library/public/myjavalib.txt",
1503 removed_api: "sdk_library/public/myjavalib-removed.txt",
1504 sdk_version: "current",
1505 },
1506}
1507
1508java_sdk_library_import {
1509 name: "myjavalib",
1510 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001511 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001512 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001513 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001514 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001515 public: {
1516 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001517 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001518 current_api: "sdk_library/public/myjavalib.txt",
1519 removed_api: "sdk_library/public/myjavalib-removed.txt",
1520 sdk_version: "current",
1521 },
1522}
1523
1524sdk_snapshot {
1525 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001526 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001527 java_sdk_libs: ["mysdk_myjavalib@current"],
1528}
1529`),
1530 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001531.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1532.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1533.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001534`),
1535 checkMergeZips(
1536 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1537 ),
1538 )
1539}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001540
1541func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001542 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001543 sdk {
1544 name: "mysdk",
1545 java_sdk_libs: ["myjavalib"],
1546 }
1547
1548 java_sdk_library {
1549 name: "myjavalib",
1550 srcs: ["Test.java"],
1551 sdk_version: "current",
1552 public: {
1553 enabled: true,
1554 },
1555 doctag_files: ["docs/known_doctags"],
1556 }
1557
1558 filegroup {
1559 name: "mygroup",
1560 srcs: [":myjavalib{.doctags}"],
1561 }
1562 `)
1563
Paul Duffin36474d32021-03-12 12:19:43 +00001564 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina2ae7e02020-09-11 11:55:00 +01001565 checkAndroidBpContents(`
1566// This is auto-generated. DO NOT EDIT.
1567
1568java_sdk_library_import {
1569 name: "mysdk_myjavalib@current",
1570 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001571 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001572 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001573 shared_library: true,
1574 doctag_files: ["doctags/docs/known_doctags"],
1575 public: {
1576 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001577 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001578 current_api: "sdk_library/public/myjavalib.txt",
1579 removed_api: "sdk_library/public/myjavalib-removed.txt",
1580 sdk_version: "current",
1581 },
1582}
1583
1584java_sdk_library_import {
1585 name: "myjavalib",
1586 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001587 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001588 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001589 shared_library: true,
1590 doctag_files: ["doctags/docs/known_doctags"],
1591 public: {
1592 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001593 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001594 current_api: "sdk_library/public/myjavalib.txt",
1595 removed_api: "sdk_library/public/myjavalib-removed.txt",
1596 sdk_version: "current",
1597 },
1598}
1599
1600sdk_snapshot {
1601 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001602 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +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
1610docs/known_doctags -> doctags/docs/known_doctags
1611`),
1612 )
1613}