blob: a99fa1ff0a90b2a798ba4229e8743448450069ce [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 Duffin7b81f5e2020-01-13 21:03:22 +0000799 )
800}
801
802func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000803 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000804 sdk {
805 name: "mysdk",
806 device_supported: false,
807 host_supported: true,
808 java_system_modules: ["my-system-modules"],
809 }
810
811 java_system_modules {
812 name: "my-system-modules",
813 device_supported: false,
814 host_supported: true,
815 libs: ["system-module"],
816 }
817
818 java_library {
819 name: "system-module",
820 device_supported: false,
821 host_supported: true,
822 srcs: ["Test.java"],
823 sdk_version: "none",
824 system_modules: "none",
825 }
826 `)
827
Paul Duffin36474d32021-03-12 12:19:43 +0000828 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100829 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000830// This is auto-generated. DO NOT EDIT.
831
832java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100833 name: "mysdk_system-module",
834 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000835 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000836 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000837 device_supported: false,
838 host_supported: true,
839 jars: ["java/system-module.jar"],
840}
841
Paul Duffine1381882021-04-16 17:05:10 +0100842java_system_modules_import {
843 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000844 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100845 visibility: ["//visibility:public"],
846 device_supported: false,
847 host_supported: true,
848 libs: ["mysdk_system-module"],
849}
850`),
851 checkVersionedAndroidBpContents(`
852// This is auto-generated. DO NOT EDIT.
853
854java_import {
855 name: "mysdk_system-module@current",
856 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000857 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000858 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000859 device_supported: false,
860 host_supported: true,
861 jars: ["java/system-module.jar"],
862}
863
864java_system_modules_import {
865 name: "mysdk_my-system-modules@current",
866 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100867 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000868 device_supported: false,
869 host_supported: true,
870 libs: ["mysdk_system-module@current"],
871}
872
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000873sdk_snapshot {
874 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100875 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000876 device_supported: false,
877 host_supported: true,
878 java_system_modules: ["mysdk_my-system-modules@current"],
879}
880`),
881 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
882 )
883}
Paul Duffin865171e2020-03-02 18:38:15 +0000884
885func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000886 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000887 module_exports {
888 name: "myexports",
889 host_supported: true,
890 java_libs: ["myjavalib"],
891 target: {
892 android: {
893 java_header_libs: ["androidjavalib"],
894 },
895 host: {
896 java_header_libs: ["hostjavalib"],
897 },
898 },
899 }
900
901 java_library {
902 name: "myjavalib",
903 host_supported: true,
904 srcs: ["Test.java"],
905 system_modules: "none",
906 sdk_version: "none",
907 }
908
909 java_library {
910 name: "androidjavalib",
911 srcs: ["Test.java"],
912 system_modules: "none",
913 sdk_version: "none",
914 }
915
916 java_library_host {
917 name: "hostjavalib",
918 srcs: ["Test.java"],
919 }
920 `)
921
Paul Duffin36474d32021-03-12 12:19:43 +0000922 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100923 checkUnversionedAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000924// This is auto-generated. DO NOT EDIT.
925
926java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100927 name: "hostjavalib",
928 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100929 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000930 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000931 device_supported: false,
932 host_supported: true,
933 jars: ["java/hostjavalib.jar"],
934}
935
936java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100937 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000938 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100939 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000940 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100941 jars: ["java/androidjavalib.jar"],
942}
943
944java_import {
945 name: "myjavalib",
946 prefer: false,
947 visibility: ["//visibility:public"],
948 apex_available: ["//apex_available:platform"],
949 host_supported: true,
950 target: {
951 android: {
952 jars: ["java/android/myjavalib.jar"],
953 },
954 linux_glibc: {
955 jars: ["java/linux_glibc/myjavalib.jar"],
956 },
957 },
958}
959`),
960 checkVersionedAndroidBpContents(`
961// This is auto-generated. DO NOT EDIT.
962
963java_import {
964 name: "myexports_hostjavalib@current",
965 sdk_member_name: "hostjavalib",
966 visibility: ["//visibility:public"],
967 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000968 device_supported: false,
969 host_supported: true,
970 jars: ["java/hostjavalib.jar"],
971}
972
973java_import {
974 name: "myexports_androidjavalib@current",
975 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100976 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000977 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000978 jars: ["java/androidjavalib.jar"],
979}
980
981java_import {
Paul Duffin865171e2020-03-02 18:38:15 +0000982 name: "myexports_myjavalib@current",
983 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100984 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000985 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000986 host_supported: true,
987 target: {
988 android: {
989 jars: ["java/android/myjavalib.jar"],
990 },
991 linux_glibc: {
992 jars: ["java/linux_glibc/myjavalib.jar"],
993 },
994 },
995}
996
Paul Duffin865171e2020-03-02 18:38:15 +0000997module_exports_snapshot {
998 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100999 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001000 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001001 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001002 target: {
1003 android: {
1004 java_header_libs: ["myexports_androidjavalib@current"],
1005 },
1006 linux_glibc: {
1007 java_header_libs: ["myexports_hostjavalib@current"],
1008 },
1009 },
Paul Duffin865171e2020-03-02 18:38:15 +00001010}
1011`),
1012 checkAllCopyRules(`
1013.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1014.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1015.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1016.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1017`),
1018 )
1019}
Paul Duffindd46f712020-02-10 13:37:10 +00001020
1021func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001022 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001023 sdk {
1024 name: "mysdk",
1025 java_sdk_libs: ["myjavalib"],
1026 }
1027
1028 java_sdk_library {
1029 name: "myjavalib",
1030 apex_available: ["//apex_available:anyapex"],
1031 srcs: ["Test.java"],
1032 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001033 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001034 stubs_library_visibility: ["//other"],
1035 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +01001036 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001037 }
1038 `)
1039
Paul Duffin36474d32021-03-12 12:19:43 +00001040 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001041 checkUnversionedAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001042// This is auto-generated. DO NOT EDIT.
1043
1044java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001045 name: "myjavalib",
1046 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001047 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001048 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001049 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001050 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001051 public: {
1052 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001053 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001054 current_api: "sdk_library/public/myjavalib.txt",
1055 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001056 sdk_version: "current",
1057 },
1058 system: {
1059 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001060 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001061 current_api: "sdk_library/system/myjavalib.txt",
1062 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001063 sdk_version: "system_current",
1064 },
1065 test: {
1066 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001067 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001068 current_api: "sdk_library/test/myjavalib.txt",
1069 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001070 sdk_version: "test_current",
1071 },
1072}
Paul Duffine1381882021-04-16 17:05:10 +01001073`),
1074 checkVersionedAndroidBpContents(`
1075// This is auto-generated. DO NOT EDIT.
Paul Duffindd46f712020-02-10 13:37:10 +00001076
1077java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001078 name: "mysdk_myjavalib@current",
1079 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001080 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001081 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001082 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001083 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001084 public: {
1085 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001086 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001087 current_api: "sdk_library/public/myjavalib.txt",
1088 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001089 sdk_version: "current",
1090 },
1091 system: {
1092 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001093 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001094 current_api: "sdk_library/system/myjavalib.txt",
1095 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001096 sdk_version: "system_current",
1097 },
1098 test: {
1099 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001100 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001101 current_api: "sdk_library/test/myjavalib.txt",
1102 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001103 sdk_version: "test_current",
1104 },
1105}
1106
1107sdk_snapshot {
1108 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001109 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001110 java_sdk_libs: ["mysdk_myjavalib@current"],
1111}
1112`),
1113 checkAllCopyRules(`
1114.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001115.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1116.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 +00001117.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001118.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1119.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 +00001120.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001121.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1122.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 +00001123`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001124 checkMergeZips(
1125 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1126 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +01001127 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1128 ),
1129 snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) {
Paul Duffinb97b1572021-04-29 21:50:40 +01001130 // Make sure that the name of the child modules created by a versioned java_sdk_library_import
1131 // module is correct, i.e. the suffix is added before the version and not after.
1132 result.Module("mysdk_myjavalib.stubs@current", "android_common")
1133 result.Module("mysdk_myjavalib.stubs.source@current", "android_common")
Paul Duffin33028712021-06-22 11:00:07 +01001134 }),
Paul Duffindd46f712020-02-10 13:37:10 +00001135 )
1136}
Paul Duffin3375e352020-04-28 10:44:03 +01001137
Paul Duffin22628d52021-05-12 23:13:22 +01001138func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1139 result := android.GroupFixturePreparers(
1140 prepareForSdkTestWithJavaSdkLibrary,
1141 android.FixtureMergeEnv(map[string]string{
1142 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1143 }),
1144 ).RunTestWithBp(t, `
1145 sdk {
1146 name: "mysdk",
1147 java_sdk_libs: ["myjavalib"],
1148 }
1149
1150 java_sdk_library {
1151 name: "myjavalib",
1152 srcs: ["Test.java"],
1153 sdk_version: "current",
1154 shared_library: false,
1155 public: {
1156 enabled: true,
1157 },
1158 }
1159 `)
1160
1161 CheckSnapshot(t, result, "mysdk", "",
1162 checkUnversionedAndroidBpContents(`
1163// This is auto-generated. DO NOT EDIT.
1164
1165java_sdk_library_import {
1166 name: "myjavalib",
1167 prefer: false,
1168 visibility: ["//visibility:public"],
1169 apex_available: ["//apex_available:platform"],
1170 shared_library: false,
1171 public: {
1172 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1173 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1174 current_api: "sdk_library/public/myjavalib.txt",
1175 removed_api: "sdk_library/public/myjavalib-removed.txt",
1176 sdk_version: "current",
1177 },
1178}
1179 `),
1180 checkAllCopyRules(`
1181.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1182.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1183.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1184.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1185 `),
1186 )
1187}
1188
Anton Hanssond78eb762021-09-21 15:25:12 +01001189func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1190 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1191 sdk {
1192 name: "mysdk",
1193 java_sdk_libs: ["myjavalib"],
1194 }
1195
1196 java_sdk_library {
1197 name: "myjavalib",
1198 srcs: ["Test.java"],
1199 sdk_version: "current",
1200 shared_library: false,
1201 annotations_enabled: true,
1202 public: {
1203 enabled: true,
1204 },
1205 }
1206 `)
1207
1208 CheckSnapshot(t, result, "mysdk", "",
1209 checkUnversionedAndroidBpContents(`
1210// This is auto-generated. DO NOT EDIT.
1211
1212java_sdk_library_import {
1213 name: "myjavalib",
1214 prefer: false,
1215 visibility: ["//visibility:public"],
1216 apex_available: ["//apex_available:platform"],
1217 shared_library: false,
1218 public: {
1219 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1220 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1221 current_api: "sdk_library/public/myjavalib.txt",
1222 removed_api: "sdk_library/public/myjavalib-removed.txt",
1223 annotations: "sdk_library/public/myjavalib_annotations.zip",
1224 sdk_version: "current",
1225 },
1226}
1227 `),
1228 checkAllCopyRules(`
1229.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1230.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1231.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1232.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
1233 `),
1234 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1235 )
1236}
1237
Paul Duffina54016c2022-01-27 16:39:47 +00001238func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
1239 result := android.GroupFixturePreparers(
1240 prepareForSdkTestWithJavaSdkLibrary,
1241 android.FixtureMergeEnv(map[string]string{
1242 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1243 }),
1244 ).RunTestWithBp(t, `
1245 sdk {
1246 name: "mysdk",
1247 java_sdk_libs: ["myjavalib"],
1248 }
1249
1250 java_sdk_library {
1251 name: "myjavalib",
1252 srcs: ["Test.java"],
1253 sdk_version: "current",
1254 shared_library: false,
1255 annotations_enabled: true,
1256 public: {
1257 enabled: true,
1258 },
1259 }
1260 `)
1261
1262 CheckSnapshot(t, result, "mysdk", "",
1263 checkUnversionedAndroidBpContents(`
1264// This is auto-generated. DO NOT EDIT.
1265
1266java_sdk_library_import {
1267 name: "myjavalib",
1268 prefer: false,
1269 visibility: ["//visibility:public"],
1270 apex_available: ["//apex_available:platform"],
1271 shared_library: false,
1272 public: {
1273 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1274 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1275 current_api: "sdk_library/public/myjavalib.txt",
1276 removed_api: "sdk_library/public/myjavalib-removed.txt",
1277 sdk_version: "current",
1278 },
1279}
1280 `),
1281 checkAllCopyRules(`
1282.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1283.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1284.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1285 `),
1286 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1287 )
1288}
1289
Paul Duffin1267d872021-04-16 17:21:36 +01001290func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1291 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1292 sdk {
1293 name: "mysdk",
1294 java_sdk_libs: ["myjavalib"],
1295 }
1296
1297 java_sdk_library {
1298 name: "myjavalib",
1299 srcs: ["Test.java"],
1300 sdk_version: "current",
1301 shared_library: false,
1302 compile_dex: true,
1303 public: {
1304 enabled: true,
1305 },
1306 system: {
1307 enabled: true,
1308 },
1309 }
1310 `)
1311
1312 CheckSnapshot(t, result, "mysdk", "",
1313 checkUnversionedAndroidBpContents(`
1314// This is auto-generated. DO NOT EDIT.
1315
1316java_sdk_library_import {
1317 name: "myjavalib",
1318 prefer: false,
1319 visibility: ["//visibility:public"],
1320 apex_available: ["//apex_available:platform"],
1321 shared_library: false,
1322 compile_dex: true,
1323 public: {
1324 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1325 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1326 current_api: "sdk_library/public/myjavalib.txt",
1327 removed_api: "sdk_library/public/myjavalib-removed.txt",
1328 sdk_version: "current",
1329 },
1330 system: {
1331 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1332 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1333 current_api: "sdk_library/system/myjavalib.txt",
1334 removed_api: "sdk_library/system/myjavalib-removed.txt",
1335 sdk_version: "system_current",
1336 },
1337}
1338`),
1339 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1340 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1341 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1342 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001343 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001344 return path.RelativeToTop().String()
1345 }
1346
1347 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1348 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1349
1350 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1351 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1352 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1353
1354 // This should fall back to system as module is not available.
1355 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1356 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1357
1358 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1359 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1360 }),
1361 )
1362}
1363
Paul Duffin780c5f42020-05-12 15:52:55 +01001364func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001365 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001366 sdk {
1367 name: "mysdk",
1368 java_sdk_libs: ["myjavalib"],
1369 }
1370
1371 java_sdk_library {
1372 name: "myjavalib",
1373 srcs: ["Test.java"],
1374 sdk_version: "none",
1375 system_modules: "none",
1376 }
1377 `)
1378
Paul Duffin36474d32021-03-12 12:19:43 +00001379 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001380 checkUnversionedAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001381// This is auto-generated. DO NOT EDIT.
1382
1383java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001384 name: "myjavalib",
1385 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001386 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001387 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001388 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001389 public: {
1390 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001391 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001392 current_api: "sdk_library/public/myjavalib.txt",
1393 removed_api: "sdk_library/public/myjavalib-removed.txt",
1394 sdk_version: "none",
1395 },
1396}
Paul Duffine1381882021-04-16 17:05:10 +01001397`),
1398 checkVersionedAndroidBpContents(`
1399// This is auto-generated. DO NOT EDIT.
Paul Duffin780c5f42020-05-12 15:52:55 +01001400
1401java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001402 name: "mysdk_myjavalib@current",
1403 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001404 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001405 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001406 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001407 public: {
1408 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001409 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001410 current_api: "sdk_library/public/myjavalib.txt",
1411 removed_api: "sdk_library/public/myjavalib-removed.txt",
1412 sdk_version: "none",
1413 },
1414}
1415
1416sdk_snapshot {
1417 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001418 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001419 java_sdk_libs: ["mysdk_myjavalib@current"],
1420}
1421`),
1422 checkAllCopyRules(`
1423.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001424.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1425.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 +01001426`),
1427 checkMergeZips(
1428 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1429 ),
1430 )
1431}
1432
Paul Duffin87a05a32020-05-12 11:50:28 +01001433func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001434 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001435 sdk {
1436 name: "mysdk",
1437 java_sdk_libs: ["myjavalib"],
1438 }
1439
1440 java_sdk_library {
1441 name: "myjavalib",
1442 srcs: ["Test.java"],
1443 sdk_version: "module_current",
1444 public: {
1445 enabled: true,
1446 sdk_version: "module_current",
1447 },
1448 }
1449 `)
1450
Paul Duffin36474d32021-03-12 12:19:43 +00001451 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001452 checkUnversionedAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001453// This is auto-generated. DO NOT EDIT.
1454
1455java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001456 name: "myjavalib",
1457 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001458 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001459 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001460 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001461 public: {
1462 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001463 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001464 current_api: "sdk_library/public/myjavalib.txt",
1465 removed_api: "sdk_library/public/myjavalib-removed.txt",
1466 sdk_version: "module_current",
1467 },
1468}
Paul Duffine1381882021-04-16 17:05:10 +01001469`),
1470 checkVersionedAndroidBpContents(`
1471// This is auto-generated. DO NOT EDIT.
Paul Duffin87a05a32020-05-12 11:50:28 +01001472
1473java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001474 name: "mysdk_myjavalib@current",
1475 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001476 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001477 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001478 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001479 public: {
1480 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001481 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001482 current_api: "sdk_library/public/myjavalib.txt",
1483 removed_api: "sdk_library/public/myjavalib-removed.txt",
1484 sdk_version: "module_current",
1485 },
1486}
1487
1488sdk_snapshot {
1489 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001490 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001491 java_sdk_libs: ["mysdk_myjavalib@current"],
1492}
1493`),
1494 checkAllCopyRules(`
1495.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001496.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1497.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 +01001498`),
1499 checkMergeZips(
1500 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1501 ),
1502 )
1503}
1504
1505func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001506 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001507 sdk {
1508 name: "mysdk",
1509 java_sdk_libs: ["myjavalib"],
1510 }
1511
1512 java_sdk_library {
1513 name: "myjavalib",
1514 apex_available: ["//apex_available:anyapex"],
1515 srcs: ["Test.java"],
1516 sdk_version: "current",
1517 public: {
1518 enabled: true,
1519 },
1520 system: {
1521 enabled: true,
1522 },
1523 }
1524 `)
1525
Paul Duffin36474d32021-03-12 12:19:43 +00001526 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001527 checkUnversionedAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001528// This is auto-generated. DO NOT EDIT.
1529
1530java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001531 name: "myjavalib",
1532 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001533 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001534 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001535 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001536 public: {
1537 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001538 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001539 current_api: "sdk_library/public/myjavalib.txt",
1540 removed_api: "sdk_library/public/myjavalib-removed.txt",
1541 sdk_version: "current",
1542 },
1543 system: {
1544 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001545 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001546 current_api: "sdk_library/system/myjavalib.txt",
1547 removed_api: "sdk_library/system/myjavalib-removed.txt",
1548 sdk_version: "system_current",
1549 },
1550}
Paul Duffine1381882021-04-16 17:05:10 +01001551`),
1552 checkVersionedAndroidBpContents(`
1553// This is auto-generated. DO NOT EDIT.
Paul Duffin3375e352020-04-28 10:44:03 +01001554
1555java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001556 name: "mysdk_myjavalib@current",
1557 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001558 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001559 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001560 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001561 public: {
1562 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001563 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001564 current_api: "sdk_library/public/myjavalib.txt",
1565 removed_api: "sdk_library/public/myjavalib-removed.txt",
1566 sdk_version: "current",
1567 },
1568 system: {
1569 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001570 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001571 current_api: "sdk_library/system/myjavalib.txt",
1572 removed_api: "sdk_library/system/myjavalib-removed.txt",
1573 sdk_version: "system_current",
1574 },
1575}
1576
1577sdk_snapshot {
1578 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001579 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001580 java_sdk_libs: ["mysdk_myjavalib@current"],
1581}
1582`),
1583 checkAllCopyRules(`
1584.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001585.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1586.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 +01001587.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001588.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1589.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 +01001590`),
1591 checkMergeZips(
1592 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1593 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1594 ),
1595 )
1596}
Paul Duffin8f265b92020-04-28 14:13:56 +01001597
1598func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001599 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001600 sdk {
1601 name: "mysdk",
1602 java_sdk_libs: ["myjavalib"],
1603 }
1604
1605 java_sdk_library {
1606 name: "myjavalib",
1607 apex_available: ["//apex_available:anyapex"],
1608 srcs: ["Test.java"],
1609 sdk_version: "current",
1610 public: {
1611 enabled: true,
1612 },
1613 system: {
1614 enabled: true,
1615 },
1616 module_lib: {
1617 enabled: true,
1618 },
1619 }
1620 `)
1621
Paul Duffin36474d32021-03-12 12:19:43 +00001622 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001623 checkUnversionedAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001624// This is auto-generated. DO NOT EDIT.
1625
1626java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001627 name: "myjavalib",
1628 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001629 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001630 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001631 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001632 public: {
1633 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001634 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001635 current_api: "sdk_library/public/myjavalib.txt",
1636 removed_api: "sdk_library/public/myjavalib-removed.txt",
1637 sdk_version: "current",
1638 },
1639 system: {
1640 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001641 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001642 current_api: "sdk_library/system/myjavalib.txt",
1643 removed_api: "sdk_library/system/myjavalib-removed.txt",
1644 sdk_version: "system_current",
1645 },
1646 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001647 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001648 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001649 current_api: "sdk_library/module-lib/myjavalib.txt",
1650 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001651 sdk_version: "module_current",
1652 },
1653}
Paul Duffine1381882021-04-16 17:05:10 +01001654`),
1655 checkVersionedAndroidBpContents(`
1656// This is auto-generated. DO NOT EDIT.
Paul Duffin8f265b92020-04-28 14:13:56 +01001657
1658java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001659 name: "mysdk_myjavalib@current",
1660 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001661 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001662 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001663 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001664 public: {
1665 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001666 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001667 current_api: "sdk_library/public/myjavalib.txt",
1668 removed_api: "sdk_library/public/myjavalib-removed.txt",
1669 sdk_version: "current",
1670 },
1671 system: {
1672 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001673 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001674 current_api: "sdk_library/system/myjavalib.txt",
1675 removed_api: "sdk_library/system/myjavalib-removed.txt",
1676 sdk_version: "system_current",
1677 },
1678 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001679 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001680 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001681 current_api: "sdk_library/module-lib/myjavalib.txt",
1682 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001683 sdk_version: "module_current",
1684 },
1685}
1686
1687sdk_snapshot {
1688 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001689 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001690 java_sdk_libs: ["mysdk_myjavalib@current"],
1691}
1692`),
1693 checkAllCopyRules(`
1694.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001695.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1696.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 +01001697.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001698.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1699.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 +01001700.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 -07001701.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1702.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 +01001703`),
1704 checkMergeZips(
1705 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1706 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001707 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001708 ),
1709 )
1710}
Paul Duffinf7a64332020-05-13 16:54:55 +01001711
Paul Duffin0c5bae52020-06-02 13:00:08 +01001712func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001713 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001714 sdk {
1715 name: "mysdk",
1716 java_sdk_libs: ["myjavalib"],
1717 }
1718
1719 java_sdk_library {
1720 name: "myjavalib",
1721 apex_available: ["//apex_available:anyapex"],
1722 srcs: ["Test.java"],
1723 sdk_version: "current",
1724 public: {
1725 enabled: true,
1726 },
1727 system_server: {
1728 enabled: true,
1729 },
1730 }
1731 `)
1732
Paul Duffin36474d32021-03-12 12:19:43 +00001733 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001734 checkUnversionedAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001735// This is auto-generated. DO NOT EDIT.
1736
1737java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001738 name: "myjavalib",
1739 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001740 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001741 apex_available: ["//apex_available:anyapex"],
1742 shared_library: true,
1743 public: {
1744 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001745 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001746 current_api: "sdk_library/public/myjavalib.txt",
1747 removed_api: "sdk_library/public/myjavalib-removed.txt",
1748 sdk_version: "current",
1749 },
1750 system_server: {
1751 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001752 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001753 current_api: "sdk_library/system-server/myjavalib.txt",
1754 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1755 sdk_version: "system_server_current",
1756 },
1757}
Paul Duffine1381882021-04-16 17:05:10 +01001758`),
1759 checkVersionedAndroidBpContents(`
1760// This is auto-generated. DO NOT EDIT.
Paul Duffin0c5bae52020-06-02 13:00:08 +01001761
1762java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001763 name: "mysdk_myjavalib@current",
1764 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001765 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001766 apex_available: ["//apex_available:anyapex"],
1767 shared_library: true,
1768 public: {
1769 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001770 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001771 current_api: "sdk_library/public/myjavalib.txt",
1772 removed_api: "sdk_library/public/myjavalib-removed.txt",
1773 sdk_version: "current",
1774 },
1775 system_server: {
1776 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001777 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001778 current_api: "sdk_library/system-server/myjavalib.txt",
1779 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1780 sdk_version: "system_server_current",
1781 },
1782}
1783
1784sdk_snapshot {
1785 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001786 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001787 java_sdk_libs: ["mysdk_myjavalib@current"],
1788}
1789`),
1790 checkAllCopyRules(`
1791.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001792.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1793.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 +01001794.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 -07001795.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1796.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 +01001797`),
1798 checkMergeZips(
1799 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1800 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1801 ),
1802 )
1803}
1804
Paul Duffinf7a64332020-05-13 16:54:55 +01001805func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001806 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001807 sdk {
1808 name: "mysdk",
1809 java_sdk_libs: ["myjavalib"],
1810 }
1811
1812 java_sdk_library {
1813 name: "myjavalib",
1814 apex_available: ["//apex_available:anyapex"],
1815 srcs: ["Test.java"],
1816 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001817 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001818 public: {
1819 enabled: true,
1820 },
1821 }
1822 `)
1823
Paul Duffin36474d32021-03-12 12:19:43 +00001824 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001825 checkUnversionedAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001826// This is auto-generated. DO NOT EDIT.
1827
1828java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001829 name: "myjavalib",
1830 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001831 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001832 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001833 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001834 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001835 public: {
1836 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001837 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001838 current_api: "sdk_library/public/myjavalib.txt",
1839 removed_api: "sdk_library/public/myjavalib-removed.txt",
1840 sdk_version: "current",
1841 },
1842}
Paul Duffine1381882021-04-16 17:05:10 +01001843`),
1844 checkVersionedAndroidBpContents(`
1845// This is auto-generated. DO NOT EDIT.
Paul Duffinf7a64332020-05-13 16:54:55 +01001846
1847java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001848 name: "mysdk_myjavalib@current",
1849 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001850 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001851 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001852 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001853 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001854 public: {
1855 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001856 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001857 current_api: "sdk_library/public/myjavalib.txt",
1858 removed_api: "sdk_library/public/myjavalib-removed.txt",
1859 sdk_version: "current",
1860 },
1861}
1862
1863sdk_snapshot {
1864 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001865 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001866 java_sdk_libs: ["mysdk_myjavalib@current"],
1867}
1868`),
1869 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001870.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001871.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1872.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 +01001873`),
1874 checkMergeZips(
1875 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1876 ),
1877 )
1878}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001879
1880func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001881 result := android.GroupFixturePreparers(
1882 prepareForSdkTestWithJavaSdkLibrary,
1883 android.FixtureAddFile("docs/known_doctags", nil),
1884 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001885 sdk {
1886 name: "mysdk",
1887 java_sdk_libs: ["myjavalib"],
1888 }
1889
1890 java_sdk_library {
1891 name: "myjavalib",
1892 srcs: ["Test.java"],
1893 sdk_version: "current",
1894 public: {
1895 enabled: true,
1896 },
1897 doctag_files: ["docs/known_doctags"],
1898 }
1899
1900 filegroup {
1901 name: "mygroup",
1902 srcs: [":myjavalib{.doctags}"],
1903 }
1904 `)
1905
Paul Duffin36474d32021-03-12 12:19:43 +00001906 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001907 checkUnversionedAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001908// This is auto-generated. DO NOT EDIT.
1909
1910java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001911 name: "myjavalib",
1912 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001913 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001914 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001915 shared_library: true,
1916 doctag_files: ["doctags/docs/known_doctags"],
1917 public: {
1918 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001919 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001920 current_api: "sdk_library/public/myjavalib.txt",
1921 removed_api: "sdk_library/public/myjavalib-removed.txt",
1922 sdk_version: "current",
1923 },
1924}
Paul Duffine1381882021-04-16 17:05:10 +01001925`),
1926 checkVersionedAndroidBpContents(`
1927// This is auto-generated. DO NOT EDIT.
Paul Duffina2ae7e02020-09-11 11:55:00 +01001928
1929java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001930 name: "mysdk_myjavalib@current",
1931 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001932 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001933 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001934 shared_library: true,
1935 doctag_files: ["doctags/docs/known_doctags"],
1936 public: {
1937 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001938 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001939 current_api: "sdk_library/public/myjavalib.txt",
1940 removed_api: "sdk_library/public/myjavalib-removed.txt",
1941 sdk_version: "current",
1942 },
1943}
1944
1945sdk_snapshot {
1946 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001947 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001948 java_sdk_libs: ["mysdk_myjavalib@current"],
1949}
1950`),
1951 checkAllCopyRules(`
1952.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001953.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1954.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 +01001955docs/known_doctags -> doctags/docs/known_doctags
1956`),
1957 )
1958}