blob: 1e545cea37001042c862c0fdeccb5514f2a25915 [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"
Jiakai Zhangbc698cd2023-05-08 16:28:38 +000022 "android/soong/dexpreopt"
Paul Duffincee7e662020-07-09 17:32:57 +010023 "android/soong/java"
Paul Duffina80fdec2019-12-03 15:25:00 +000024)
25
Paul Duffind14cbc12021-03-18 09:14:23 +000026var prepareForSdkTestWithJava = android.GroupFixturePreparers(
27 java.PrepareForTestWithJavaBuildComponents,
28 PrepareForTestWithSdkBuildComponents,
Jiakai Zhangbc698cd2023-05-08 16:28:38 +000029 dexpreopt.PrepareForTestWithFakeDex2oatd,
Paul Duffindb462dd2021-03-21 22:01:55 +000030
31 // Ensure that all source paths are provided. This helps ensure that the snapshot generation is
32 // consistent and all files referenced from the snapshot's Android.bp file have actually been
33 // copied into the snapshot.
34 android.PrepareForTestDisallowNonExistentPaths,
35
36 // Files needs by most of the tests.
37 android.MockFS{
Jiakai Zhang9c4dc192023-02-09 00:09:24 +080038 "Test.java": nil,
39 "art-profile": nil,
Paul Duffindb462dd2021-03-21 22:01:55 +000040 }.AddToFixture(),
Paul Duffind14cbc12021-03-18 09:14:23 +000041)
42
Paul Duffin9ec86b12021-03-15 11:17:52 +000043var prepareForSdkTestWithJavaSdkLibrary = android.GroupFixturePreparers(
44 prepareForSdkTestWithJava,
45 java.PrepareForTestWithJavaDefaultModules,
46 java.PrepareForTestWithJavaSdkLibraryFiles,
47 java.FixtureWithLastReleaseApis("myjavalib"),
Colin Crossa66b4632024-08-08 15:50:47 -070048 android.PrepareForTestWithBuildFlag("RELEASE_HIDDEN_API_EXPORTABLE_STUBS", "true"),
Paul Duffin9ec86b12021-03-15 11:17:52 +000049)
50
Paul Duffina80fdec2019-12-03 15:25:00 +000051// Contains tests for SDK members provided by the java package.
52
Paul Duffincee7e662020-07-09 17:32:57 +010053func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -080054 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +000055 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +010056 sdk {
57 name: "mysdk",
58 java_header_libs: ["sdkmember"],
59 }
60
61 java_library {
62 name: "sdkmember",
63 srcs: ["Test.java"],
64 system_modules: "none",
65 sdk_version: "none",
66 }
Paul Duffincee7e662020-07-09 17:32:57 +010067 `)
68
69 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin1822a0a2021-03-21 12:56:33 +000070 sdkChecker := func(t *testing.T, result *android.TestResult) {
71 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
72 }
Paul Duffincee7e662020-07-09 17:32:57 +010073
Paul Duffin36474d32021-03-12 12:19:43 +000074 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin1822a0a2021-03-21 12:56:33 +000075 snapshotTestChecker(checkSnapshotWithSourcePreferred, sdkChecker),
76 snapshotTestChecker(checkSnapshotPreferredWithSource, sdkChecker),
77 )
Paul Duffincee7e662020-07-09 17:32:57 +010078}
79
Paul Duffina0dbf432019-12-05 11:25:53 +000080func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -080081 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +000082 result := android.GroupFixturePreparers(
83 prepareForSdkTestWithJava,
84 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
85 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +000086 sdk {
87 name: "mysdk",
88 java_header_libs: ["myjavalib"],
89 }
90
91 java_library {
92 name: "myjavalib",
93 srcs: ["Test.java"],
94 aidl: {
95 export_include_dirs: ["aidl"],
96 },
97 system_modules: "none",
98 sdk_version: "none",
99 compile_dex: true,
100 host_supported: true,
Paul Duffin869de142021-07-15 14:14:41 +0100101 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000102 }
103 `)
104
Paul Duffin36474d32021-03-12 12:19:43 +0000105 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000106 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100107// This is auto-generated. DO NOT EDIT.
108
Spandan Dasa5e26d32024-03-06 14:04:36 +0000109apex_contributions_defaults {
110 name: "mysdk.contributions",
111 contents: ["prebuilt_myjavalib"],
112}
113
Paul Duffine1381882021-04-16 17:05:10 +0100114java_import {
115 name: "myjavalib",
116 prefer: false,
117 visibility: ["//visibility:public"],
118 apex_available: ["//apex_available:platform"],
119 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100120 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100121}
122`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000123 checkAllCopyRules(`
124.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
125aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
126`),
127 )
128}
129
130func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800131 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +0000132 result := android.GroupFixturePreparers(
133 prepareForSdkTestWithJava,
134 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
135 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000136 sdk {
137 name: "mysdk",
138 device_supported: false,
139 host_supported: true,
140 java_header_libs: ["myjavalib"],
141 }
142
143 java_library {
144 name: "myjavalib",
145 device_supported: false,
146 host_supported: true,
147 srcs: ["Test.java"],
148 aidl: {
149 export_include_dirs: ["aidl"],
150 },
151 system_modules: "none",
152 sdk_version: "none",
153 compile_dex: true,
154 }
155 `)
156
Paul Duffin36474d32021-03-12 12:19:43 +0000157 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000158 checkAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000159// This is auto-generated. DO NOT EDIT.
160
Spandan Dasa5e26d32024-03-06 14:04:36 +0000161apex_contributions_defaults {
162 name: "mysdk.contributions",
163 contents: ["prebuilt_myjavalib"],
164}
165
Paul Duffina0dbf432019-12-05 11:25:53 +0000166java_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`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000176 checkAllCopyRules(`
Colin Crossf06d8dc2023-07-18 22:11:07 -0700177.intermediates/myjavalib/linux_glibc_common/javac-header/myjavalib.jar -> java/myjavalib.jar
Paul Duffina0dbf432019-12-05 11:25:53 +0000178aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
179`),
180 )
181}
182
Paul Duffina04c1072020-03-02 10:16:35 +0000183func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800184 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +0000185 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000186 sdk {
187 name: "mysdk",
188 host_supported: true,
189 java_header_libs: ["myjavalib"],
190 }
191
192 java_library {
193 name: "myjavalib",
194 host_supported: true,
195 srcs: ["Test.java"],
196 system_modules: "none",
197 sdk_version: "none",
198 compile_dex: true,
199 }
200 `)
201
Paul Duffin36474d32021-03-12 12:19:43 +0000202 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000203 checkAndroidBpContents(`
Paul Duffina04c1072020-03-02 10:16:35 +0000204// This is auto-generated. DO NOT EDIT.
205
Spandan Dasa5e26d32024-03-06 14:04:36 +0000206apex_contributions_defaults {
207 name: "mysdk.contributions",
208 contents: ["prebuilt_myjavalib"],
209}
210
Paul Duffina04c1072020-03-02 10:16:35 +0000211java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100212 name: "myjavalib",
213 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100214 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000215 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000216 host_supported: true,
217 target: {
218 android: {
219 jars: ["java/android/myjavalib.jar"],
220 },
221 linux_glibc: {
222 jars: ["java/linux_glibc/myjavalib.jar"],
223 },
224 },
225}
Paul Duffine1381882021-04-16 17:05:10 +0100226`),
Paul Duffina04c1072020-03-02 10:16:35 +0000227 checkAllCopyRules(`
228.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
Colin Crossf06d8dc2023-07-18 22:11:07 -0700229.intermediates/myjavalib/linux_glibc_common/javac-header/myjavalib.jar -> java/linux_glibc/myjavalib.jar
Paul Duffina04c1072020-03-02 10:16:35 +0000230`),
231 )
232}
233
Paul Duffina0dbf432019-12-05 11:25:53 +0000234func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800235 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +0000236 result := android.GroupFixturePreparers(
237 prepareForSdkTestWithJava,
238 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000239 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000240 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000241 module_exports {
242 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000243 java_libs: ["myjavalib"],
244 }
245
246 java_library {
247 name: "myjavalib",
248 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100249 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000250 aidl: {
251 export_include_dirs: ["aidl"],
252 },
253 system_modules: "none",
254 sdk_version: "none",
255 compile_dex: true,
256 host_supported: true,
257 }
258 `)
259
Paul Duffin36474d32021-03-12 12:19:43 +0000260 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000261 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100262// This is auto-generated. DO NOT EDIT.
263
Spandan Dasa5e26d32024-03-06 14:04:36 +0000264apex_contributions_defaults {
265 name: "myexports.contributions",
266 contents: ["prebuilt_myjavalib"],
267}
268
Paul Duffine1381882021-04-16 17:05:10 +0100269java_import {
270 name: "myjavalib",
271 prefer: false,
272 visibility: ["//visibility:public"],
273 apex_available: ["//apex_available:platform"],
274 jars: ["java/myjavalib.jar"],
275}
276`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000277 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100278.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000279aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
280`),
281 )
282}
283
Paul Duffindb170e42020-12-08 17:48:25 +0000284func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800285 t.Parallel()
Paul Duffindb462dd2021-03-21 22:01:55 +0000286 result := android.GroupFixturePreparers(
287 prepareForSdkTestWithJava,
288 android.FixtureAddFile("aidl", nil),
289 android.FixtureAddFile("resource.txt", nil),
290 ).RunTestWithBp(t, `
Paul Duffin13648912022-07-15 13:12:35 +0000291 sdk {
292 name: "mysdk",
Paul Duffindb170e42020-12-08 17:48:25 +0000293 java_boot_libs: ["myjavalib"],
294 }
295
296 java_library {
297 name: "myjavalib",
298 srcs: ["Test.java"],
299 java_resources: ["resource.txt"],
300 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
301 // intended to be used for compiling Java, only for accessing the dex implementation jar.
302 aidl: {
303 export_include_dirs: ["aidl"],
304 },
305 system_modules: "none",
306 sdk_version: "none",
307 compile_dex: true,
Paul Duffin869de142021-07-15 14:14:41 +0100308 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000309 }
310 `)
311
Paul Duffin13648912022-07-15 13:12:35 +0000312 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000313 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100314// This is auto-generated. DO NOT EDIT.
315
Spandan Dasa5e26d32024-03-06 14:04:36 +0000316apex_contributions_defaults {
317 name: "mysdk.contributions",
318 contents: [],
319}
320
Paul Duffine1381882021-04-16 17:05:10 +0100321java_import {
322 name: "myjavalib",
323 prefer: false,
324 visibility: ["//visibility:public"],
325 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000326 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100327 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100328}
329`),
Paul Duffindb170e42020-12-08 17:48:25 +0000330 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000331.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000332`),
333 )
334}
335
Paul Duffin13648912022-07-15 13:12:35 +0000336func TestSnapshotWithJavaBootLibrary_UpdatableMedia(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800337 t.Parallel()
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000338 runTest := func(t *testing.T, targetBuildRelease, expectedJarPath, expectedCopyRule string) {
Paul Duffin13648912022-07-15 13:12:35 +0000339 result := android.GroupFixturePreparers(
340 prepareForSdkTestWithJava,
341 android.FixtureMergeEnv(map[string]string{
342 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
343 }),
Spandan Dasa5e26d32024-03-06 14:04:36 +0000344 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
345 variables.Platform_version_active_codenames = []string{"VanillaIceCream"}
346 }),
Paul Duffin13648912022-07-15 13:12:35 +0000347 ).RunTestWithBp(t, `
348 sdk {
349 name: "mysdk",
350 java_boot_libs: ["updatable-media"],
351 }
352
353 java_library {
354 name: "updatable-media",
355 srcs: ["Test.java"],
356 system_modules: "none",
357 sdk_version: "none",
358 compile_dex: true,
359 permitted_packages: ["pkg.media"],
360 apex_available: ["com.android.media"],
361 }
362 `)
363
364 CheckSnapshot(t, result, "mysdk", "",
365 checkAndroidBpContents(fmt.Sprintf(`
366// This is auto-generated. DO NOT EDIT.
367
368java_import {
369 name: "updatable-media",
370 prefer: false,
371 visibility: ["//visibility:public"],
372 apex_available: ["com.android.media"],
373 jars: ["%s"],
374 permitted_packages: ["pkg.media"],
375}
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000376`, expectedJarPath)),
Paul Duffin13648912022-07-15 13:12:35 +0000377 checkAllCopyRules(expectedCopyRule),
378 )
379 }
380
381 t.Run("updatable-media in S", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000382 runTest(t, "S", "java/updatable-media.jar", `
Paul Duffin13648912022-07-15 13:12:35 +0000383.intermediates/updatable-media/android_common/package-check/updatable-media.jar -> java/updatable-media.jar
384`)
385 })
386
387 t.Run("updatable-media in T", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000388 runTest(t, "Tiramisu", "java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar", `
389.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar
Paul Duffin13648912022-07-15 13:12:35 +0000390`)
391 })
392}
393
Paul Duffinbb638eb2022-11-26 13:36:38 +0000394func TestSnapshotWithJavaLibrary_MinSdkVersion(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800395 t.Parallel()
Paul Duffinbb638eb2022-11-26 13:36:38 +0000396 runTest := func(t *testing.T, targetBuildRelease, minSdkVersion, expectedMinSdkVersion string) {
397 result := android.GroupFixturePreparers(
398 prepareForSdkTestWithJava,
399 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
400 variables.Platform_version_active_codenames = []string{"S", "Tiramisu", "Unfinalized"}
401 }),
402 android.FixtureMergeEnv(map[string]string{
403 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
404 }),
405 ).RunTestWithBp(t, fmt.Sprintf(`
406 sdk {
407 name: "mysdk",
408 java_header_libs: ["mylib"],
409 }
410
411 java_library {
412 name: "mylib",
413 srcs: ["Test.java"],
414 system_modules: "none",
415 sdk_version: "none",
416 compile_dex: true,
417 min_sdk_version: "%s",
418 }
419 `, minSdkVersion))
420
421 expectedMinSdkVersionLine := ""
422 if expectedMinSdkVersion != "" {
423 expectedMinSdkVersionLine = fmt.Sprintf(" min_sdk_version: %q,\n", expectedMinSdkVersion)
424 }
425
426 CheckSnapshot(t, result, "mysdk", "",
427 checkAndroidBpContents(fmt.Sprintf(`
428// This is auto-generated. DO NOT EDIT.
429
Spandan Dasa5e26d32024-03-06 14:04:36 +0000430apex_contributions_defaults {
431 name: "mysdk.contributions",
432 contents: ["prebuilt_mylib"],
433}
434
Paul Duffinbb638eb2022-11-26 13:36:38 +0000435java_import {
436 name: "mylib",
437 prefer: false,
438 visibility: ["//visibility:public"],
439 apex_available: ["//apex_available:platform"],
440 jars: ["java/mylib.jar"],
441%s}
442`, expectedMinSdkVersionLine)),
443 )
444 }
445
446 t.Run("min_sdk_version=S in S", func(t *testing.T) {
447 // min_sdk_version was not added to java_import until Tiramisu.
448 runTest(t, "S", "S", "")
449 })
450
451 t.Run("min_sdk_version=S in Tiramisu", func(t *testing.T) {
452 // The canonical form of S is 31.
453 runTest(t, "Tiramisu", "S", "31")
454 })
455
456 t.Run("min_sdk_version=24 in Tiramisu", func(t *testing.T) {
457 // A numerical min_sdk_version is already in canonical form.
458 runTest(t, "Tiramisu", "24", "24")
459 })
460
461 t.Run("min_sdk_version=Unfinalized in latest", func(t *testing.T) {
462 // An unfinalized min_sdk_version has no numeric value yet.
463 runTest(t, "", "Unfinalized", "Unfinalized")
464 })
465}
466
Jiakai Zhangea180332021-09-26 08:58:02 +0000467func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800468 t.Parallel()
Jiakai Zhangea180332021-09-26 08:58:02 +0000469 result := android.GroupFixturePreparers(
470 prepareForSdkTestWithJava,
471 android.FixtureAddFile("aidl", nil),
472 android.FixtureAddFile("resource.txt", nil),
473 ).RunTestWithBp(t, `
474 module_exports {
475 name: "myexports",
476 java_systemserver_libs: ["myjavalib"],
477 }
478
479 java_library {
480 name: "myjavalib",
481 srcs: ["Test.java"],
482 java_resources: ["resource.txt"],
483 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
484 // is not intended to be used for compiling Java, only for accessing the dex implementation
485 // jar.
486 aidl: {
487 export_include_dirs: ["aidl"],
488 },
489 system_modules: "none",
490 sdk_version: "none",
491 compile_dex: true,
492 permitted_packages: ["pkg.myjavalib"],
493 }
494 `)
495
496 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000497 checkAndroidBpContents(`
Jiakai Zhangea180332021-09-26 08:58:02 +0000498// This is auto-generated. DO NOT EDIT.
499
Spandan Dasa5e26d32024-03-06 14:04:36 +0000500apex_contributions_defaults {
501 name: "myexports.contributions",
502 contents: [],
503}
504
Jiakai Zhangea180332021-09-26 08:58:02 +0000505java_import {
506 name: "myjavalib",
507 prefer: false,
508 visibility: ["//visibility:public"],
509 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000510 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Jiakai Zhangea180332021-09-26 08:58:02 +0000511 permitted_packages: ["pkg.myjavalib"],
512}
513`),
Jiakai Zhangea180332021-09-26 08:58:02 +0000514 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000515.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
Jiakai Zhangea180332021-09-26 08:58:02 +0000516`),
517 )
518}
519
Paul Duffina0dbf432019-12-05 11:25:53 +0000520func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800521 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +0000522 result := android.GroupFixturePreparers(
523 prepareForSdkTestWithJava,
524 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
525 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000526 module_exports {
527 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000528 device_supported: false,
529 host_supported: true,
530 java_libs: ["myjavalib"],
531 }
532
533 java_library {
534 name: "myjavalib",
535 device_supported: false,
536 host_supported: true,
537 srcs: ["Test.java"],
538 aidl: {
539 export_include_dirs: ["aidl"],
540 },
541 system_modules: "none",
542 sdk_version: "none",
543 compile_dex: true,
544 }
545 `)
546
Paul Duffin36474d32021-03-12 12:19:43 +0000547 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000548 checkAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000549// This is auto-generated. DO NOT EDIT.
550
Spandan Dasa5e26d32024-03-06 14:04:36 +0000551apex_contributions_defaults {
552 name: "myexports.contributions",
553 contents: ["prebuilt_myjavalib"],
554}
555
Paul Duffina80fdec2019-12-03 15:25:00 +0000556java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100557 name: "myjavalib",
558 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100559 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000560 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000561 device_supported: false,
562 host_supported: true,
563 jars: ["java/myjavalib.jar"],
564}
Paul Duffine1381882021-04-16 17:05:10 +0100565`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000566 checkAllCopyRules(`
567.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
568aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
569`),
570 )
571}
572
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000573func TestSnapshotWithJavaTest(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800574 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +0000575 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000576 module_exports {
577 name: "myexports",
578 java_tests: ["myjavatests"],
579 }
580
581 java_test {
582 name: "myjavatests",
583 srcs: ["Test.java"],
584 system_modules: "none",
585 sdk_version: "none",
586 compile_dex: true,
587 host_supported: true,
588 }
589 `)
590
Paul Duffin36474d32021-03-12 12:19:43 +0000591 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000592 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000593// This is auto-generated. DO NOT EDIT.
594
Spandan Dasa5e26d32024-03-06 14:04:36 +0000595apex_contributions_defaults {
596 name: "myexports.contributions",
597 contents: ["prebuilt_myjavatests"],
598}
599
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000600java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100601 name: "myjavatests",
602 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100603 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000604 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000605 jars: ["java/myjavatests.jar"],
606 test_config: "java/myjavatests-AndroidTest.xml",
607}
Paul Duffine1381882021-04-16 17:05:10 +0100608`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000609 checkAllCopyRules(`
610.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
611.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
612`),
613 )
614}
615
616func TestHostSnapshotWithJavaTest(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800617 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +0000618 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000619 module_exports {
620 name: "myexports",
621 device_supported: false,
622 host_supported: true,
623 java_tests: ["myjavatests"],
624 }
625
626 java_test {
627 name: "myjavatests",
628 device_supported: false,
629 host_supported: true,
630 srcs: ["Test.java"],
631 system_modules: "none",
632 sdk_version: "none",
633 compile_dex: true,
634 }
635 `)
636
Paul Duffin36474d32021-03-12 12:19:43 +0000637 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000638 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000639// This is auto-generated. DO NOT EDIT.
640
Spandan Dasa5e26d32024-03-06 14:04:36 +0000641apex_contributions_defaults {
642 name: "myexports.contributions",
643 contents: ["prebuilt_myjavatests"],
644}
645
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000646java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100647 name: "myjavatests",
648 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100649 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000650 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000651 device_supported: false,
652 host_supported: true,
653 jars: ["java/myjavatests.jar"],
654 test_config: "java/myjavatests-AndroidTest.xml",
655}
Paul Duffine1381882021-04-16 17:05:10 +0100656`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000657 checkAllCopyRules(`
658.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
659.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
660`),
661 )
662}
663
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000664func TestSnapshotWithJavaSystemModules(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800665 t.Parallel()
Paul Duffin958806b2022-05-16 13:10:47 +0000666 result := android.GroupFixturePreparers(
667 prepareForSdkTestWithJava,
668 java.PrepareForTestWithJavaDefaultModules,
669 java.PrepareForTestWithJavaSdkLibraryFiles,
670 java.FixtureWithPrebuiltApisAndExtensions(map[string][]string{
671 "31": {"myjavalib"},
672 "32": {"myjavalib"},
673 "current": {"myjavalib"},
674 }, map[string][]string{
675 "1": {"myjavalib"},
676 "2": {"myjavalib"},
677 }),
Colin Crossa66b4632024-08-08 15:50:47 -0700678 android.PrepareForTestWithBuildFlag("RELEASE_HIDDEN_API_EXPORTABLE_STUBS", "true"),
Paul Duffin958806b2022-05-16 13:10:47 +0000679 ).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000680 sdk {
681 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000682 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100683 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000684 java_system_modules: ["my-system-modules"],
685 }
686
Paul Duffin33028712021-06-22 11:00:07 +0100687 java_sdk_library {
688 name: "myjavalib",
689 apex_available: ["//apex_available:anyapex"],
690 srcs: ["Test.java"],
691 sdk_version: "current",
692 shared_library: false,
693 public: {
694 enabled: true,
695 },
Paul Duffind3b020a2024-04-18 10:37:56 +0100696 system: {
697 enabled: true,
698 },
699 module_lib: {
700 enabled: true,
701 },
Paul Duffin33028712021-06-22 11:00:07 +0100702 }
703
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000704 java_system_modules {
705 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100706 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000707 }
708
709 java_library {
710 name: "system-module",
711 srcs: ["Test.java"],
712 sdk_version: "none",
713 system_modules: "none",
714 }
Paul Duffin72910952020-01-20 18:16:30 +0000715
716 java_library {
717 name: "exported-system-module",
718 srcs: ["Test.java"],
719 sdk_version: "none",
720 system_modules: "none",
721 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000722 `)
723
Paul Duffin36474d32021-03-12 12:19:43 +0000724 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000725 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000726// This is auto-generated. DO NOT EDIT.
727
Spandan Dasa5e26d32024-03-06 14:04:36 +0000728apex_contributions_defaults {
729 name: "mysdk.contributions",
730 contents: [
731 "prebuilt_exported-system-module",
732 "prebuilt_myjavalib",
733 "prebuilt_my-system-modules",
734 ],
735}
736
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000737java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100738 name: "exported-system-module",
739 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100740 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000741 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000742 jars: ["java/exported-system-module.jar"],
743}
744
745java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100746 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000747 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100748 visibility: ["//visibility:private"],
749 apex_available: ["//apex_available:platform"],
750 jars: ["java/system-module.jar"],
751}
752
Paul Duffin33028712021-06-22 11:00:07 +0100753java_sdk_library_import {
754 name: "myjavalib",
755 prefer: false,
756 visibility: ["//visibility:public"],
757 apex_available: ["//apex_available:anyapex"],
758 shared_library: false,
759 public: {
760 jars: ["sdk_library/public/myjavalib-stubs.jar"],
761 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
762 current_api: "sdk_library/public/myjavalib.txt",
763 removed_api: "sdk_library/public/myjavalib-removed.txt",
764 sdk_version: "current",
765 },
Paul Duffind3b020a2024-04-18 10:37:56 +0100766 system: {
767 jars: ["sdk_library/system/myjavalib-stubs.jar"],
768 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
769 current_api: "sdk_library/system/myjavalib.txt",
770 removed_api: "sdk_library/system/myjavalib-removed.txt",
771 sdk_version: "system_current",
772 },
773 module_lib: {
774 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
775 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
776 current_api: "sdk_library/module-lib/myjavalib.txt",
777 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
778 sdk_version: "module_current",
779 },
Paul Duffin33028712021-06-22 11:00:07 +0100780}
781
Paul Duffine1381882021-04-16 17:05:10 +0100782java_system_modules_import {
783 name: "my-system-modules",
784 prefer: false,
785 visibility: ["//visibility:public"],
786 libs: [
787 "mysdk_system-module",
788 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100789 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100790 ],
791}
792`),
Paul Duffin72910952020-01-20 18:16:30 +0000793 checkAllCopyRules(`
794.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
795.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Jihoon Kangf55a5f72024-01-08 08:56:20 +0000796.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
797.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
798.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffind3b020a2024-04-18 10:37:56 +0100799.intermediates/myjavalib.stubs.exportable.system/android_common/combined/myjavalib.stubs.exportable.system.jar -> sdk_library/system/myjavalib-stubs.jar
800.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
801.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
802.intermediates/myjavalib.stubs.exportable.module_lib/android_common/combined/myjavalib.stubs.exportable.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
803.intermediates/myjavalib.stubs.source.module_lib/android_common/exportable/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
804.intermediates/myjavalib.stubs.source.module_lib/android_common/exportable/myjavalib.stubs.source.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin72910952020-01-20 18:16:30 +0000805`),
Paul Duffin958806b2022-05-16 13:10:47 +0000806 checkInfoContents(result.Config, `
Paul Duffinc6ba1822022-05-06 09:38:02 +0000807[
808 {
809 "@type": "sdk",
810 "@name": "mysdk",
811 "java_header_libs": [
812 "exported-system-module",
813 "system-module"
814 ],
815 "java_sdk_libs": [
816 "myjavalib"
817 ],
818 "java_system_modules": [
819 "my-system-modules"
820 ]
821 },
822 {
823 "@type": "java_library",
824 "@name": "exported-system-module"
825 },
826 {
827 "@type": "java_system_modules",
828 "@name": "my-system-modules",
829 "@deps": [
830 "exported-system-module",
831 "system-module"
832 ]
833 },
834 {
835 "@type": "java_sdk_library",
Paul Duffin958806b2022-05-16 13:10:47 +0000836 "@name": "myjavalib",
837 "dist_stem": "myjavalib",
838 "scopes": {
Paul Duffind3b020a2024-04-18 10:37:56 +0100839 "module-lib": {
840 "current_api": "sdk_library/module-lib/myjavalib.txt",
841 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.module-lib.latest/gen/myjavalib.api.module-lib.latest",
842 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.module-lib.latest/gen/myjavalib-removed.api.module-lib.latest",
843 "removed_api": "sdk_library/module-lib/myjavalib-removed.txt"
844 },
Paul Duffin958806b2022-05-16 13:10:47 +0000845 "public": {
846 "current_api": "sdk_library/public/myjavalib.txt",
847 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.public.latest/gen/myjavalib.api.public.latest",
848 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.public.latest/gen/myjavalib-removed.api.public.latest",
849 "removed_api": "sdk_library/public/myjavalib-removed.txt"
Paul Duffind3b020a2024-04-18 10:37:56 +0100850 },
851 "system": {
852 "current_api": "sdk_library/system/myjavalib.txt",
853 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.system.latest/gen/myjavalib.api.system.latest",
854 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.system.latest/gen/myjavalib-removed.api.system.latest",
855 "removed_api": "sdk_library/system/myjavalib-removed.txt"
Paul Duffin958806b2022-05-16 13:10:47 +0000856 }
857 }
Paul Duffinc6ba1822022-05-06 09:38:02 +0000858 },
859 {
860 "@type": "java_library",
861 "@name": "system-module"
862 }
863]
864`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000865 )
866}
867
868func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800869 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +0000870 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000871 sdk {
872 name: "mysdk",
873 device_supported: false,
874 host_supported: true,
875 java_system_modules: ["my-system-modules"],
876 }
877
878 java_system_modules {
879 name: "my-system-modules",
880 device_supported: false,
881 host_supported: true,
882 libs: ["system-module"],
883 }
884
885 java_library {
886 name: "system-module",
887 device_supported: false,
888 host_supported: true,
889 srcs: ["Test.java"],
890 sdk_version: "none",
891 system_modules: "none",
892 }
893 `)
894
Paul Duffin36474d32021-03-12 12:19:43 +0000895 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000896 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000897// This is auto-generated. DO NOT EDIT.
898
Spandan Dasa5e26d32024-03-06 14:04:36 +0000899apex_contributions_defaults {
900 name: "mysdk.contributions",
901 contents: ["prebuilt_my-system-modules"],
902}
903
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000904java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100905 name: "mysdk_system-module",
906 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000907 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000908 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000909 device_supported: false,
910 host_supported: true,
911 jars: ["java/system-module.jar"],
912}
913
Paul Duffine1381882021-04-16 17:05:10 +0100914java_system_modules_import {
915 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000916 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100917 visibility: ["//visibility:public"],
918 device_supported: false,
919 host_supported: true,
920 libs: ["mysdk_system-module"],
921}
922`),
Colin Crossf06d8dc2023-07-18 22:11:07 -0700923 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac-header/system-module.jar -> java/system-module.jar"),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000924 )
925}
Paul Duffin865171e2020-03-02 18:38:15 +0000926
927func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -0800928 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +0000929 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000930 module_exports {
931 name: "myexports",
932 host_supported: true,
933 java_libs: ["myjavalib"],
934 target: {
935 android: {
936 java_header_libs: ["androidjavalib"],
937 },
938 host: {
939 java_header_libs: ["hostjavalib"],
940 },
941 },
942 }
943
944 java_library {
945 name: "myjavalib",
946 host_supported: true,
947 srcs: ["Test.java"],
948 system_modules: "none",
949 sdk_version: "none",
950 }
951
952 java_library {
953 name: "androidjavalib",
954 srcs: ["Test.java"],
955 system_modules: "none",
956 sdk_version: "none",
957 }
958
959 java_library_host {
960 name: "hostjavalib",
961 srcs: ["Test.java"],
962 }
963 `)
964
Paul Duffin36474d32021-03-12 12:19:43 +0000965 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000966 checkAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000967// This is auto-generated. DO NOT EDIT.
968
Spandan Dasa5e26d32024-03-06 14:04:36 +0000969apex_contributions_defaults {
970 name: "myexports.contributions",
971 contents: [
972 "prebuilt_hostjavalib",
973 "prebuilt_androidjavalib",
974 "prebuilt_myjavalib",
975 ],
976}
977
Paul Duffin865171e2020-03-02 18:38:15 +0000978java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100979 name: "hostjavalib",
980 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100981 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000982 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000983 device_supported: false,
984 host_supported: true,
985 jars: ["java/hostjavalib.jar"],
986}
987
988java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100989 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000990 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100991 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000992 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100993 jars: ["java/androidjavalib.jar"],
994}
995
996java_import {
997 name: "myjavalib",
998 prefer: false,
999 visibility: ["//visibility:public"],
1000 apex_available: ["//apex_available:platform"],
1001 host_supported: true,
1002 target: {
1003 android: {
1004 jars: ["java/android/myjavalib.jar"],
1005 },
1006 linux_glibc: {
1007 jars: ["java/linux_glibc/myjavalib.jar"],
1008 },
1009 },
1010}
1011`),
Paul Duffin865171e2020-03-02 18:38:15 +00001012 checkAllCopyRules(`
Colin Crossf06d8dc2023-07-18 22:11:07 -07001013.intermediates/hostjavalib/linux_glibc_common/javac-header/hostjavalib.jar -> java/hostjavalib.jar
Paul Duffin865171e2020-03-02 18:38:15 +00001014.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) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001022 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +00001023 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001024 sdk {
1025 name: "mysdk",
1026 java_sdk_libs: ["myjavalib"],
1027 }
1028
1029 java_sdk_library {
1030 name: "myjavalib",
1031 apex_available: ["//apex_available:anyapex"],
1032 srcs: ["Test.java"],
1033 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001034 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001035 stubs_library_visibility: ["//other"],
1036 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +01001037 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001038 }
1039 `)
1040
Paul Duffin36474d32021-03-12 12:19:43 +00001041 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001042 checkAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001043// This is auto-generated. DO NOT EDIT.
1044
Spandan Dasa5e26d32024-03-06 14:04:36 +00001045apex_contributions_defaults {
1046 name: "mysdk.contributions",
1047 contents: ["prebuilt_myjavalib"],
1048}
1049
Paul Duffindd46f712020-02-10 13:37:10 +00001050java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001051 name: "myjavalib",
1052 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001053 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001054 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001055 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001056 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001057 public: {
1058 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001059 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001060 current_api: "sdk_library/public/myjavalib.txt",
1061 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001062 sdk_version: "current",
1063 },
1064 system: {
1065 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001066 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001067 current_api: "sdk_library/system/myjavalib.txt",
1068 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001069 sdk_version: "system_current",
1070 },
1071 test: {
1072 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001073 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001074 current_api: "sdk_library/test/myjavalib.txt",
1075 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001076 sdk_version: "test_current",
1077 },
1078}
Paul Duffine1381882021-04-16 17:05:10 +01001079`),
Paul Duffindd46f712020-02-10 13:37:10 +00001080 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001081.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1082.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1083.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1084.intermediates/myjavalib.stubs.exportable.system/android_common/combined/myjavalib.stubs.exportable.system.jar -> sdk_library/system/myjavalib-stubs.jar
1085.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1086.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
1087.intermediates/myjavalib.stubs.exportable.test/android_common/combined/myjavalib.stubs.exportable.test.jar -> sdk_library/test/myjavalib-stubs.jar
1088.intermediates/myjavalib.stubs.source.test/android_common/exportable/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1089.intermediates/myjavalib.stubs.source.test/android_common/exportable/myjavalib.stubs.source.test_removed.txt -> sdk_library/test/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001090`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001091 checkMergeZips(
1092 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1093 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +01001094 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1095 ),
Paul Duffindd46f712020-02-10 13:37:10 +00001096 )
1097}
Paul Duffin3375e352020-04-28 10:44:03 +01001098
Paul Duffine8409952022-09-22 16:24:46 +01001099func TestSnapshotWithJavaSdkLibrary_DistStem(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001100 t.Parallel()
Paul Duffine8409952022-09-22 16:24:46 +01001101 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1102 sdk {
1103 name: "mysdk",
1104 java_sdk_libs: ["myjavalib-foo"],
1105 }
1106
1107 java_sdk_library {
1108 name: "myjavalib-foo",
1109 apex_available: ["//apex_available:anyapex"],
1110 srcs: ["Test.java"],
1111 sdk_version: "current",
1112 shared_library: false,
1113 public: {
1114 enabled: true,
1115 },
1116 dist_stem: "myjavalib",
1117 }
1118 `)
1119
1120 CheckSnapshot(t, result, "mysdk", "",
1121 checkAndroidBpContents(`
1122// This is auto-generated. DO NOT EDIT.
1123
Spandan Dasa5e26d32024-03-06 14:04:36 +00001124apex_contributions_defaults {
1125 name: "mysdk.contributions",
1126 contents: ["prebuilt_myjavalib-foo"],
1127}
1128
Paul Duffine8409952022-09-22 16:24:46 +01001129java_sdk_library_import {
1130 name: "myjavalib-foo",
1131 prefer: false,
1132 visibility: ["//visibility:public"],
1133 apex_available: ["//apex_available:anyapex"],
1134 shared_library: false,
1135 public: {
1136 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1137 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1138 current_api: "sdk_library/public/myjavalib.txt",
1139 removed_api: "sdk_library/public/myjavalib-removed.txt",
1140 sdk_version: "current",
1141 },
1142}
1143`),
1144 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001145.intermediates/myjavalib-foo.stubs.exportable/android_common/combined/myjavalib-foo.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1146.intermediates/myjavalib-foo.stubs.source/android_common/exportable/myjavalib-foo.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1147.intermediates/myjavalib-foo.stubs.source/android_common/exportable/myjavalib-foo.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffine8409952022-09-22 16:24:46 +01001148`),
1149 checkMergeZips(
1150 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1151 ),
1152 )
1153}
1154
Paul Duffin22628d52021-05-12 23:13:22 +01001155func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001156 t.Parallel()
Paul Duffin22628d52021-05-12 23:13:22 +01001157 result := android.GroupFixturePreparers(
1158 prepareForSdkTestWithJavaSdkLibrary,
1159 android.FixtureMergeEnv(map[string]string{
1160 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1161 }),
1162 ).RunTestWithBp(t, `
1163 sdk {
1164 name: "mysdk",
1165 java_sdk_libs: ["myjavalib"],
1166 }
1167
1168 java_sdk_library {
1169 name: "myjavalib",
1170 srcs: ["Test.java"],
1171 sdk_version: "current",
1172 shared_library: false,
1173 public: {
1174 enabled: true,
1175 },
1176 }
1177 `)
1178
1179 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001180 checkAndroidBpContents(`
Paul Duffin22628d52021-05-12 23:13:22 +01001181// This is auto-generated. DO NOT EDIT.
1182
Spandan Dasa5e26d32024-03-06 14:04:36 +00001183apex_contributions_defaults {
1184 name: "mysdk.contributions",
1185 contents: ["prebuilt_myjavalib"],
1186}
1187
Paul Duffin22628d52021-05-12 23:13:22 +01001188java_sdk_library_import {
1189 name: "myjavalib",
1190 prefer: false,
1191 visibility: ["//visibility:public"],
1192 apex_available: ["//apex_available:platform"],
1193 shared_library: false,
1194 public: {
1195 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1196 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1197 current_api: "sdk_library/public/myjavalib.txt",
1198 removed_api: "sdk_library/public/myjavalib-removed.txt",
1199 sdk_version: "current",
1200 },
1201}
1202 `),
1203 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001204.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1205.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1206.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1207.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin22628d52021-05-12 23:13:22 +01001208 `),
1209 )
1210}
1211
Anton Hanssond78eb762021-09-21 15:25:12 +01001212func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001213 t.Parallel()
Anton Hanssond78eb762021-09-21 15:25:12 +01001214 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1215 sdk {
1216 name: "mysdk",
1217 java_sdk_libs: ["myjavalib"],
1218 }
1219
1220 java_sdk_library {
1221 name: "myjavalib",
1222 srcs: ["Test.java"],
1223 sdk_version: "current",
1224 shared_library: false,
1225 annotations_enabled: true,
1226 public: {
1227 enabled: true,
1228 },
1229 }
1230 `)
1231
1232 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001233 checkAndroidBpContents(`
Anton Hanssond78eb762021-09-21 15:25:12 +01001234// This is auto-generated. DO NOT EDIT.
1235
Spandan Dasa5e26d32024-03-06 14:04:36 +00001236apex_contributions_defaults {
1237 name: "mysdk.contributions",
1238 contents: ["prebuilt_myjavalib"],
1239}
1240
Anton Hanssond78eb762021-09-21 15:25:12 +01001241java_sdk_library_import {
1242 name: "myjavalib",
1243 prefer: false,
1244 visibility: ["//visibility:public"],
1245 apex_available: ["//apex_available:platform"],
1246 shared_library: false,
1247 public: {
1248 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1249 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1250 current_api: "sdk_library/public/myjavalib.txt",
1251 removed_api: "sdk_library/public/myjavalib-removed.txt",
1252 annotations: "sdk_library/public/myjavalib_annotations.zip",
1253 sdk_version: "current",
1254 },
1255}
1256 `),
1257 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001258.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1259.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1260.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1261.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
Anton Hanssond78eb762021-09-21 15:25:12 +01001262 `),
1263 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1264 )
1265}
1266
Paul Duffina54016c2022-01-27 16:39:47 +00001267func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001268 t.Parallel()
Paul Duffina54016c2022-01-27 16:39:47 +00001269 result := android.GroupFixturePreparers(
1270 prepareForSdkTestWithJavaSdkLibrary,
1271 android.FixtureMergeEnv(map[string]string{
1272 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1273 }),
1274 ).RunTestWithBp(t, `
1275 sdk {
1276 name: "mysdk",
1277 java_sdk_libs: ["myjavalib"],
1278 }
1279
1280 java_sdk_library {
1281 name: "myjavalib",
1282 srcs: ["Test.java"],
Paul Duffin1938dba2022-07-26 23:53:00 +00001283 sdk_version: "S",
Paul Duffina54016c2022-01-27 16:39:47 +00001284 shared_library: false,
1285 annotations_enabled: true,
1286 public: {
1287 enabled: true,
1288 },
1289 }
1290 `)
1291
1292 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001293 checkAndroidBpContents(`
Paul Duffina54016c2022-01-27 16:39:47 +00001294// This is auto-generated. DO NOT EDIT.
1295
Spandan Dasa5e26d32024-03-06 14:04:36 +00001296apex_contributions_defaults {
1297 name: "mysdk.contributions",
1298 contents: ["prebuilt_myjavalib"],
1299}
1300
Paul Duffina54016c2022-01-27 16:39:47 +00001301java_sdk_library_import {
1302 name: "myjavalib",
1303 prefer: false,
1304 visibility: ["//visibility:public"],
1305 apex_available: ["//apex_available:platform"],
1306 shared_library: false,
1307 public: {
1308 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1309 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1310 current_api: "sdk_library/public/myjavalib.txt",
1311 removed_api: "sdk_library/public/myjavalib-removed.txt",
1312 sdk_version: "current",
1313 },
1314}
1315 `),
1316 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001317.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1318.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1319.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffina54016c2022-01-27 16:39:47 +00001320 `),
1321 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1322 )
1323}
1324
Paul Duffin1267d872021-04-16 17:21:36 +01001325func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001326 t.Parallel()
Jihoon Kangbd093452023-12-26 19:08:01 +00001327 result := android.GroupFixturePreparers(
1328 prepareForSdkTestWithJavaSdkLibrary,
Colin Crossa66b4632024-08-08 15:50:47 -07001329 android.PrepareForTestWithBuildFlag("RELEASE_HIDDEN_API_EXPORTABLE_STUBS", "true"),
Jihoon Kangbd093452023-12-26 19:08:01 +00001330 ).RunTestWithBp(t, `
Paul Duffin1267d872021-04-16 17:21:36 +01001331 sdk {
1332 name: "mysdk",
1333 java_sdk_libs: ["myjavalib"],
1334 }
1335
1336 java_sdk_library {
1337 name: "myjavalib",
1338 srcs: ["Test.java"],
1339 sdk_version: "current",
1340 shared_library: false,
1341 compile_dex: true,
1342 public: {
1343 enabled: true,
1344 },
1345 system: {
1346 enabled: true,
1347 },
1348 }
1349 `)
1350
1351 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001352 checkAndroidBpContents(`
Paul Duffin1267d872021-04-16 17:21:36 +01001353// This is auto-generated. DO NOT EDIT.
1354
Spandan Dasa5e26d32024-03-06 14:04:36 +00001355apex_contributions_defaults {
1356 name: "mysdk.contributions",
1357 contents: ["prebuilt_myjavalib"],
1358}
1359
Paul Duffin1267d872021-04-16 17:21:36 +01001360java_sdk_library_import {
1361 name: "myjavalib",
1362 prefer: false,
1363 visibility: ["//visibility:public"],
1364 apex_available: ["//apex_available:platform"],
1365 shared_library: false,
1366 compile_dex: true,
1367 public: {
1368 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1369 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1370 current_api: "sdk_library/public/myjavalib.txt",
1371 removed_api: "sdk_library/public/myjavalib-removed.txt",
1372 sdk_version: "current",
1373 },
1374 system: {
1375 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1376 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1377 current_api: "sdk_library/system/myjavalib.txt",
1378 removed_api: "sdk_library/system/myjavalib-removed.txt",
1379 sdk_version: "system_current",
1380 },
1381}
1382`),
1383 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
Paul Duffin1267d872021-04-16 17:21:36 +01001384 dexJarBuildPath := func(name string, kind android.SdkKind) string {
Jihoon Kang98e9ac62024-09-25 23:42:30 +00001385 sdkLibInfo, _ := android.OtherModuleProvider(result.TestContext.OtherModuleProviderAdaptor(), result.Module(name, "android_common"), java.SdkLibraryInfoProvider)
1386 path := sdkLibInfo.ExportableStubDexJarPaths[kind].Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001387 return path.RelativeToTop().String()
1388 }
1389
1390 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
Jihoon Kangbd093452023-12-26 19:08:01 +00001391 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs.exportable/android_common/dex/myjavalib.stubs.exportable.jar", dexJarPath)
Paul Duffin1267d872021-04-16 17:21:36 +01001392
1393 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
Jihoon Kangbd093452023-12-26 19:08:01 +00001394 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.exportable.system/android_common/dex/myjavalib.stubs.exportable.system.jar"
Paul Duffin1267d872021-04-16 17:21:36 +01001395 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1396
1397 // This should fall back to system as module is not available.
1398 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1399 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1400
Jihoon Kangbd093452023-12-26 19:08:01 +00001401 // Prebuilt dex jar does not come from the exportable stubs.
Paul Duffin1267d872021-04-16 17:21:36 +01001402 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1403 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1404 }),
1405 )
1406}
1407
Paul Duffin780c5f42020-05-12 15:52:55 +01001408func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001409 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +00001410 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001411 sdk {
1412 name: "mysdk",
1413 java_sdk_libs: ["myjavalib"],
1414 }
1415
1416 java_sdk_library {
1417 name: "myjavalib",
1418 srcs: ["Test.java"],
1419 sdk_version: "none",
1420 system_modules: "none",
1421 }
1422 `)
1423
Paul Duffin36474d32021-03-12 12:19:43 +00001424 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001425 checkAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001426// This is auto-generated. DO NOT EDIT.
1427
Spandan Dasa5e26d32024-03-06 14:04:36 +00001428apex_contributions_defaults {
1429 name: "mysdk.contributions",
1430 contents: ["prebuilt_myjavalib"],
1431}
1432
Paul Duffin780c5f42020-05-12 15:52:55 +01001433java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001434 name: "myjavalib",
1435 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001436 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001437 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001438 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001439 public: {
1440 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001441 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001442 current_api: "sdk_library/public/myjavalib.txt",
1443 removed_api: "sdk_library/public/myjavalib-removed.txt",
1444 sdk_version: "none",
1445 },
1446}
Paul Duffine1381882021-04-16 17:05:10 +01001447`),
Paul Duffin780c5f42020-05-12 15:52:55 +01001448 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001449.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1450.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1451.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001452`),
1453 checkMergeZips(
1454 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1455 ),
1456 )
1457}
1458
Paul Duffin87a05a32020-05-12 11:50:28 +01001459func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001460 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +00001461 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001462 sdk {
1463 name: "mysdk",
1464 java_sdk_libs: ["myjavalib"],
1465 }
1466
1467 java_sdk_library {
1468 name: "myjavalib",
1469 srcs: ["Test.java"],
1470 sdk_version: "module_current",
1471 public: {
1472 enabled: true,
1473 sdk_version: "module_current",
1474 },
1475 }
1476 `)
1477
Paul Duffin36474d32021-03-12 12:19:43 +00001478 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001479 checkAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001480// This is auto-generated. DO NOT EDIT.
1481
Spandan Dasa5e26d32024-03-06 14:04:36 +00001482apex_contributions_defaults {
1483 name: "mysdk.contributions",
1484 contents: ["prebuilt_myjavalib"],
1485}
1486
Paul Duffin87a05a32020-05-12 11:50:28 +01001487java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001488 name: "myjavalib",
1489 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001490 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001491 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001492 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001493 public: {
1494 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001495 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001496 current_api: "sdk_library/public/myjavalib.txt",
1497 removed_api: "sdk_library/public/myjavalib-removed.txt",
1498 sdk_version: "module_current",
1499 },
1500}
Paul Duffine1381882021-04-16 17:05:10 +01001501`),
Paul Duffin87a05a32020-05-12 11:50:28 +01001502 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001503.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1504.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1505.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001506`),
1507 checkMergeZips(
1508 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1509 ),
1510 )
1511}
1512
1513func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001514 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +00001515 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001516 sdk {
1517 name: "mysdk",
1518 java_sdk_libs: ["myjavalib"],
1519 }
1520
1521 java_sdk_library {
1522 name: "myjavalib",
1523 apex_available: ["//apex_available:anyapex"],
1524 srcs: ["Test.java"],
1525 sdk_version: "current",
1526 public: {
1527 enabled: true,
1528 },
1529 system: {
1530 enabled: true,
1531 },
1532 }
1533 `)
1534
Paul Duffin36474d32021-03-12 12:19:43 +00001535 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001536 checkAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001537// This is auto-generated. DO NOT EDIT.
1538
Spandan Dasa5e26d32024-03-06 14:04:36 +00001539apex_contributions_defaults {
1540 name: "mysdk.contributions",
1541 contents: ["prebuilt_myjavalib"],
1542}
1543
Paul Duffin3375e352020-04-28 10:44:03 +01001544java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001545 name: "myjavalib",
1546 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001547 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001548 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001549 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001550 public: {
1551 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001552 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001553 current_api: "sdk_library/public/myjavalib.txt",
1554 removed_api: "sdk_library/public/myjavalib-removed.txt",
1555 sdk_version: "current",
1556 },
1557 system: {
1558 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001559 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001560 current_api: "sdk_library/system/myjavalib.txt",
1561 removed_api: "sdk_library/system/myjavalib-removed.txt",
1562 sdk_version: "system_current",
1563 },
1564}
Paul Duffine1381882021-04-16 17:05:10 +01001565`),
Paul Duffin3375e352020-04-28 10:44:03 +01001566 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001567.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1568.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1569.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1570.intermediates/myjavalib.stubs.exportable.system/android_common/combined/myjavalib.stubs.exportable.system.jar -> sdk_library/system/myjavalib-stubs.jar
1571.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1572.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001573`),
1574 checkMergeZips(
1575 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1576 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1577 ),
1578 )
1579}
Paul Duffin8f265b92020-04-28 14:13:56 +01001580
1581func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001582 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +00001583 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001584 sdk {
1585 name: "mysdk",
1586 java_sdk_libs: ["myjavalib"],
1587 }
1588
1589 java_sdk_library {
1590 name: "myjavalib",
1591 apex_available: ["//apex_available:anyapex"],
1592 srcs: ["Test.java"],
1593 sdk_version: "current",
1594 public: {
1595 enabled: true,
1596 },
1597 system: {
1598 enabled: true,
1599 },
1600 module_lib: {
1601 enabled: true,
1602 },
1603 }
1604 `)
1605
Paul Duffin36474d32021-03-12 12:19:43 +00001606 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001607 checkAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001608// This is auto-generated. DO NOT EDIT.
1609
Spandan Dasa5e26d32024-03-06 14:04:36 +00001610apex_contributions_defaults {
1611 name: "mysdk.contributions",
1612 contents: ["prebuilt_myjavalib"],
1613}
1614
Paul Duffin8f265b92020-04-28 14:13:56 +01001615java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001616 name: "myjavalib",
1617 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001618 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001619 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001620 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001621 public: {
1622 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001623 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001624 current_api: "sdk_library/public/myjavalib.txt",
1625 removed_api: "sdk_library/public/myjavalib-removed.txt",
1626 sdk_version: "current",
1627 },
1628 system: {
1629 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001630 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001631 current_api: "sdk_library/system/myjavalib.txt",
1632 removed_api: "sdk_library/system/myjavalib-removed.txt",
1633 sdk_version: "system_current",
1634 },
1635 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001636 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001637 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001638 current_api: "sdk_library/module-lib/myjavalib.txt",
1639 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001640 sdk_version: "module_current",
1641 },
1642}
Paul Duffine1381882021-04-16 17:05:10 +01001643`),
Paul Duffin8f265b92020-04-28 14:13:56 +01001644 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001645.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1646.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1647.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1648.intermediates/myjavalib.stubs.exportable.system/android_common/combined/myjavalib.stubs.exportable.system.jar -> sdk_library/system/myjavalib-stubs.jar
1649.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1650.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
1651.intermediates/myjavalib.stubs.exportable.module_lib/android_common/combined/myjavalib.stubs.exportable.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
1652.intermediates/myjavalib.stubs.source.module_lib/android_common/exportable/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1653.intermediates/myjavalib.stubs.source.module_lib/android_common/exportable/myjavalib.stubs.source.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001654`),
1655 checkMergeZips(
Paul Duffin74f1dcd2022-07-18 13:18:23 +00001656 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001657 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1658 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001659 ),
1660 )
1661}
Paul Duffinf7a64332020-05-13 16:54:55 +01001662
Paul Duffin0c5bae52020-06-02 13:00:08 +01001663func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001664 t.Parallel()
Paul Duffin9ec86b12021-03-15 11:17:52 +00001665 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001666 sdk {
1667 name: "mysdk",
1668 java_sdk_libs: ["myjavalib"],
1669 }
1670
1671 java_sdk_library {
1672 name: "myjavalib",
1673 apex_available: ["//apex_available:anyapex"],
1674 srcs: ["Test.java"],
1675 sdk_version: "current",
1676 public: {
1677 enabled: true,
1678 },
1679 system_server: {
1680 enabled: true,
1681 },
1682 }
1683 `)
1684
Paul Duffin36474d32021-03-12 12:19:43 +00001685 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001686 checkAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001687// This is auto-generated. DO NOT EDIT.
1688
Spandan Dasa5e26d32024-03-06 14:04:36 +00001689apex_contributions_defaults {
1690 name: "mysdk.contributions",
1691 contents: ["prebuilt_myjavalib"],
1692}
1693
Paul Duffin0c5bae52020-06-02 13:00:08 +01001694java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001695 name: "myjavalib",
1696 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001697 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001698 apex_available: ["//apex_available:anyapex"],
1699 shared_library: true,
1700 public: {
1701 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001702 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001703 current_api: "sdk_library/public/myjavalib.txt",
1704 removed_api: "sdk_library/public/myjavalib-removed.txt",
1705 sdk_version: "current",
1706 },
1707 system_server: {
1708 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001709 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001710 current_api: "sdk_library/system-server/myjavalib.txt",
1711 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1712 sdk_version: "system_server_current",
1713 },
1714}
Paul Duffine1381882021-04-16 17:05:10 +01001715`),
Paul Duffin0c5bae52020-06-02 13:00:08 +01001716 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001717.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1718.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1719.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1720.intermediates/myjavalib.stubs.exportable.system_server/android_common/combined/myjavalib.stubs.exportable.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1721.intermediates/myjavalib.stubs.source.system_server/android_common/exportable/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1722.intermediates/myjavalib.stubs.source.system_server/android_common/exportable/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
Paul Duffin0c5bae52020-06-02 13:00:08 +01001723`),
1724 checkMergeZips(
1725 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1726 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1727 ),
1728 )
1729}
1730
Paul Duffina2ae7e02020-09-11 11:55:00 +01001731func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Colin Crossaba8cd92025-02-05 16:39:18 -08001732 t.Parallel()
Paul Duffindb462dd2021-03-21 22:01:55 +00001733 result := android.GroupFixturePreparers(
1734 prepareForSdkTestWithJavaSdkLibrary,
1735 android.FixtureAddFile("docs/known_doctags", nil),
1736 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001737 sdk {
1738 name: "mysdk",
1739 java_sdk_libs: ["myjavalib"],
1740 }
1741
1742 java_sdk_library {
1743 name: "myjavalib",
1744 srcs: ["Test.java"],
1745 sdk_version: "current",
1746 public: {
1747 enabled: true,
1748 },
1749 doctag_files: ["docs/known_doctags"],
1750 }
1751
1752 filegroup {
1753 name: "mygroup",
Cole Faust65cb40a2024-10-21 15:41:42 -07001754 device_common_srcs: [":myjavalib{.doctags}"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001755 }
1756 `)
1757
Paul Duffin36474d32021-03-12 12:19:43 +00001758 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001759 checkAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001760// This is auto-generated. DO NOT EDIT.
1761
Spandan Dasa5e26d32024-03-06 14:04:36 +00001762apex_contributions_defaults {
1763 name: "mysdk.contributions",
1764 contents: ["prebuilt_myjavalib"],
1765}
1766
Paul Duffina2ae7e02020-09-11 11:55:00 +01001767java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001768 name: "myjavalib",
1769 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001770 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001771 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001772 shared_library: true,
1773 doctag_files: ["doctags/docs/known_doctags"],
1774 public: {
1775 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001776 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001777 current_api: "sdk_library/public/myjavalib.txt",
1778 removed_api: "sdk_library/public/myjavalib-removed.txt",
1779 sdk_version: "current",
1780 },
1781}
Paul Duffine1381882021-04-16 17:05:10 +01001782`),
Paul Duffina2ae7e02020-09-11 11:55:00 +01001783 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001784.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1785.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1786.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffina2ae7e02020-09-11 11:55:00 +01001787docs/known_doctags -> doctags/docs/known_doctags
1788`),
1789 )
1790}