blob: 7ab5285c64a41fabae6ebdb13c428ad2baead7b7 [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 (
Paul Duffin13648912022-07-15 13:12:35 +000018 "fmt"
Paul Duffina80fdec2019-12-03 15:25:00 +000019 "testing"
Paul Duffincee7e662020-07-09 17:32:57 +010020
Paul Duffin4a2a29c2021-03-09 22:27:13 +000021 "android/soong/android"
Paul Duffincee7e662020-07-09 17:32:57 +010022 "android/soong/java"
Paul Duffina80fdec2019-12-03 15:25:00 +000023)
24
Paul Duffind14cbc12021-03-18 09:14:23 +000025var prepareForSdkTestWithJava = android.GroupFixturePreparers(
26 java.PrepareForTestWithJavaBuildComponents,
27 PrepareForTestWithSdkBuildComponents,
Paul Duffindb462dd2021-03-21 22:01:55 +000028
29 // Ensure that all source paths are provided. This helps ensure that the snapshot generation is
30 // consistent and all files referenced from the snapshot's Android.bp file have actually been
31 // copied into the snapshot.
32 android.PrepareForTestDisallowNonExistentPaths,
33
34 // Files needs by most of the tests.
35 android.MockFS{
36 "Test.java": nil,
37 }.AddToFixture(),
Paul Duffind14cbc12021-03-18 09:14:23 +000038)
39
Paul Duffin9ec86b12021-03-15 11:17:52 +000040var prepareForSdkTestWithJavaSdkLibrary = android.GroupFixturePreparers(
41 prepareForSdkTestWithJava,
42 java.PrepareForTestWithJavaDefaultModules,
43 java.PrepareForTestWithJavaSdkLibraryFiles,
44 java.FixtureWithLastReleaseApis("myjavalib"),
45)
46
Paul Duffina80fdec2019-12-03 15:25:00 +000047// Contains tests for SDK members provided by the java package.
48
Paul Duffincee7e662020-07-09 17:32:57 +010049func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000050 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +010051 sdk {
52 name: "mysdk",
53 java_header_libs: ["sdkmember"],
54 }
55
56 java_library {
57 name: "sdkmember",
58 srcs: ["Test.java"],
59 system_modules: "none",
60 sdk_version: "none",
61 }
Paul Duffincee7e662020-07-09 17:32:57 +010062 `)
63
64 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin1822a0a2021-03-21 12:56:33 +000065 sdkChecker := func(t *testing.T, result *android.TestResult) {
66 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
67 }
Paul Duffincee7e662020-07-09 17:32:57 +010068
Paul Duffin36474d32021-03-12 12:19:43 +000069 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin1822a0a2021-03-21 12:56:33 +000070 snapshotTestChecker(checkSnapshotWithSourcePreferred, sdkChecker),
71 snapshotTestChecker(checkSnapshotPreferredWithSource, sdkChecker),
72 )
Paul Duffincee7e662020-07-09 17:32:57 +010073}
74
Paul Duffina0dbf432019-12-05 11:25:53 +000075func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000076 result := android.GroupFixturePreparers(
77 prepareForSdkTestWithJava,
78 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
79 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +000080 sdk {
81 name: "mysdk",
82 java_header_libs: ["myjavalib"],
83 }
84
85 java_library {
86 name: "myjavalib",
87 srcs: ["Test.java"],
88 aidl: {
89 export_include_dirs: ["aidl"],
90 },
91 system_modules: "none",
92 sdk_version: "none",
93 compile_dex: true,
94 host_supported: true,
Paul Duffin869de142021-07-15 14:14:41 +010095 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +000096 }
97 `)
98
Paul Duffin36474d32021-03-12 12:19:43 +000099 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000100 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100101// This is auto-generated. DO NOT EDIT.
102
103java_import {
104 name: "myjavalib",
105 prefer: false,
106 visibility: ["//visibility:public"],
107 apex_available: ["//apex_available:platform"],
108 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100109 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100110}
111`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000112 checkAllCopyRules(`
113.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
114aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
115`),
116 )
117}
118
119func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000120 result := android.GroupFixturePreparers(
121 prepareForSdkTestWithJava,
122 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
123 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000124 sdk {
125 name: "mysdk",
126 device_supported: false,
127 host_supported: true,
128 java_header_libs: ["myjavalib"],
129 }
130
131 java_library {
132 name: "myjavalib",
133 device_supported: false,
134 host_supported: true,
135 srcs: ["Test.java"],
136 aidl: {
137 export_include_dirs: ["aidl"],
138 },
139 system_modules: "none",
140 sdk_version: "none",
141 compile_dex: true,
142 }
143 `)
144
Paul Duffin36474d32021-03-12 12:19:43 +0000145 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000146 checkAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000147// This is auto-generated. DO NOT EDIT.
148
149java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100150 name: "myjavalib",
151 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100152 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000153 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000154 device_supported: false,
155 host_supported: true,
156 jars: ["java/myjavalib.jar"],
157}
Paul Duffine1381882021-04-16 17:05:10 +0100158`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000159 checkAllCopyRules(`
160.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
161aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
162`),
163 )
164}
165
Paul Duffina04c1072020-03-02 10:16:35 +0000166func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000167 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000168 sdk {
169 name: "mysdk",
170 host_supported: true,
171 java_header_libs: ["myjavalib"],
172 }
173
174 java_library {
175 name: "myjavalib",
176 host_supported: true,
177 srcs: ["Test.java"],
178 system_modules: "none",
179 sdk_version: "none",
180 compile_dex: true,
181 }
182 `)
183
Paul Duffin36474d32021-03-12 12:19:43 +0000184 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000185 checkAndroidBpContents(`
Paul Duffina04c1072020-03-02 10:16:35 +0000186// This is auto-generated. DO NOT EDIT.
187
188java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100189 name: "myjavalib",
190 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100191 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000192 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000193 host_supported: true,
194 target: {
195 android: {
196 jars: ["java/android/myjavalib.jar"],
197 },
198 linux_glibc: {
199 jars: ["java/linux_glibc/myjavalib.jar"],
200 },
201 },
202}
Paul Duffine1381882021-04-16 17:05:10 +0100203`),
Paul Duffina04c1072020-03-02 10:16:35 +0000204 checkAllCopyRules(`
205.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
206.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
207`),
208 )
209}
210
Paul Duffina0dbf432019-12-05 11:25:53 +0000211func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000212 result := android.GroupFixturePreparers(
213 prepareForSdkTestWithJava,
214 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000215 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000216 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000217 module_exports {
218 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000219 java_libs: ["myjavalib"],
220 }
221
222 java_library {
223 name: "myjavalib",
224 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100225 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000226 aidl: {
227 export_include_dirs: ["aidl"],
228 },
229 system_modules: "none",
230 sdk_version: "none",
231 compile_dex: true,
232 host_supported: true,
233 }
234 `)
235
Paul Duffin36474d32021-03-12 12:19:43 +0000236 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000237 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100238// This is auto-generated. DO NOT EDIT.
239
240java_import {
241 name: "myjavalib",
242 prefer: false,
243 visibility: ["//visibility:public"],
244 apex_available: ["//apex_available:platform"],
245 jars: ["java/myjavalib.jar"],
246}
247`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000248 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100249.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000250aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
251`),
252 )
253}
254
Paul Duffindb170e42020-12-08 17:48:25 +0000255func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +0000256 result := android.GroupFixturePreparers(
257 prepareForSdkTestWithJava,
258 android.FixtureAddFile("aidl", nil),
259 android.FixtureAddFile("resource.txt", nil),
260 ).RunTestWithBp(t, `
Paul Duffin13648912022-07-15 13:12:35 +0000261 sdk {
262 name: "mysdk",
Paul Duffindb170e42020-12-08 17:48:25 +0000263 java_boot_libs: ["myjavalib"],
264 }
265
266 java_library {
267 name: "myjavalib",
268 srcs: ["Test.java"],
269 java_resources: ["resource.txt"],
270 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
271 // intended to be used for compiling Java, only for accessing the dex implementation jar.
272 aidl: {
273 export_include_dirs: ["aidl"],
274 },
275 system_modules: "none",
276 sdk_version: "none",
277 compile_dex: true,
Paul Duffin869de142021-07-15 14:14:41 +0100278 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000279 }
280 `)
281
Paul Duffin13648912022-07-15 13:12:35 +0000282 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000283 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100284// This is auto-generated. DO NOT EDIT.
285
286java_import {
287 name: "myjavalib",
288 prefer: false,
289 visibility: ["//visibility:public"],
290 apex_available: ["//apex_available:platform"],
Paul Duffin5c211452021-07-15 12:42:44 +0100291 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100292 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100293}
294`),
Paul Duffindb170e42020-12-08 17:48:25 +0000295 checkAllCopyRules(`
Paul Duffin13648912022-07-15 13:12:35 +0000296.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000297`),
298 )
299}
300
Paul Duffin13648912022-07-15 13:12:35 +0000301func TestSnapshotWithJavaBootLibrary_UpdatableMedia(t *testing.T) {
302 runTest := func(t *testing.T, targetBuildRelease, expectedJarPath, expectedCopyRule string) {
303 result := android.GroupFixturePreparers(
304 prepareForSdkTestWithJava,
305 android.FixtureMergeEnv(map[string]string{
306 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
307 }),
308 ).RunTestWithBp(t, `
309 sdk {
310 name: "mysdk",
311 java_boot_libs: ["updatable-media"],
312 }
313
314 java_library {
315 name: "updatable-media",
316 srcs: ["Test.java"],
317 system_modules: "none",
318 sdk_version: "none",
319 compile_dex: true,
320 permitted_packages: ["pkg.media"],
321 apex_available: ["com.android.media"],
322 }
323 `)
324
325 CheckSnapshot(t, result, "mysdk", "",
326 checkAndroidBpContents(fmt.Sprintf(`
327// This is auto-generated. DO NOT EDIT.
328
329java_import {
330 name: "updatable-media",
331 prefer: false,
332 visibility: ["//visibility:public"],
333 apex_available: ["com.android.media"],
334 jars: ["%s"],
335 permitted_packages: ["pkg.media"],
336}
337`, expectedJarPath)),
338 checkAllCopyRules(expectedCopyRule),
339 )
340 }
341
342 t.Run("updatable-media in S", func(t *testing.T) {
343 runTest(t, "S", "java/updatable-media.jar", `
344.intermediates/updatable-media/android_common/package-check/updatable-media.jar -> java/updatable-media.jar
345`)
346 })
347
348 t.Run("updatable-media in T", func(t *testing.T) {
349 runTest(t, "Tiramisu", "java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar", `
350.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar
351`)
352 })
353}
354
Jiakai Zhangea180332021-09-26 08:58:02 +0000355func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
356 result := android.GroupFixturePreparers(
357 prepareForSdkTestWithJava,
358 android.FixtureAddFile("aidl", nil),
359 android.FixtureAddFile("resource.txt", nil),
360 ).RunTestWithBp(t, `
361 module_exports {
362 name: "myexports",
363 java_systemserver_libs: ["myjavalib"],
364 }
365
366 java_library {
367 name: "myjavalib",
368 srcs: ["Test.java"],
369 java_resources: ["resource.txt"],
370 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
371 // is not intended to be used for compiling Java, only for accessing the dex implementation
372 // jar.
373 aidl: {
374 export_include_dirs: ["aidl"],
375 },
376 system_modules: "none",
377 sdk_version: "none",
378 compile_dex: true,
379 permitted_packages: ["pkg.myjavalib"],
380 }
381 `)
382
383 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000384 checkAndroidBpContents(`
Jiakai Zhangea180332021-09-26 08:58:02 +0000385// This is auto-generated. DO NOT EDIT.
386
387java_import {
388 name: "myjavalib",
389 prefer: false,
390 visibility: ["//visibility:public"],
391 apex_available: ["//apex_available:platform"],
392 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
393 permitted_packages: ["pkg.myjavalib"],
394}
395`),
Jiakai Zhangea180332021-09-26 08:58:02 +0000396 checkAllCopyRules(`
397.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
398`),
399 )
400}
401
Paul Duffina0dbf432019-12-05 11:25:53 +0000402func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000403 result := android.GroupFixturePreparers(
404 prepareForSdkTestWithJava,
405 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
406 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000407 module_exports {
408 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000409 device_supported: false,
410 host_supported: true,
411 java_libs: ["myjavalib"],
412 }
413
414 java_library {
415 name: "myjavalib",
416 device_supported: false,
417 host_supported: true,
418 srcs: ["Test.java"],
419 aidl: {
420 export_include_dirs: ["aidl"],
421 },
422 system_modules: "none",
423 sdk_version: "none",
424 compile_dex: true,
425 }
426 `)
427
Paul Duffin36474d32021-03-12 12:19:43 +0000428 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000429 checkAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000430// This is auto-generated. DO NOT EDIT.
431
432java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100433 name: "myjavalib",
434 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100435 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000436 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000437 device_supported: false,
438 host_supported: true,
439 jars: ["java/myjavalib.jar"],
440}
Paul Duffine1381882021-04-16 17:05:10 +0100441`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000442 checkAllCopyRules(`
443.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
444aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
445`),
446 )
447}
448
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000449func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000450 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000451 module_exports {
452 name: "myexports",
453 java_tests: ["myjavatests"],
454 }
455
456 java_test {
457 name: "myjavatests",
458 srcs: ["Test.java"],
459 system_modules: "none",
460 sdk_version: "none",
461 compile_dex: true,
462 host_supported: true,
463 }
464 `)
465
Paul Duffin36474d32021-03-12 12:19:43 +0000466 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000467 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000468// This is auto-generated. DO NOT EDIT.
469
470java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100471 name: "myjavatests",
472 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100473 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000474 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000475 jars: ["java/myjavatests.jar"],
476 test_config: "java/myjavatests-AndroidTest.xml",
477}
Paul Duffine1381882021-04-16 17:05:10 +0100478`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000479 checkAllCopyRules(`
480.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
481.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
482`),
483 )
484}
485
486func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000487 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000488 module_exports {
489 name: "myexports",
490 device_supported: false,
491 host_supported: true,
492 java_tests: ["myjavatests"],
493 }
494
495 java_test {
496 name: "myjavatests",
497 device_supported: false,
498 host_supported: true,
499 srcs: ["Test.java"],
500 system_modules: "none",
501 sdk_version: "none",
502 compile_dex: true,
503 }
504 `)
505
Paul Duffin36474d32021-03-12 12:19:43 +0000506 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000507 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000508// This is auto-generated. DO NOT EDIT.
509
510java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100511 name: "myjavatests",
512 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100513 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000514 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000515 device_supported: false,
516 host_supported: true,
517 jars: ["java/myjavatests.jar"],
518 test_config: "java/myjavatests-AndroidTest.xml",
519}
Paul Duffine1381882021-04-16 17:05:10 +0100520`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000521 checkAllCopyRules(`
522.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
523.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
524`),
525 )
526}
527
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000528func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin958806b2022-05-16 13:10:47 +0000529 result := android.GroupFixturePreparers(
530 prepareForSdkTestWithJava,
531 java.PrepareForTestWithJavaDefaultModules,
532 java.PrepareForTestWithJavaSdkLibraryFiles,
533 java.FixtureWithPrebuiltApisAndExtensions(map[string][]string{
534 "31": {"myjavalib"},
535 "32": {"myjavalib"},
536 "current": {"myjavalib"},
537 }, map[string][]string{
538 "1": {"myjavalib"},
539 "2": {"myjavalib"},
540 }),
541 ).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000542 sdk {
543 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000544 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100545 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000546 java_system_modules: ["my-system-modules"],
547 }
548
Paul Duffin33028712021-06-22 11:00:07 +0100549 java_sdk_library {
550 name: "myjavalib",
551 apex_available: ["//apex_available:anyapex"],
552 srcs: ["Test.java"],
553 sdk_version: "current",
554 shared_library: false,
555 public: {
556 enabled: true,
557 },
558 }
559
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000560 java_system_modules {
561 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100562 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000563 }
564
565 java_library {
566 name: "system-module",
567 srcs: ["Test.java"],
568 sdk_version: "none",
569 system_modules: "none",
570 }
Paul Duffin72910952020-01-20 18:16:30 +0000571
572 java_library {
573 name: "exported-system-module",
574 srcs: ["Test.java"],
575 sdk_version: "none",
576 system_modules: "none",
577 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000578 `)
579
Paul Duffin36474d32021-03-12 12:19:43 +0000580 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000581 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000582// This is auto-generated. DO NOT EDIT.
583
584java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100585 name: "exported-system-module",
586 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100587 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000588 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000589 jars: ["java/exported-system-module.jar"],
590}
591
592java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100593 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000594 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100595 visibility: ["//visibility:private"],
596 apex_available: ["//apex_available:platform"],
597 jars: ["java/system-module.jar"],
598}
599
Paul Duffin33028712021-06-22 11:00:07 +0100600java_sdk_library_import {
601 name: "myjavalib",
602 prefer: false,
603 visibility: ["//visibility:public"],
604 apex_available: ["//apex_available:anyapex"],
605 shared_library: false,
606 public: {
607 jars: ["sdk_library/public/myjavalib-stubs.jar"],
608 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
609 current_api: "sdk_library/public/myjavalib.txt",
610 removed_api: "sdk_library/public/myjavalib-removed.txt",
611 sdk_version: "current",
612 },
613}
614
Paul Duffine1381882021-04-16 17:05:10 +0100615java_system_modules_import {
616 name: "my-system-modules",
617 prefer: false,
618 visibility: ["//visibility:public"],
619 libs: [
620 "mysdk_system-module",
621 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100622 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100623 ],
624}
625`),
Paul Duffin72910952020-01-20 18:16:30 +0000626 checkAllCopyRules(`
627.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
628.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100629.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
630.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
631.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 +0000632`),
Paul Duffin958806b2022-05-16 13:10:47 +0000633 checkInfoContents(result.Config, `
Paul Duffinc6ba1822022-05-06 09:38:02 +0000634[
635 {
636 "@type": "sdk",
637 "@name": "mysdk",
638 "java_header_libs": [
639 "exported-system-module",
640 "system-module"
641 ],
642 "java_sdk_libs": [
643 "myjavalib"
644 ],
645 "java_system_modules": [
646 "my-system-modules"
647 ]
648 },
649 {
650 "@type": "java_library",
651 "@name": "exported-system-module"
652 },
653 {
654 "@type": "java_system_modules",
655 "@name": "my-system-modules",
656 "@deps": [
657 "exported-system-module",
658 "system-module"
659 ]
660 },
661 {
662 "@type": "java_sdk_library",
Paul Duffin958806b2022-05-16 13:10:47 +0000663 "@name": "myjavalib",
664 "dist_stem": "myjavalib",
665 "scopes": {
666 "public": {
667 "current_api": "sdk_library/public/myjavalib.txt",
668 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.public.latest/gen/myjavalib.api.public.latest",
669 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.public.latest/gen/myjavalib-removed.api.public.latest",
670 "removed_api": "sdk_library/public/myjavalib-removed.txt"
671 }
672 }
Paul Duffinc6ba1822022-05-06 09:38:02 +0000673 },
674 {
675 "@type": "java_library",
676 "@name": "system-module"
677 }
678]
679`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000680 )
681}
682
683func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000684 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000685 sdk {
686 name: "mysdk",
687 device_supported: false,
688 host_supported: true,
689 java_system_modules: ["my-system-modules"],
690 }
691
692 java_system_modules {
693 name: "my-system-modules",
694 device_supported: false,
695 host_supported: true,
696 libs: ["system-module"],
697 }
698
699 java_library {
700 name: "system-module",
701 device_supported: false,
702 host_supported: true,
703 srcs: ["Test.java"],
704 sdk_version: "none",
705 system_modules: "none",
706 }
707 `)
708
Paul Duffin36474d32021-03-12 12:19:43 +0000709 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000710 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000711// This is auto-generated. DO NOT EDIT.
712
713java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100714 name: "mysdk_system-module",
715 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000716 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000717 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000718 device_supported: false,
719 host_supported: true,
720 jars: ["java/system-module.jar"],
721}
722
Paul Duffine1381882021-04-16 17:05:10 +0100723java_system_modules_import {
724 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000725 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100726 visibility: ["//visibility:public"],
727 device_supported: false,
728 host_supported: true,
729 libs: ["mysdk_system-module"],
730}
731`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000732 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
733 )
734}
Paul Duffin865171e2020-03-02 18:38:15 +0000735
736func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000737 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000738 module_exports {
739 name: "myexports",
740 host_supported: true,
741 java_libs: ["myjavalib"],
742 target: {
743 android: {
744 java_header_libs: ["androidjavalib"],
745 },
746 host: {
747 java_header_libs: ["hostjavalib"],
748 },
749 },
750 }
751
752 java_library {
753 name: "myjavalib",
754 host_supported: true,
755 srcs: ["Test.java"],
756 system_modules: "none",
757 sdk_version: "none",
758 }
759
760 java_library {
761 name: "androidjavalib",
762 srcs: ["Test.java"],
763 system_modules: "none",
764 sdk_version: "none",
765 }
766
767 java_library_host {
768 name: "hostjavalib",
769 srcs: ["Test.java"],
770 }
771 `)
772
Paul Duffin36474d32021-03-12 12:19:43 +0000773 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000774 checkAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000775// This is auto-generated. DO NOT EDIT.
776
777java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100778 name: "hostjavalib",
779 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100780 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000781 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000782 device_supported: false,
783 host_supported: true,
784 jars: ["java/hostjavalib.jar"],
785}
786
787java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100788 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000789 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100790 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000791 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100792 jars: ["java/androidjavalib.jar"],
793}
794
795java_import {
796 name: "myjavalib",
797 prefer: false,
798 visibility: ["//visibility:public"],
799 apex_available: ["//apex_available:platform"],
800 host_supported: true,
801 target: {
802 android: {
803 jars: ["java/android/myjavalib.jar"],
804 },
805 linux_glibc: {
806 jars: ["java/linux_glibc/myjavalib.jar"],
807 },
808 },
809}
810`),
Paul Duffin865171e2020-03-02 18:38:15 +0000811 checkAllCopyRules(`
812.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
813.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
814.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
815.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
816`),
817 )
818}
Paul Duffindd46f712020-02-10 13:37:10 +0000819
820func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000821 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +0000822 sdk {
823 name: "mysdk",
824 java_sdk_libs: ["myjavalib"],
825 }
826
827 java_sdk_library {
828 name: "myjavalib",
829 apex_available: ["//apex_available:anyapex"],
830 srcs: ["Test.java"],
831 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100832 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100833 stubs_library_visibility: ["//other"],
834 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +0100835 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000836 }
837 `)
838
Paul Duffin36474d32021-03-12 12:19:43 +0000839 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000840 checkAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +0000841// This is auto-generated. DO NOT EDIT.
842
843java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +0100844 name: "myjavalib",
845 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100846 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000847 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100848 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +0100849 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000850 public: {
851 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000852 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100853 current_api: "sdk_library/public/myjavalib.txt",
854 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000855 sdk_version: "current",
856 },
857 system: {
858 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000859 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100860 current_api: "sdk_library/system/myjavalib.txt",
861 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000862 sdk_version: "system_current",
863 },
864 test: {
865 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000866 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100867 current_api: "sdk_library/test/myjavalib.txt",
868 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000869 sdk_version: "test_current",
870 },
871}
Paul Duffine1381882021-04-16 17:05:10 +0100872`),
Paul Duffindd46f712020-02-10 13:37:10 +0000873 checkAllCopyRules(`
874.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700875.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
876.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 +0000877.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700878.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
879.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 +0000880.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700881.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
882.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 +0000883`),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100884 checkMergeZips(
885 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
886 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +0100887 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
888 ),
Paul Duffindd46f712020-02-10 13:37:10 +0000889 )
890}
Paul Duffin3375e352020-04-28 10:44:03 +0100891
Paul Duffin22628d52021-05-12 23:13:22 +0100892func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
893 result := android.GroupFixturePreparers(
894 prepareForSdkTestWithJavaSdkLibrary,
895 android.FixtureMergeEnv(map[string]string{
896 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
897 }),
898 ).RunTestWithBp(t, `
899 sdk {
900 name: "mysdk",
901 java_sdk_libs: ["myjavalib"],
902 }
903
904 java_sdk_library {
905 name: "myjavalib",
906 srcs: ["Test.java"],
907 sdk_version: "current",
908 shared_library: false,
909 public: {
910 enabled: true,
911 },
912 }
913 `)
914
915 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000916 checkAndroidBpContents(`
Paul Duffin22628d52021-05-12 23:13:22 +0100917// This is auto-generated. DO NOT EDIT.
918
919java_sdk_library_import {
920 name: "myjavalib",
921 prefer: false,
922 visibility: ["//visibility:public"],
923 apex_available: ["//apex_available:platform"],
924 shared_library: false,
925 public: {
926 jars: ["sdk_library/public/myjavalib-stubs.jar"],
927 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
928 current_api: "sdk_library/public/myjavalib.txt",
929 removed_api: "sdk_library/public/myjavalib-removed.txt",
930 sdk_version: "current",
931 },
932}
933 `),
934 checkAllCopyRules(`
935.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
936.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
937.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
938.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
939 `),
940 )
941}
942
Anton Hanssond78eb762021-09-21 15:25:12 +0100943func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
944 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
945 sdk {
946 name: "mysdk",
947 java_sdk_libs: ["myjavalib"],
948 }
949
950 java_sdk_library {
951 name: "myjavalib",
952 srcs: ["Test.java"],
953 sdk_version: "current",
954 shared_library: false,
955 annotations_enabled: true,
956 public: {
957 enabled: true,
958 },
959 }
960 `)
961
962 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000963 checkAndroidBpContents(`
Anton Hanssond78eb762021-09-21 15:25:12 +0100964// This is auto-generated. DO NOT EDIT.
965
966java_sdk_library_import {
967 name: "myjavalib",
968 prefer: false,
969 visibility: ["//visibility:public"],
970 apex_available: ["//apex_available:platform"],
971 shared_library: false,
972 public: {
973 jars: ["sdk_library/public/myjavalib-stubs.jar"],
974 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
975 current_api: "sdk_library/public/myjavalib.txt",
976 removed_api: "sdk_library/public/myjavalib-removed.txt",
977 annotations: "sdk_library/public/myjavalib_annotations.zip",
978 sdk_version: "current",
979 },
980}
981 `),
982 checkAllCopyRules(`
983.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
984.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
985.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
986.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
987 `),
988 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
989 )
990}
991
Paul Duffina54016c2022-01-27 16:39:47 +0000992func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
993 result := android.GroupFixturePreparers(
994 prepareForSdkTestWithJavaSdkLibrary,
995 android.FixtureMergeEnv(map[string]string{
996 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
997 }),
998 ).RunTestWithBp(t, `
999 sdk {
1000 name: "mysdk",
1001 java_sdk_libs: ["myjavalib"],
1002 }
1003
1004 java_sdk_library {
1005 name: "myjavalib",
1006 srcs: ["Test.java"],
1007 sdk_version: "current",
1008 shared_library: false,
1009 annotations_enabled: true,
1010 public: {
1011 enabled: true,
1012 },
1013 }
1014 `)
1015
1016 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001017 checkAndroidBpContents(`
Paul Duffina54016c2022-01-27 16:39:47 +00001018// This is auto-generated. DO NOT EDIT.
1019
1020java_sdk_library_import {
1021 name: "myjavalib",
1022 prefer: false,
1023 visibility: ["//visibility:public"],
1024 apex_available: ["//apex_available:platform"],
1025 shared_library: false,
1026 public: {
1027 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1028 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1029 current_api: "sdk_library/public/myjavalib.txt",
1030 removed_api: "sdk_library/public/myjavalib-removed.txt",
1031 sdk_version: "current",
1032 },
1033}
1034 `),
1035 checkAllCopyRules(`
1036.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1037.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1038.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1039 `),
1040 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1041 )
1042}
1043
Paul Duffin1267d872021-04-16 17:21:36 +01001044func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1045 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1046 sdk {
1047 name: "mysdk",
1048 java_sdk_libs: ["myjavalib"],
1049 }
1050
1051 java_sdk_library {
1052 name: "myjavalib",
1053 srcs: ["Test.java"],
1054 sdk_version: "current",
1055 shared_library: false,
1056 compile_dex: true,
1057 public: {
1058 enabled: true,
1059 },
1060 system: {
1061 enabled: true,
1062 },
1063 }
1064 `)
1065
1066 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001067 checkAndroidBpContents(`
Paul Duffin1267d872021-04-16 17:21:36 +01001068// This is auto-generated. DO NOT EDIT.
1069
1070java_sdk_library_import {
1071 name: "myjavalib",
1072 prefer: false,
1073 visibility: ["//visibility:public"],
1074 apex_available: ["//apex_available:platform"],
1075 shared_library: false,
1076 compile_dex: true,
1077 public: {
1078 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1079 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1080 current_api: "sdk_library/public/myjavalib.txt",
1081 removed_api: "sdk_library/public/myjavalib-removed.txt",
1082 sdk_version: "current",
1083 },
1084 system: {
1085 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1086 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1087 current_api: "sdk_library/system/myjavalib.txt",
1088 removed_api: "sdk_library/system/myjavalib-removed.txt",
1089 sdk_version: "system_current",
1090 },
1091}
1092`),
1093 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1094 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1095 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1096 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001097 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001098 return path.RelativeToTop().String()
1099 }
1100
1101 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1102 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1103
1104 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1105 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1106 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1107
1108 // This should fall back to system as module is not available.
1109 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1110 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1111
1112 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1113 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1114 }),
1115 )
1116}
1117
Paul Duffin780c5f42020-05-12 15:52:55 +01001118func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001119 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001120 sdk {
1121 name: "mysdk",
1122 java_sdk_libs: ["myjavalib"],
1123 }
1124
1125 java_sdk_library {
1126 name: "myjavalib",
1127 srcs: ["Test.java"],
1128 sdk_version: "none",
1129 system_modules: "none",
1130 }
1131 `)
1132
Paul Duffin36474d32021-03-12 12:19:43 +00001133 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001134 checkAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001135// This is auto-generated. DO NOT EDIT.
1136
1137java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001138 name: "myjavalib",
1139 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001140 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001141 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001142 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001143 public: {
1144 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001145 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001146 current_api: "sdk_library/public/myjavalib.txt",
1147 removed_api: "sdk_library/public/myjavalib-removed.txt",
1148 sdk_version: "none",
1149 },
1150}
Paul Duffine1381882021-04-16 17:05:10 +01001151`),
Paul Duffin780c5f42020-05-12 15:52:55 +01001152 checkAllCopyRules(`
1153.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001154.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1155.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 +01001156`),
1157 checkMergeZips(
1158 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1159 ),
1160 )
1161}
1162
Paul Duffin87a05a32020-05-12 11:50:28 +01001163func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001164 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001165 sdk {
1166 name: "mysdk",
1167 java_sdk_libs: ["myjavalib"],
1168 }
1169
1170 java_sdk_library {
1171 name: "myjavalib",
1172 srcs: ["Test.java"],
1173 sdk_version: "module_current",
1174 public: {
1175 enabled: true,
1176 sdk_version: "module_current",
1177 },
1178 }
1179 `)
1180
Paul Duffin36474d32021-03-12 12:19:43 +00001181 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001182 checkAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001183// This is auto-generated. DO NOT EDIT.
1184
1185java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001186 name: "myjavalib",
1187 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001188 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001189 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001190 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001191 public: {
1192 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001193 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001194 current_api: "sdk_library/public/myjavalib.txt",
1195 removed_api: "sdk_library/public/myjavalib-removed.txt",
1196 sdk_version: "module_current",
1197 },
1198}
Paul Duffine1381882021-04-16 17:05:10 +01001199`),
Paul Duffin87a05a32020-05-12 11:50:28 +01001200 checkAllCopyRules(`
1201.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001202.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1203.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 +01001204`),
1205 checkMergeZips(
1206 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1207 ),
1208 )
1209}
1210
1211func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001212 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001213 sdk {
1214 name: "mysdk",
1215 java_sdk_libs: ["myjavalib"],
1216 }
1217
1218 java_sdk_library {
1219 name: "myjavalib",
1220 apex_available: ["//apex_available:anyapex"],
1221 srcs: ["Test.java"],
1222 sdk_version: "current",
1223 public: {
1224 enabled: true,
1225 },
1226 system: {
1227 enabled: true,
1228 },
1229 }
1230 `)
1231
Paul Duffin36474d32021-03-12 12:19:43 +00001232 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001233 checkAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001234// This is auto-generated. DO NOT EDIT.
1235
1236java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001237 name: "myjavalib",
1238 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001239 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001240 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001241 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001242 public: {
1243 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001244 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001245 current_api: "sdk_library/public/myjavalib.txt",
1246 removed_api: "sdk_library/public/myjavalib-removed.txt",
1247 sdk_version: "current",
1248 },
1249 system: {
1250 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001251 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001252 current_api: "sdk_library/system/myjavalib.txt",
1253 removed_api: "sdk_library/system/myjavalib-removed.txt",
1254 sdk_version: "system_current",
1255 },
1256}
Paul Duffine1381882021-04-16 17:05:10 +01001257`),
Paul Duffin3375e352020-04-28 10:44:03 +01001258 checkAllCopyRules(`
1259.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001260.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1261.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 +01001262.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001263.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1264.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 +01001265`),
1266 checkMergeZips(
1267 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1268 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1269 ),
1270 )
1271}
Paul Duffin8f265b92020-04-28 14:13:56 +01001272
1273func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001274 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001275 sdk {
1276 name: "mysdk",
1277 java_sdk_libs: ["myjavalib"],
1278 }
1279
1280 java_sdk_library {
1281 name: "myjavalib",
1282 apex_available: ["//apex_available:anyapex"],
1283 srcs: ["Test.java"],
1284 sdk_version: "current",
1285 public: {
1286 enabled: true,
1287 },
1288 system: {
1289 enabled: true,
1290 },
1291 module_lib: {
1292 enabled: true,
1293 },
1294 }
1295 `)
1296
Paul Duffin36474d32021-03-12 12:19:43 +00001297 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001298 checkAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001299// This is auto-generated. DO NOT EDIT.
1300
1301java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001302 name: "myjavalib",
1303 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001304 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001305 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001306 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001307 public: {
1308 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001309 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001310 current_api: "sdk_library/public/myjavalib.txt",
1311 removed_api: "sdk_library/public/myjavalib-removed.txt",
1312 sdk_version: "current",
1313 },
1314 system: {
1315 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001316 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001317 current_api: "sdk_library/system/myjavalib.txt",
1318 removed_api: "sdk_library/system/myjavalib-removed.txt",
1319 sdk_version: "system_current",
1320 },
1321 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001322 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001323 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001324 current_api: "sdk_library/module-lib/myjavalib.txt",
1325 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001326 sdk_version: "module_current",
1327 },
1328}
Paul Duffine1381882021-04-16 17:05:10 +01001329`),
Paul Duffin8f265b92020-04-28 14:13:56 +01001330 checkAllCopyRules(`
1331.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001332.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1333.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 +01001334.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001335.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1336.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 +01001337.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 -07001338.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1339.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 +01001340`),
1341 checkMergeZips(
Paul Duffin74f1dcd2022-07-18 13:18:23 +00001342 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001343 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1344 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001345 ),
1346 )
1347}
Paul Duffinf7a64332020-05-13 16:54:55 +01001348
Paul Duffin0c5bae52020-06-02 13:00:08 +01001349func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001350 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001351 sdk {
1352 name: "mysdk",
1353 java_sdk_libs: ["myjavalib"],
1354 }
1355
1356 java_sdk_library {
1357 name: "myjavalib",
1358 apex_available: ["//apex_available:anyapex"],
1359 srcs: ["Test.java"],
1360 sdk_version: "current",
1361 public: {
1362 enabled: true,
1363 },
1364 system_server: {
1365 enabled: true,
1366 },
1367 }
1368 `)
1369
Paul Duffin36474d32021-03-12 12:19:43 +00001370 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001371 checkAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001372// This is auto-generated. DO NOT EDIT.
1373
1374java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001375 name: "myjavalib",
1376 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001377 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001378 apex_available: ["//apex_available:anyapex"],
1379 shared_library: true,
1380 public: {
1381 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001382 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001383 current_api: "sdk_library/public/myjavalib.txt",
1384 removed_api: "sdk_library/public/myjavalib-removed.txt",
1385 sdk_version: "current",
1386 },
1387 system_server: {
1388 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001389 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001390 current_api: "sdk_library/system-server/myjavalib.txt",
1391 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1392 sdk_version: "system_server_current",
1393 },
1394}
Paul Duffine1381882021-04-16 17:05:10 +01001395`),
Paul Duffin0c5bae52020-06-02 13:00:08 +01001396 checkAllCopyRules(`
1397.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001398.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1399.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 +01001400.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 -07001401.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1402.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 +01001403`),
1404 checkMergeZips(
1405 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1406 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1407 ),
1408 )
1409}
1410
Paul Duffinf7a64332020-05-13 16:54:55 +01001411func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001412 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001413 sdk {
1414 name: "mysdk",
1415 java_sdk_libs: ["myjavalib"],
1416 }
1417
1418 java_sdk_library {
1419 name: "myjavalib",
1420 apex_available: ["//apex_available:anyapex"],
1421 srcs: ["Test.java"],
1422 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001423 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001424 public: {
1425 enabled: true,
1426 },
1427 }
1428 `)
1429
Paul Duffin36474d32021-03-12 12:19:43 +00001430 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001431 checkAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001432// This is auto-generated. DO NOT EDIT.
1433
1434java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001435 name: "myjavalib",
1436 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001437 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001438 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001439 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001440 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001441 public: {
1442 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001443 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001444 current_api: "sdk_library/public/myjavalib.txt",
1445 removed_api: "sdk_library/public/myjavalib-removed.txt",
1446 sdk_version: "current",
1447 },
1448}
Paul Duffine1381882021-04-16 17:05:10 +01001449`),
Paul Duffinf7a64332020-05-13 16:54:55 +01001450 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001451.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001452.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1453.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 +01001454`),
1455 checkMergeZips(
1456 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1457 ),
1458 )
1459}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001460
1461func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001462 result := android.GroupFixturePreparers(
1463 prepareForSdkTestWithJavaSdkLibrary,
1464 android.FixtureAddFile("docs/known_doctags", nil),
1465 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001466 sdk {
1467 name: "mysdk",
1468 java_sdk_libs: ["myjavalib"],
1469 }
1470
1471 java_sdk_library {
1472 name: "myjavalib",
1473 srcs: ["Test.java"],
1474 sdk_version: "current",
1475 public: {
1476 enabled: true,
1477 },
1478 doctag_files: ["docs/known_doctags"],
1479 }
1480
1481 filegroup {
1482 name: "mygroup",
1483 srcs: [":myjavalib{.doctags}"],
1484 }
1485 `)
1486
Paul Duffin36474d32021-03-12 12:19:43 +00001487 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001488 checkAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001489// This is auto-generated. DO NOT EDIT.
1490
1491java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001492 name: "myjavalib",
1493 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001494 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001495 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001496 shared_library: true,
1497 doctag_files: ["doctags/docs/known_doctags"],
1498 public: {
1499 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001500 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001501 current_api: "sdk_library/public/myjavalib.txt",
1502 removed_api: "sdk_library/public/myjavalib-removed.txt",
1503 sdk_version: "current",
1504 },
1505}
Paul Duffine1381882021-04-16 17:05:10 +01001506`),
Paul Duffina2ae7e02020-09-11 11:55:00 +01001507 checkAllCopyRules(`
1508.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001509.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1510.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 +01001511docs/known_doctags -> doctags/docs/known_doctags
1512`),
1513 )
1514}