blob: 9d0c3deb9b50bb283ca502ebfb2ea0373f098b60 [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,
Paul Duffindb462dd2021-03-21 22:01:55 +000027
28 // Ensure that all source paths are provided. This helps ensure that the snapshot generation is
29 // consistent and all files referenced from the snapshot's Android.bp file have actually been
30 // copied into the snapshot.
31 android.PrepareForTestDisallowNonExistentPaths,
32
33 // Files needs by most of the tests.
34 android.MockFS{
35 "Test.java": nil,
36 }.AddToFixture(),
Paul Duffind14cbc12021-03-18 09:14:23 +000037)
38
Paul Duffin9ec86b12021-03-15 11:17:52 +000039var prepareForSdkTestWithJavaSdkLibrary = android.GroupFixturePreparers(
40 prepareForSdkTestWithJava,
41 java.PrepareForTestWithJavaDefaultModules,
42 java.PrepareForTestWithJavaSdkLibraryFiles,
43 java.FixtureWithLastReleaseApis("myjavalib"),
44)
45
Paul Duffina80fdec2019-12-03 15:25:00 +000046// Contains tests for SDK members provided by the java package.
47
Paul Duffincee7e662020-07-09 17:32:57 +010048func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000049 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +010050 sdk {
51 name: "mysdk",
52 java_header_libs: ["sdkmember"],
53 }
54
55 java_library {
56 name: "sdkmember",
57 srcs: ["Test.java"],
58 system_modules: "none",
59 sdk_version: "none",
60 }
Paul Duffincee7e662020-07-09 17:32:57 +010061 `)
62
63 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin1822a0a2021-03-21 12:56:33 +000064 sdkChecker := func(t *testing.T, result *android.TestResult) {
65 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
66 }
Paul Duffincee7e662020-07-09 17:32:57 +010067
Paul Duffin36474d32021-03-12 12:19:43 +000068 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin1822a0a2021-03-21 12:56:33 +000069 snapshotTestChecker(checkSnapshotWithSourcePreferred, sdkChecker),
70 snapshotTestChecker(checkSnapshotPreferredWithSource, sdkChecker),
71 )
Paul Duffincee7e662020-07-09 17:32:57 +010072}
73
Paul Duffina0dbf432019-12-05 11:25:53 +000074func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000075 result := android.GroupFixturePreparers(
76 prepareForSdkTestWithJava,
77 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
78 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +000079 sdk {
80 name: "mysdk",
81 java_header_libs: ["myjavalib"],
82 }
83
84 java_library {
85 name: "myjavalib",
86 srcs: ["Test.java"],
87 aidl: {
88 export_include_dirs: ["aidl"],
89 },
90 system_modules: "none",
91 sdk_version: "none",
92 compile_dex: true,
93 host_supported: true,
Paul Duffin869de142021-07-15 14:14:41 +010094 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +000095 }
96 `)
97
Paul Duffin36474d32021-03-12 12:19:43 +000098 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +010099 checkUnversionedAndroidBpContents(`
100// This is auto-generated. DO NOT EDIT.
101
102java_import {
103 name: "myjavalib",
104 prefer: false,
105 visibility: ["//visibility:public"],
106 apex_available: ["//apex_available:platform"],
107 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100108 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100109}
110`),
111 checkVersionedAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000112// This is auto-generated. DO NOT EDIT.
113
114java_import {
115 name: "mysdk_myjavalib@current",
116 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100117 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000118 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000119 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100120 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000121}
122
Paul Duffina0dbf432019-12-05 11:25:53 +0000123sdk_snapshot {
124 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100125 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000126 java_header_libs: ["mysdk_myjavalib@current"],
127}
Paul Duffina0dbf432019-12-05 11:25:53 +0000128`),
129 checkAllCopyRules(`
130.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
131aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
132`),
133 )
134}
135
136func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000137 result := android.GroupFixturePreparers(
138 prepareForSdkTestWithJava,
139 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
140 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000141 sdk {
142 name: "mysdk",
143 device_supported: false,
144 host_supported: true,
145 java_header_libs: ["myjavalib"],
146 }
147
148 java_library {
149 name: "myjavalib",
150 device_supported: false,
151 host_supported: true,
152 srcs: ["Test.java"],
153 aidl: {
154 export_include_dirs: ["aidl"],
155 },
156 system_modules: "none",
157 sdk_version: "none",
158 compile_dex: true,
159 }
160 `)
161
Paul Duffin36474d32021-03-12 12:19:43 +0000162 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100163 checkUnversionedAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000164// This is auto-generated. DO NOT EDIT.
165
166java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100167 name: "myjavalib",
168 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100169 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000170 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000171 device_supported: false,
172 host_supported: true,
173 jars: ["java/myjavalib.jar"],
174}
Paul Duffine1381882021-04-16 17:05:10 +0100175`),
176 checkVersionedAndroidBpContents(`
177// This is auto-generated. DO NOT EDIT.
Paul Duffina0dbf432019-12-05 11:25:53 +0000178
179java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100180 name: "mysdk_myjavalib@current",
181 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100182 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000183 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000184 device_supported: false,
185 host_supported: true,
186 jars: ["java/myjavalib.jar"],
187}
188
189sdk_snapshot {
190 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100191 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000192 device_supported: false,
193 host_supported: true,
194 java_header_libs: ["mysdk_myjavalib@current"],
195}
196`),
197 checkAllCopyRules(`
198.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
199aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
200`),
201 )
202}
203
Paul Duffina04c1072020-03-02 10:16:35 +0000204func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000205 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000206 sdk {
207 name: "mysdk",
208 host_supported: true,
209 java_header_libs: ["myjavalib"],
210 }
211
212 java_library {
213 name: "myjavalib",
214 host_supported: true,
215 srcs: ["Test.java"],
216 system_modules: "none",
217 sdk_version: "none",
218 compile_dex: true,
219 }
220 `)
221
Paul Duffin36474d32021-03-12 12:19:43 +0000222 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100223 checkUnversionedAndroidBpContents(`
Paul Duffina04c1072020-03-02 10:16:35 +0000224// This is auto-generated. DO NOT EDIT.
225
226java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100227 name: "myjavalib",
228 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100229 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000230 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000231 host_supported: true,
232 target: {
233 android: {
234 jars: ["java/android/myjavalib.jar"],
235 },
236 linux_glibc: {
237 jars: ["java/linux_glibc/myjavalib.jar"],
238 },
239 },
240}
Paul Duffine1381882021-04-16 17:05:10 +0100241`),
242 checkVersionedAndroidBpContents(`
243// This is auto-generated. DO NOT EDIT.
Paul Duffina04c1072020-03-02 10:16:35 +0000244
245java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100246 name: "mysdk_myjavalib@current",
247 sdk_member_name: "myjavalib",
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 Duffina04c1072020-03-02 10:16:35 +0000250 host_supported: true,
251 target: {
252 android: {
253 jars: ["java/android/myjavalib.jar"],
254 },
255 linux_glibc: {
256 jars: ["java/linux_glibc/myjavalib.jar"],
257 },
258 },
259}
260
261sdk_snapshot {
262 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100263 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000264 host_supported: true,
265 java_header_libs: ["mysdk_myjavalib@current"],
266}
267`),
268 checkAllCopyRules(`
269.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
270.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
271`),
272 )
273}
274
Paul Duffina0dbf432019-12-05 11:25:53 +0000275func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000276 result := android.GroupFixturePreparers(
277 prepareForSdkTestWithJava,
278 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000279 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000280 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000281 module_exports {
282 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000283 java_libs: ["myjavalib"],
284 }
285
286 java_library {
287 name: "myjavalib",
288 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100289 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000290 aidl: {
291 export_include_dirs: ["aidl"],
292 },
293 system_modules: "none",
294 sdk_version: "none",
295 compile_dex: true,
296 host_supported: true,
297 }
298 `)
299
Paul Duffin36474d32021-03-12 12:19:43 +0000300 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100301 checkUnversionedAndroidBpContents(`
302// This is auto-generated. DO NOT EDIT.
303
304java_import {
305 name: "myjavalib",
306 prefer: false,
307 visibility: ["//visibility:public"],
308 apex_available: ["//apex_available:platform"],
309 jars: ["java/myjavalib.jar"],
310}
311`),
312 checkVersionedAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000313// This is auto-generated. DO NOT EDIT.
314
315java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000316 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000317 sdk_member_name: "myjavalib",
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 Duffina80fdec2019-12-03 15:25:00 +0000320 jars: ["java/myjavalib.jar"],
321}
322
Paul Duffine6029182019-12-16 17:43:48 +0000323module_exports_snapshot {
324 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100325 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000326 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000327}
Paul Duffina80fdec2019-12-03 15:25:00 +0000328`),
329 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100330.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000331aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
332`),
333 )
334}
335
Paul Duffindb170e42020-12-08 17:48:25 +0000336func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +0000337 result := android.GroupFixturePreparers(
338 prepareForSdkTestWithJava,
339 android.FixtureAddFile("aidl", nil),
340 android.FixtureAddFile("resource.txt", nil),
341 ).RunTestWithBp(t, `
Paul Duffindb170e42020-12-08 17:48:25 +0000342 module_exports {
343 name: "myexports",
344 java_boot_libs: ["myjavalib"],
345 }
346
347 java_library {
348 name: "myjavalib",
349 srcs: ["Test.java"],
350 java_resources: ["resource.txt"],
351 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
352 // intended to be used for compiling Java, only for accessing the dex implementation jar.
353 aidl: {
354 export_include_dirs: ["aidl"],
355 },
356 system_modules: "none",
357 sdk_version: "none",
358 compile_dex: true,
Paul Duffin869de142021-07-15 14:14:41 +0100359 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000360 }
361 `)
362
Paul Duffin36474d32021-03-12 12:19:43 +0000363 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100364 checkUnversionedAndroidBpContents(`
365// This is auto-generated. DO NOT EDIT.
366
367java_import {
368 name: "myjavalib",
369 prefer: false,
370 visibility: ["//visibility:public"],
371 apex_available: ["//apex_available:platform"],
Paul Duffin5c211452021-07-15 12:42:44 +0100372 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100373 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100374}
375`),
376 checkVersionedAndroidBpContents(`
Paul Duffindb170e42020-12-08 17:48:25 +0000377// This is auto-generated. DO NOT EDIT.
378
379java_import {
380 name: "myexports_myjavalib@current",
381 sdk_member_name: "myjavalib",
382 visibility: ["//visibility:public"],
383 apex_available: ["//apex_available:platform"],
Paul Duffin5c211452021-07-15 12:42:44 +0100384 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100385 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000386}
387
Paul Duffindb170e42020-12-08 17:48:25 +0000388module_exports_snapshot {
389 name: "myexports@current",
390 visibility: ["//visibility:public"],
391 java_boot_libs: ["myexports_myjavalib@current"],
392}
Paul Duffin5c211452021-07-15 12:42:44 +0100393
Paul Duffindb170e42020-12-08 17:48:25 +0000394`),
395 checkAllCopyRules(`
Paul Duffin5c211452021-07-15 12:42:44 +0100396.intermediates/myexports/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000397`),
398 )
399}
400
Jiakai Zhangea180332021-09-26 08:58:02 +0000401func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
402 result := android.GroupFixturePreparers(
403 prepareForSdkTestWithJava,
404 android.FixtureAddFile("aidl", nil),
405 android.FixtureAddFile("resource.txt", nil),
406 ).RunTestWithBp(t, `
407 module_exports {
408 name: "myexports",
409 java_systemserver_libs: ["myjavalib"],
410 }
411
412 java_library {
413 name: "myjavalib",
414 srcs: ["Test.java"],
415 java_resources: ["resource.txt"],
416 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
417 // is not intended to be used for compiling Java, only for accessing the dex implementation
418 // jar.
419 aidl: {
420 export_include_dirs: ["aidl"],
421 },
422 system_modules: "none",
423 sdk_version: "none",
424 compile_dex: true,
425 permitted_packages: ["pkg.myjavalib"],
426 }
427 `)
428
429 CheckSnapshot(t, result, "myexports", "",
430 checkUnversionedAndroidBpContents(`
431// This is auto-generated. DO NOT EDIT.
432
433java_import {
434 name: "myjavalib",
435 prefer: false,
436 visibility: ["//visibility:public"],
437 apex_available: ["//apex_available:platform"],
438 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
439 permitted_packages: ["pkg.myjavalib"],
440}
441`),
442 checkVersionedAndroidBpContents(`
443// This is auto-generated. DO NOT EDIT.
444
445java_import {
446 name: "myexports_myjavalib@current",
447 sdk_member_name: "myjavalib",
448 visibility: ["//visibility:public"],
449 apex_available: ["//apex_available:platform"],
450 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
451 permitted_packages: ["pkg.myjavalib"],
452}
453
454module_exports_snapshot {
455 name: "myexports@current",
456 visibility: ["//visibility:public"],
457 java_systemserver_libs: ["myexports_myjavalib@current"],
458}
459`),
460 checkAllCopyRules(`
461.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
462`),
463 )
464}
465
Paul Duffina0dbf432019-12-05 11:25:53 +0000466func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000467 result := android.GroupFixturePreparers(
468 prepareForSdkTestWithJava,
469 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
470 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000471 module_exports {
472 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000473 device_supported: false,
474 host_supported: true,
475 java_libs: ["myjavalib"],
476 }
477
478 java_library {
479 name: "myjavalib",
480 device_supported: false,
481 host_supported: true,
482 srcs: ["Test.java"],
483 aidl: {
484 export_include_dirs: ["aidl"],
485 },
486 system_modules: "none",
487 sdk_version: "none",
488 compile_dex: true,
489 }
490 `)
491
Paul Duffin36474d32021-03-12 12:19:43 +0000492 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100493 checkUnversionedAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000494// This is auto-generated. DO NOT EDIT.
495
496java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100497 name: "myjavalib",
498 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100499 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000500 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000501 device_supported: false,
502 host_supported: true,
503 jars: ["java/myjavalib.jar"],
504}
Paul Duffine1381882021-04-16 17:05:10 +0100505`),
506 checkVersionedAndroidBpContents(`
507// This is auto-generated. DO NOT EDIT.
Paul Duffina80fdec2019-12-03 15:25:00 +0000508
509java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100510 name: "myexports_myjavalib@current",
511 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100512 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000513 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000514 device_supported: false,
515 host_supported: true,
516 jars: ["java/myjavalib.jar"],
517}
518
Paul Duffine6029182019-12-16 17:43:48 +0000519module_exports_snapshot {
520 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100521 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000522 device_supported: false,
523 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000524 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000525}
526`),
527 checkAllCopyRules(`
528.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
529aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
530`),
531 )
532}
533
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000534func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000535 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000536 module_exports {
537 name: "myexports",
538 java_tests: ["myjavatests"],
539 }
540
541 java_test {
542 name: "myjavatests",
543 srcs: ["Test.java"],
544 system_modules: "none",
545 sdk_version: "none",
546 compile_dex: true,
547 host_supported: true,
548 }
549 `)
550
Paul Duffin36474d32021-03-12 12:19:43 +0000551 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100552 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000553// This is auto-generated. DO NOT EDIT.
554
555java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100556 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}
Paul Duffine1381882021-04-16 17:05:10 +0100563`),
564 checkVersionedAndroidBpContents(`
565// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000566
567java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100568 name: "myexports_myjavatests@current",
569 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100570 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000571 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000572 jars: ["java/myjavatests.jar"],
573 test_config: "java/myjavatests-AndroidTest.xml",
574}
575
576module_exports_snapshot {
577 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100578 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000579 java_tests: ["myexports_myjavatests@current"],
580}
581`),
582 checkAllCopyRules(`
583.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
584.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
585`),
586 )
587}
588
589func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000590 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000591 module_exports {
592 name: "myexports",
593 device_supported: false,
594 host_supported: true,
595 java_tests: ["myjavatests"],
596 }
597
598 java_test {
599 name: "myjavatests",
600 device_supported: false,
601 host_supported: true,
602 srcs: ["Test.java"],
603 system_modules: "none",
604 sdk_version: "none",
605 compile_dex: true,
606 }
607 `)
608
Paul Duffin36474d32021-03-12 12:19:43 +0000609 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100610 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000611// This is auto-generated. DO NOT EDIT.
612
613java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100614 name: "myjavatests",
615 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100616 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000617 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000618 device_supported: false,
619 host_supported: true,
620 jars: ["java/myjavatests.jar"],
621 test_config: "java/myjavatests-AndroidTest.xml",
622}
Paul Duffine1381882021-04-16 17:05:10 +0100623`),
624 checkVersionedAndroidBpContents(`
625// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000626
627java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100628 name: "myexports_myjavatests@current",
629 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100630 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000631 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000632 device_supported: false,
633 host_supported: true,
634 jars: ["java/myjavatests.jar"],
635 test_config: "java/myjavatests-AndroidTest.xml",
636}
637
638module_exports_snapshot {
639 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100640 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000641 device_supported: false,
642 host_supported: true,
643 java_tests: ["myexports_myjavatests@current"],
644}
645`),
646 checkAllCopyRules(`
647.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
648.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
649`),
650 )
651}
652
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000653func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin33028712021-06-22 11:00:07 +0100654 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000655 sdk {
656 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000657 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100658 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000659 java_system_modules: ["my-system-modules"],
660 }
661
Paul Duffin33028712021-06-22 11:00:07 +0100662 java_sdk_library {
663 name: "myjavalib",
664 apex_available: ["//apex_available:anyapex"],
665 srcs: ["Test.java"],
666 sdk_version: "current",
667 shared_library: false,
668 public: {
669 enabled: true,
670 },
671 }
672
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000673 java_system_modules {
674 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100675 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000676 }
677
678 java_library {
679 name: "system-module",
680 srcs: ["Test.java"],
681 sdk_version: "none",
682 system_modules: "none",
683 }
Paul Duffin72910952020-01-20 18:16:30 +0000684
685 java_library {
686 name: "exported-system-module",
687 srcs: ["Test.java"],
688 sdk_version: "none",
689 system_modules: "none",
690 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000691 `)
692
Paul Duffin36474d32021-03-12 12:19:43 +0000693 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100694 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000695// This is auto-generated. DO NOT EDIT.
696
697java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100698 name: "exported-system-module",
699 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100700 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000701 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000702 jars: ["java/exported-system-module.jar"],
703}
704
705java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100706 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000707 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100708 visibility: ["//visibility:private"],
709 apex_available: ["//apex_available:platform"],
710 jars: ["java/system-module.jar"],
711}
712
Paul Duffin33028712021-06-22 11:00:07 +0100713java_sdk_library_import {
714 name: "myjavalib",
715 prefer: false,
716 visibility: ["//visibility:public"],
717 apex_available: ["//apex_available:anyapex"],
718 shared_library: false,
719 public: {
720 jars: ["sdk_library/public/myjavalib-stubs.jar"],
721 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
722 current_api: "sdk_library/public/myjavalib.txt",
723 removed_api: "sdk_library/public/myjavalib-removed.txt",
724 sdk_version: "current",
725 },
726}
727
Paul Duffine1381882021-04-16 17:05:10 +0100728java_system_modules_import {
729 name: "my-system-modules",
730 prefer: false,
731 visibility: ["//visibility:public"],
732 libs: [
733 "mysdk_system-module",
734 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100735 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100736 ],
737}
738`),
739 checkVersionedAndroidBpContents(`
740// This is auto-generated. DO NOT EDIT.
741
742java_import {
743 name: "mysdk_exported-system-module@current",
744 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100745 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000746 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000747 jars: ["java/exported-system-module.jar"],
748}
749
750java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000751 name: "mysdk_system-module@current",
752 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000753 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000754 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000755 jars: ["java/system-module.jar"],
756}
757
Paul Duffin33028712021-06-22 11:00:07 +0100758java_sdk_library_import {
759 name: "mysdk_myjavalib@current",
760 sdk_member_name: "myjavalib",
761 visibility: ["//visibility:public"],
762 apex_available: ["//apex_available:anyapex"],
763 shared_library: false,
764 public: {
765 jars: ["sdk_library/public/myjavalib-stubs.jar"],
766 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
767 current_api: "sdk_library/public/myjavalib.txt",
768 removed_api: "sdk_library/public/myjavalib-removed.txt",
769 sdk_version: "current",
770 },
771}
772
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000773java_system_modules_import {
774 name: "mysdk_my-system-modules@current",
775 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100776 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000777 libs: [
778 "mysdk_system-module@current",
779 "mysdk_exported-system-module@current",
Paul Duffin33028712021-06-22 11:00:07 +0100780 "mysdk_myjavalib.stubs@current",
Paul Duffin72910952020-01-20 18:16:30 +0000781 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000782}
783
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000784sdk_snapshot {
785 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100786 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000787 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin33028712021-06-22 11:00:07 +0100788 java_sdk_libs: ["mysdk_myjavalib@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000789 java_system_modules: ["mysdk_my-system-modules@current"],
790}
791`),
Paul Duffin72910952020-01-20 18:16:30 +0000792 checkAllCopyRules(`
793.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
794.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100795.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
796.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
797.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin72910952020-01-20 18:16:30 +0000798`),
Paul Duffinc6ba1822022-05-06 09:38:02 +0000799 checkInfoContents(`
800[
801 {
802 "@type": "sdk",
803 "@name": "mysdk",
804 "java_header_libs": [
805 "exported-system-module",
806 "system-module"
807 ],
808 "java_sdk_libs": [
809 "myjavalib"
810 ],
811 "java_system_modules": [
812 "my-system-modules"
813 ]
814 },
815 {
816 "@type": "java_library",
817 "@name": "exported-system-module"
818 },
819 {
820 "@type": "java_system_modules",
821 "@name": "my-system-modules",
822 "@deps": [
823 "exported-system-module",
824 "system-module"
825 ]
826 },
827 {
828 "@type": "java_sdk_library",
829 "@name": "myjavalib"
830 },
831 {
832 "@type": "java_library",
833 "@name": "system-module"
834 }
835]
836`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000837 )
838}
839
840func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000841 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000842 sdk {
843 name: "mysdk",
844 device_supported: false,
845 host_supported: true,
846 java_system_modules: ["my-system-modules"],
847 }
848
849 java_system_modules {
850 name: "my-system-modules",
851 device_supported: false,
852 host_supported: true,
853 libs: ["system-module"],
854 }
855
856 java_library {
857 name: "system-module",
858 device_supported: false,
859 host_supported: true,
860 srcs: ["Test.java"],
861 sdk_version: "none",
862 system_modules: "none",
863 }
864 `)
865
Paul Duffin36474d32021-03-12 12:19:43 +0000866 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100867 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000868// This is auto-generated. DO NOT EDIT.
869
870java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100871 name: "mysdk_system-module",
872 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000873 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000874 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000875 device_supported: false,
876 host_supported: true,
877 jars: ["java/system-module.jar"],
878}
879
Paul Duffine1381882021-04-16 17:05:10 +0100880java_system_modules_import {
881 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000882 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100883 visibility: ["//visibility:public"],
884 device_supported: false,
885 host_supported: true,
886 libs: ["mysdk_system-module"],
887}
888`),
889 checkVersionedAndroidBpContents(`
890// This is auto-generated. DO NOT EDIT.
891
892java_import {
893 name: "mysdk_system-module@current",
894 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000895 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000896 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000897 device_supported: false,
898 host_supported: true,
899 jars: ["java/system-module.jar"],
900}
901
902java_system_modules_import {
903 name: "mysdk_my-system-modules@current",
904 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100905 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000906 device_supported: false,
907 host_supported: true,
908 libs: ["mysdk_system-module@current"],
909}
910
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000911sdk_snapshot {
912 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100913 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000914 device_supported: false,
915 host_supported: true,
916 java_system_modules: ["mysdk_my-system-modules@current"],
917}
918`),
919 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
920 )
921}
Paul Duffin865171e2020-03-02 18:38:15 +0000922
923func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000924 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000925 module_exports {
926 name: "myexports",
927 host_supported: true,
928 java_libs: ["myjavalib"],
929 target: {
930 android: {
931 java_header_libs: ["androidjavalib"],
932 },
933 host: {
934 java_header_libs: ["hostjavalib"],
935 },
936 },
937 }
938
939 java_library {
940 name: "myjavalib",
941 host_supported: true,
942 srcs: ["Test.java"],
943 system_modules: "none",
944 sdk_version: "none",
945 }
946
947 java_library {
948 name: "androidjavalib",
949 srcs: ["Test.java"],
950 system_modules: "none",
951 sdk_version: "none",
952 }
953
954 java_library_host {
955 name: "hostjavalib",
956 srcs: ["Test.java"],
957 }
958 `)
959
Paul Duffin36474d32021-03-12 12:19:43 +0000960 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100961 checkUnversionedAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000962// This is auto-generated. DO NOT EDIT.
963
964java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100965 name: "hostjavalib",
966 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100967 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000968 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000969 device_supported: false,
970 host_supported: true,
971 jars: ["java/hostjavalib.jar"],
972}
973
974java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100975 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000976 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100977 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000978 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100979 jars: ["java/androidjavalib.jar"],
980}
981
982java_import {
983 name: "myjavalib",
984 prefer: false,
985 visibility: ["//visibility:public"],
986 apex_available: ["//apex_available:platform"],
987 host_supported: true,
988 target: {
989 android: {
990 jars: ["java/android/myjavalib.jar"],
991 },
992 linux_glibc: {
993 jars: ["java/linux_glibc/myjavalib.jar"],
994 },
995 },
996}
997`),
998 checkVersionedAndroidBpContents(`
999// This is auto-generated. DO NOT EDIT.
1000
1001java_import {
1002 name: "myexports_hostjavalib@current",
1003 sdk_member_name: "hostjavalib",
1004 visibility: ["//visibility:public"],
1005 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001006 device_supported: false,
1007 host_supported: true,
1008 jars: ["java/hostjavalib.jar"],
1009}
1010
1011java_import {
1012 name: "myexports_androidjavalib@current",
1013 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001014 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001015 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001016 jars: ["java/androidjavalib.jar"],
1017}
1018
1019java_import {
Paul Duffin865171e2020-03-02 18:38:15 +00001020 name: "myexports_myjavalib@current",
1021 sdk_member_name: "myjavalib",
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 host_supported: true,
1025 target: {
1026 android: {
1027 jars: ["java/android/myjavalib.jar"],
1028 },
1029 linux_glibc: {
1030 jars: ["java/linux_glibc/myjavalib.jar"],
1031 },
1032 },
1033}
1034
Paul Duffin865171e2020-03-02 18:38:15 +00001035module_exports_snapshot {
1036 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001037 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001038 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001039 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001040 target: {
1041 android: {
1042 java_header_libs: ["myexports_androidjavalib@current"],
1043 },
1044 linux_glibc: {
1045 java_header_libs: ["myexports_hostjavalib@current"],
1046 },
1047 },
Paul Duffin865171e2020-03-02 18:38:15 +00001048}
1049`),
1050 checkAllCopyRules(`
1051.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1052.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1053.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1054.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1055`),
1056 )
1057}
Paul Duffindd46f712020-02-10 13:37:10 +00001058
1059func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001060 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001061 sdk {
1062 name: "mysdk",
1063 java_sdk_libs: ["myjavalib"],
1064 }
1065
1066 java_sdk_library {
1067 name: "myjavalib",
1068 apex_available: ["//apex_available:anyapex"],
1069 srcs: ["Test.java"],
1070 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001071 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001072 stubs_library_visibility: ["//other"],
1073 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +01001074 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001075 }
1076 `)
1077
Paul Duffin36474d32021-03-12 12:19:43 +00001078 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001079 checkUnversionedAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001080// This is auto-generated. DO NOT EDIT.
1081
1082java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001083 name: "myjavalib",
1084 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001085 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001086 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001087 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001088 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001089 public: {
1090 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001091 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001092 current_api: "sdk_library/public/myjavalib.txt",
1093 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001094 sdk_version: "current",
1095 },
1096 system: {
1097 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001098 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001099 current_api: "sdk_library/system/myjavalib.txt",
1100 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001101 sdk_version: "system_current",
1102 },
1103 test: {
1104 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001105 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001106 current_api: "sdk_library/test/myjavalib.txt",
1107 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001108 sdk_version: "test_current",
1109 },
1110}
Paul Duffine1381882021-04-16 17:05:10 +01001111`),
1112 checkVersionedAndroidBpContents(`
1113// This is auto-generated. DO NOT EDIT.
Paul Duffindd46f712020-02-10 13:37:10 +00001114
1115java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001116 name: "mysdk_myjavalib@current",
1117 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001118 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001119 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001120 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001121 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001122 public: {
1123 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001124 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001125 current_api: "sdk_library/public/myjavalib.txt",
1126 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001127 sdk_version: "current",
1128 },
1129 system: {
1130 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001131 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001132 current_api: "sdk_library/system/myjavalib.txt",
1133 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001134 sdk_version: "system_current",
1135 },
1136 test: {
1137 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001138 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001139 current_api: "sdk_library/test/myjavalib.txt",
1140 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001141 sdk_version: "test_current",
1142 },
1143}
1144
1145sdk_snapshot {
1146 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001147 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001148 java_sdk_libs: ["mysdk_myjavalib@current"],
1149}
1150`),
1151 checkAllCopyRules(`
1152.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001153.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1154.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001155.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001156.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1157.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001158.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001159.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1160.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_removed.txt -> sdk_library/test/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001161`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001162 checkMergeZips(
1163 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1164 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +01001165 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1166 ),
1167 snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) {
Paul Duffinb97b1572021-04-29 21:50:40 +01001168 // Make sure that the name of the child modules created by a versioned java_sdk_library_import
1169 // module is correct, i.e. the suffix is added before the version and not after.
1170 result.Module("mysdk_myjavalib.stubs@current", "android_common")
1171 result.Module("mysdk_myjavalib.stubs.source@current", "android_common")
Paul Duffin33028712021-06-22 11:00:07 +01001172 }),
Paul Duffindd46f712020-02-10 13:37:10 +00001173 )
1174}
Paul Duffin3375e352020-04-28 10:44:03 +01001175
Paul Duffin22628d52021-05-12 23:13:22 +01001176func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1177 result := android.GroupFixturePreparers(
1178 prepareForSdkTestWithJavaSdkLibrary,
1179 android.FixtureMergeEnv(map[string]string{
1180 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1181 }),
1182 ).RunTestWithBp(t, `
1183 sdk {
1184 name: "mysdk",
1185 java_sdk_libs: ["myjavalib"],
1186 }
1187
1188 java_sdk_library {
1189 name: "myjavalib",
1190 srcs: ["Test.java"],
1191 sdk_version: "current",
1192 shared_library: false,
1193 public: {
1194 enabled: true,
1195 },
1196 }
1197 `)
1198
1199 CheckSnapshot(t, result, "mysdk", "",
1200 checkUnversionedAndroidBpContents(`
1201// This is auto-generated. DO NOT EDIT.
1202
1203java_sdk_library_import {
1204 name: "myjavalib",
1205 prefer: false,
1206 visibility: ["//visibility:public"],
1207 apex_available: ["//apex_available:platform"],
1208 shared_library: false,
1209 public: {
1210 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1211 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1212 current_api: "sdk_library/public/myjavalib.txt",
1213 removed_api: "sdk_library/public/myjavalib-removed.txt",
1214 sdk_version: "current",
1215 },
1216}
1217 `),
1218 checkAllCopyRules(`
1219.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1220.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1221.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1222.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1223 `),
1224 )
1225}
1226
Anton Hanssond78eb762021-09-21 15:25:12 +01001227func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1228 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1229 sdk {
1230 name: "mysdk",
1231 java_sdk_libs: ["myjavalib"],
1232 }
1233
1234 java_sdk_library {
1235 name: "myjavalib",
1236 srcs: ["Test.java"],
1237 sdk_version: "current",
1238 shared_library: false,
1239 annotations_enabled: true,
1240 public: {
1241 enabled: true,
1242 },
1243 }
1244 `)
1245
1246 CheckSnapshot(t, result, "mysdk", "",
1247 checkUnversionedAndroidBpContents(`
1248// This is auto-generated. DO NOT EDIT.
1249
1250java_sdk_library_import {
1251 name: "myjavalib",
1252 prefer: false,
1253 visibility: ["//visibility:public"],
1254 apex_available: ["//apex_available:platform"],
1255 shared_library: false,
1256 public: {
1257 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1258 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1259 current_api: "sdk_library/public/myjavalib.txt",
1260 removed_api: "sdk_library/public/myjavalib-removed.txt",
1261 annotations: "sdk_library/public/myjavalib_annotations.zip",
1262 sdk_version: "current",
1263 },
1264}
1265 `),
1266 checkAllCopyRules(`
1267.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1268.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1269.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1270.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
1271 `),
1272 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1273 )
1274}
1275
Paul Duffina54016c2022-01-27 16:39:47 +00001276func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
1277 result := android.GroupFixturePreparers(
1278 prepareForSdkTestWithJavaSdkLibrary,
1279 android.FixtureMergeEnv(map[string]string{
1280 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1281 }),
1282 ).RunTestWithBp(t, `
1283 sdk {
1284 name: "mysdk",
1285 java_sdk_libs: ["myjavalib"],
1286 }
1287
1288 java_sdk_library {
1289 name: "myjavalib",
1290 srcs: ["Test.java"],
1291 sdk_version: "current",
1292 shared_library: false,
1293 annotations_enabled: true,
1294 public: {
1295 enabled: true,
1296 },
1297 }
1298 `)
1299
1300 CheckSnapshot(t, result, "mysdk", "",
1301 checkUnversionedAndroidBpContents(`
1302// This is auto-generated. DO NOT EDIT.
1303
1304java_sdk_library_import {
1305 name: "myjavalib",
1306 prefer: false,
1307 visibility: ["//visibility:public"],
1308 apex_available: ["//apex_available:platform"],
1309 shared_library: false,
1310 public: {
1311 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1312 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1313 current_api: "sdk_library/public/myjavalib.txt",
1314 removed_api: "sdk_library/public/myjavalib-removed.txt",
1315 sdk_version: "current",
1316 },
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/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1322.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1323 `),
1324 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1325 )
1326}
1327
Paul Duffin1267d872021-04-16 17:21:36 +01001328func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1329 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1330 sdk {
1331 name: "mysdk",
1332 java_sdk_libs: ["myjavalib"],
1333 }
1334
1335 java_sdk_library {
1336 name: "myjavalib",
1337 srcs: ["Test.java"],
1338 sdk_version: "current",
1339 shared_library: false,
1340 compile_dex: true,
1341 public: {
1342 enabled: true,
1343 },
1344 system: {
1345 enabled: true,
1346 },
1347 }
1348 `)
1349
1350 CheckSnapshot(t, result, "mysdk", "",
1351 checkUnversionedAndroidBpContents(`
1352// This is auto-generated. DO NOT EDIT.
1353
1354java_sdk_library_import {
1355 name: "myjavalib",
1356 prefer: false,
1357 visibility: ["//visibility:public"],
1358 apex_available: ["//apex_available:platform"],
1359 shared_library: false,
1360 compile_dex: true,
1361 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`),
1377 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1378 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1379 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1380 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001381 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001382 return path.RelativeToTop().String()
1383 }
1384
1385 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1386 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1387
1388 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1389 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1390 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1391
1392 // This should fall back to system as module is not available.
1393 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1394 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1395
1396 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1397 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1398 }),
1399 )
1400}
1401
Paul Duffin780c5f42020-05-12 15:52:55 +01001402func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001403 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001404 sdk {
1405 name: "mysdk",
1406 java_sdk_libs: ["myjavalib"],
1407 }
1408
1409 java_sdk_library {
1410 name: "myjavalib",
1411 srcs: ["Test.java"],
1412 sdk_version: "none",
1413 system_modules: "none",
1414 }
1415 `)
1416
Paul Duffin36474d32021-03-12 12:19:43 +00001417 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001418 checkUnversionedAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001419// This is auto-generated. DO NOT EDIT.
1420
1421java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001422 name: "myjavalib",
1423 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001424 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001425 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001426 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001427 public: {
1428 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001429 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001430 current_api: "sdk_library/public/myjavalib.txt",
1431 removed_api: "sdk_library/public/myjavalib-removed.txt",
1432 sdk_version: "none",
1433 },
1434}
Paul Duffine1381882021-04-16 17:05:10 +01001435`),
1436 checkVersionedAndroidBpContents(`
1437// This is auto-generated. DO NOT EDIT.
Paul Duffin780c5f42020-05-12 15:52:55 +01001438
1439java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001440 name: "mysdk_myjavalib@current",
1441 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001442 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001443 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001444 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001445 public: {
1446 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001447 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001448 current_api: "sdk_library/public/myjavalib.txt",
1449 removed_api: "sdk_library/public/myjavalib-removed.txt",
1450 sdk_version: "none",
1451 },
1452}
1453
1454sdk_snapshot {
1455 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001456 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001457 java_sdk_libs: ["mysdk_myjavalib@current"],
1458}
1459`),
1460 checkAllCopyRules(`
1461.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001462.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1463.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001464`),
1465 checkMergeZips(
1466 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1467 ),
1468 )
1469}
1470
Paul Duffin87a05a32020-05-12 11:50:28 +01001471func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001472 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001473 sdk {
1474 name: "mysdk",
1475 java_sdk_libs: ["myjavalib"],
1476 }
1477
1478 java_sdk_library {
1479 name: "myjavalib",
1480 srcs: ["Test.java"],
1481 sdk_version: "module_current",
1482 public: {
1483 enabled: true,
1484 sdk_version: "module_current",
1485 },
1486 }
1487 `)
1488
Paul Duffin36474d32021-03-12 12:19:43 +00001489 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001490 checkUnversionedAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001491// This is auto-generated. DO NOT EDIT.
1492
1493java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001494 name: "myjavalib",
1495 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001496 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001497 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001498 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +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 Duffin87a05a32020-05-12 11:50:28 +01001502 current_api: "sdk_library/public/myjavalib.txt",
1503 removed_api: "sdk_library/public/myjavalib-removed.txt",
1504 sdk_version: "module_current",
1505 },
1506}
Paul Duffine1381882021-04-16 17:05:10 +01001507`),
1508 checkVersionedAndroidBpContents(`
1509// This is auto-generated. DO NOT EDIT.
Paul Duffin87a05a32020-05-12 11:50:28 +01001510
1511java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001512 name: "mysdk_myjavalib@current",
1513 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001514 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001515 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001516 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001517 public: {
1518 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001519 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001520 current_api: "sdk_library/public/myjavalib.txt",
1521 removed_api: "sdk_library/public/myjavalib-removed.txt",
1522 sdk_version: "module_current",
1523 },
1524}
1525
1526sdk_snapshot {
1527 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001528 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001529 java_sdk_libs: ["mysdk_myjavalib@current"],
1530}
1531`),
1532 checkAllCopyRules(`
1533.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001534.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1535.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001536`),
1537 checkMergeZips(
1538 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1539 ),
1540 )
1541}
1542
1543func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001544 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001545 sdk {
1546 name: "mysdk",
1547 java_sdk_libs: ["myjavalib"],
1548 }
1549
1550 java_sdk_library {
1551 name: "myjavalib",
1552 apex_available: ["//apex_available:anyapex"],
1553 srcs: ["Test.java"],
1554 sdk_version: "current",
1555 public: {
1556 enabled: true,
1557 },
1558 system: {
1559 enabled: true,
1560 },
1561 }
1562 `)
1563
Paul Duffin36474d32021-03-12 12:19:43 +00001564 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001565 checkUnversionedAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001566// This is auto-generated. DO NOT EDIT.
1567
1568java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001569 name: "myjavalib",
1570 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001571 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001572 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001573 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001574 public: {
1575 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001576 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001577 current_api: "sdk_library/public/myjavalib.txt",
1578 removed_api: "sdk_library/public/myjavalib-removed.txt",
1579 sdk_version: "current",
1580 },
1581 system: {
1582 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001583 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001584 current_api: "sdk_library/system/myjavalib.txt",
1585 removed_api: "sdk_library/system/myjavalib-removed.txt",
1586 sdk_version: "system_current",
1587 },
1588}
Paul Duffine1381882021-04-16 17:05:10 +01001589`),
1590 checkVersionedAndroidBpContents(`
1591// This is auto-generated. DO NOT EDIT.
Paul Duffin3375e352020-04-28 10:44:03 +01001592
1593java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001594 name: "mysdk_myjavalib@current",
1595 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001596 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001597 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001598 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001599 public: {
1600 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001601 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001602 current_api: "sdk_library/public/myjavalib.txt",
1603 removed_api: "sdk_library/public/myjavalib-removed.txt",
1604 sdk_version: "current",
1605 },
1606 system: {
1607 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001608 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001609 current_api: "sdk_library/system/myjavalib.txt",
1610 removed_api: "sdk_library/system/myjavalib-removed.txt",
1611 sdk_version: "system_current",
1612 },
1613}
1614
1615sdk_snapshot {
1616 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001617 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001618 java_sdk_libs: ["mysdk_myjavalib@current"],
1619}
1620`),
1621 checkAllCopyRules(`
1622.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001623.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1624.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001625.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001626.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1627.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001628`),
1629 checkMergeZips(
1630 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1631 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1632 ),
1633 )
1634}
Paul Duffin8f265b92020-04-28 14:13:56 +01001635
1636func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001637 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001638 sdk {
1639 name: "mysdk",
1640 java_sdk_libs: ["myjavalib"],
1641 }
1642
1643 java_sdk_library {
1644 name: "myjavalib",
1645 apex_available: ["//apex_available:anyapex"],
1646 srcs: ["Test.java"],
1647 sdk_version: "current",
1648 public: {
1649 enabled: true,
1650 },
1651 system: {
1652 enabled: true,
1653 },
1654 module_lib: {
1655 enabled: true,
1656 },
1657 }
1658 `)
1659
Paul Duffin36474d32021-03-12 12:19:43 +00001660 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001661 checkUnversionedAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001662// This is auto-generated. DO NOT EDIT.
1663
1664java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001665 name: "myjavalib",
1666 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001667 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001668 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001669 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001670 public: {
1671 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001672 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001673 current_api: "sdk_library/public/myjavalib.txt",
1674 removed_api: "sdk_library/public/myjavalib-removed.txt",
1675 sdk_version: "current",
1676 },
1677 system: {
1678 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001679 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001680 current_api: "sdk_library/system/myjavalib.txt",
1681 removed_api: "sdk_library/system/myjavalib-removed.txt",
1682 sdk_version: "system_current",
1683 },
1684 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001685 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001686 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001687 current_api: "sdk_library/module-lib/myjavalib.txt",
1688 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001689 sdk_version: "module_current",
1690 },
1691}
Paul Duffine1381882021-04-16 17:05:10 +01001692`),
1693 checkVersionedAndroidBpContents(`
1694// This is auto-generated. DO NOT EDIT.
Paul Duffin8f265b92020-04-28 14:13:56 +01001695
1696java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001697 name: "mysdk_myjavalib@current",
1698 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001699 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001700 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001701 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001702 public: {
1703 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001704 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001705 current_api: "sdk_library/public/myjavalib.txt",
1706 removed_api: "sdk_library/public/myjavalib-removed.txt",
1707 sdk_version: "current",
1708 },
1709 system: {
1710 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001711 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001712 current_api: "sdk_library/system/myjavalib.txt",
1713 removed_api: "sdk_library/system/myjavalib-removed.txt",
1714 sdk_version: "system_current",
1715 },
1716 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001717 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001718 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001719 current_api: "sdk_library/module-lib/myjavalib.txt",
1720 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001721 sdk_version: "module_current",
1722 },
1723}
1724
1725sdk_snapshot {
1726 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001727 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001728 java_sdk_libs: ["mysdk_myjavalib@current"],
1729}
1730`),
1731 checkAllCopyRules(`
1732.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001733.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1734.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001735.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001736.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1737.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin6b836ba2020-05-13 19:19:49 +01001738.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001739.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1740.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001741`),
1742 checkMergeZips(
1743 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1744 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001745 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001746 ),
1747 )
1748}
Paul Duffinf7a64332020-05-13 16:54:55 +01001749
Paul Duffin0c5bae52020-06-02 13:00:08 +01001750func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001751 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001752 sdk {
1753 name: "mysdk",
1754 java_sdk_libs: ["myjavalib"],
1755 }
1756
1757 java_sdk_library {
1758 name: "myjavalib",
1759 apex_available: ["//apex_available:anyapex"],
1760 srcs: ["Test.java"],
1761 sdk_version: "current",
1762 public: {
1763 enabled: true,
1764 },
1765 system_server: {
1766 enabled: true,
1767 },
1768 }
1769 `)
1770
Paul Duffin36474d32021-03-12 12:19:43 +00001771 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001772 checkUnversionedAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001773// This is auto-generated. DO NOT EDIT.
1774
1775java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001776 name: "myjavalib",
1777 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001778 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001779 apex_available: ["//apex_available:anyapex"],
1780 shared_library: true,
1781 public: {
1782 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001783 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001784 current_api: "sdk_library/public/myjavalib.txt",
1785 removed_api: "sdk_library/public/myjavalib-removed.txt",
1786 sdk_version: "current",
1787 },
1788 system_server: {
1789 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001790 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001791 current_api: "sdk_library/system-server/myjavalib.txt",
1792 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1793 sdk_version: "system_server_current",
1794 },
1795}
Paul Duffine1381882021-04-16 17:05:10 +01001796`),
1797 checkVersionedAndroidBpContents(`
1798// This is auto-generated. DO NOT EDIT.
Paul Duffin0c5bae52020-06-02 13:00:08 +01001799
1800java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001801 name: "mysdk_myjavalib@current",
1802 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001803 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001804 apex_available: ["//apex_available:anyapex"],
1805 shared_library: true,
1806 public: {
1807 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001808 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001809 current_api: "sdk_library/public/myjavalib.txt",
1810 removed_api: "sdk_library/public/myjavalib-removed.txt",
1811 sdk_version: "current",
1812 },
1813 system_server: {
1814 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001815 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001816 current_api: "sdk_library/system-server/myjavalib.txt",
1817 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1818 sdk_version: "system_server_current",
1819 },
1820}
1821
1822sdk_snapshot {
1823 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001824 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001825 java_sdk_libs: ["mysdk_myjavalib@current"],
1826}
1827`),
1828 checkAllCopyRules(`
1829.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001830.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1831.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin0c5bae52020-06-02 13:00:08 +01001832.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001833.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1834.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
Paul Duffin0c5bae52020-06-02 13:00:08 +01001835`),
1836 checkMergeZips(
1837 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1838 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1839 ),
1840 )
1841}
1842
Paul Duffinf7a64332020-05-13 16:54:55 +01001843func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001844 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001845 sdk {
1846 name: "mysdk",
1847 java_sdk_libs: ["myjavalib"],
1848 }
1849
1850 java_sdk_library {
1851 name: "myjavalib",
1852 apex_available: ["//apex_available:anyapex"],
1853 srcs: ["Test.java"],
1854 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001855 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001856 public: {
1857 enabled: true,
1858 },
1859 }
1860 `)
1861
Paul Duffin36474d32021-03-12 12:19:43 +00001862 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001863 checkUnversionedAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001864// This is auto-generated. DO NOT EDIT.
1865
1866java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001867 name: "myjavalib",
1868 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001869 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001870 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001871 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001872 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001873 public: {
1874 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001875 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001876 current_api: "sdk_library/public/myjavalib.txt",
1877 removed_api: "sdk_library/public/myjavalib-removed.txt",
1878 sdk_version: "current",
1879 },
1880}
Paul Duffine1381882021-04-16 17:05:10 +01001881`),
1882 checkVersionedAndroidBpContents(`
1883// This is auto-generated. DO NOT EDIT.
Paul Duffinf7a64332020-05-13 16:54:55 +01001884
1885java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001886 name: "mysdk_myjavalib@current",
1887 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001888 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001889 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001890 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001891 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001892 public: {
1893 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001894 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001895 current_api: "sdk_library/public/myjavalib.txt",
1896 removed_api: "sdk_library/public/myjavalib-removed.txt",
1897 sdk_version: "current",
1898 },
1899}
1900
1901sdk_snapshot {
1902 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001903 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001904 java_sdk_libs: ["mysdk_myjavalib@current"],
1905}
1906`),
1907 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001908.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001909.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1910.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001911`),
1912 checkMergeZips(
1913 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1914 ),
1915 )
1916}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001917
1918func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001919 result := android.GroupFixturePreparers(
1920 prepareForSdkTestWithJavaSdkLibrary,
1921 android.FixtureAddFile("docs/known_doctags", nil),
1922 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001923 sdk {
1924 name: "mysdk",
1925 java_sdk_libs: ["myjavalib"],
1926 }
1927
1928 java_sdk_library {
1929 name: "myjavalib",
1930 srcs: ["Test.java"],
1931 sdk_version: "current",
1932 public: {
1933 enabled: true,
1934 },
1935 doctag_files: ["docs/known_doctags"],
1936 }
1937
1938 filegroup {
1939 name: "mygroup",
1940 srcs: [":myjavalib{.doctags}"],
1941 }
1942 `)
1943
Paul Duffin36474d32021-03-12 12:19:43 +00001944 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001945 checkUnversionedAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001946// This is auto-generated. DO NOT EDIT.
1947
1948java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001949 name: "myjavalib",
1950 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001951 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001952 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001953 shared_library: true,
1954 doctag_files: ["doctags/docs/known_doctags"],
1955 public: {
1956 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001957 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001958 current_api: "sdk_library/public/myjavalib.txt",
1959 removed_api: "sdk_library/public/myjavalib-removed.txt",
1960 sdk_version: "current",
1961 },
1962}
Paul Duffine1381882021-04-16 17:05:10 +01001963`),
1964 checkVersionedAndroidBpContents(`
1965// This is auto-generated. DO NOT EDIT.
Paul Duffina2ae7e02020-09-11 11:55:00 +01001966
1967java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001968 name: "mysdk_myjavalib@current",
1969 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001970 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001971 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001972 shared_library: true,
1973 doctag_files: ["doctags/docs/known_doctags"],
1974 public: {
1975 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001976 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001977 current_api: "sdk_library/public/myjavalib.txt",
1978 removed_api: "sdk_library/public/myjavalib-removed.txt",
1979 sdk_version: "current",
1980 },
1981}
1982
1983sdk_snapshot {
1984 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001985 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001986 java_sdk_libs: ["mysdk_myjavalib@current"],
1987}
1988`),
1989 checkAllCopyRules(`
1990.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001991.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1992.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffina2ae7e02020-09-11 11:55:00 +01001993docs/known_doctags -> doctags/docs/known_doctags
1994`),
1995 )
1996}