blob: 0a5483b07636249863d617cf739869308669a200 [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"),
Jihoon Kangf55a5f72024-01-08 08:56:20 +000048 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
49 variables.BuildFlags = map[string]string{
50 "RELEASE_HIDDEN_API_EXPORTABLE_STUBS": "true",
51 }
52 }),
Paul Duffin9ec86b12021-03-15 11:17:52 +000053)
54
Paul Duffina80fdec2019-12-03 15:25:00 +000055// Contains tests for SDK members provided by the java package.
56
Paul Duffincee7e662020-07-09 17:32:57 +010057func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000058 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +010059 sdk {
60 name: "mysdk",
61 java_header_libs: ["sdkmember"],
62 }
63
64 java_library {
65 name: "sdkmember",
66 srcs: ["Test.java"],
67 system_modules: "none",
68 sdk_version: "none",
69 }
Paul Duffincee7e662020-07-09 17:32:57 +010070 `)
71
72 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin1822a0a2021-03-21 12:56:33 +000073 sdkChecker := func(t *testing.T, result *android.TestResult) {
74 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
75 }
Paul Duffincee7e662020-07-09 17:32:57 +010076
Paul Duffin36474d32021-03-12 12:19:43 +000077 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin1822a0a2021-03-21 12:56:33 +000078 snapshotTestChecker(checkSnapshotWithSourcePreferred, sdkChecker),
79 snapshotTestChecker(checkSnapshotPreferredWithSource, sdkChecker),
80 )
Paul Duffincee7e662020-07-09 17:32:57 +010081}
82
Paul Duffina0dbf432019-12-05 11:25:53 +000083func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000084 result := android.GroupFixturePreparers(
85 prepareForSdkTestWithJava,
86 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
87 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +000088 sdk {
89 name: "mysdk",
90 java_header_libs: ["myjavalib"],
91 }
92
93 java_library {
94 name: "myjavalib",
95 srcs: ["Test.java"],
96 aidl: {
97 export_include_dirs: ["aidl"],
98 },
99 system_modules: "none",
100 sdk_version: "none",
101 compile_dex: true,
102 host_supported: true,
Paul Duffin869de142021-07-15 14:14:41 +0100103 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000104 }
105 `)
106
Paul Duffin36474d32021-03-12 12:19:43 +0000107 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000108 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100109// This is auto-generated. DO NOT EDIT.
110
Spandan Dasa5e26d32024-03-06 14:04:36 +0000111apex_contributions_defaults {
112 name: "mysdk.contributions",
113 contents: ["prebuilt_myjavalib"],
114}
115
Paul Duffine1381882021-04-16 17:05:10 +0100116java_import {
117 name: "myjavalib",
118 prefer: false,
119 visibility: ["//visibility:public"],
120 apex_available: ["//apex_available:platform"],
121 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100122 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100123}
124`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000125 checkAllCopyRules(`
126.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
127aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
128`),
129 )
130}
131
132func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000133 result := android.GroupFixturePreparers(
134 prepareForSdkTestWithJava,
135 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
136 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000137 sdk {
138 name: "mysdk",
139 device_supported: false,
140 host_supported: true,
141 java_header_libs: ["myjavalib"],
142 }
143
144 java_library {
145 name: "myjavalib",
146 device_supported: false,
147 host_supported: true,
148 srcs: ["Test.java"],
149 aidl: {
150 export_include_dirs: ["aidl"],
151 },
152 system_modules: "none",
153 sdk_version: "none",
154 compile_dex: true,
155 }
156 `)
157
Paul Duffin36474d32021-03-12 12:19:43 +0000158 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000159 checkAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000160// This is auto-generated. DO NOT EDIT.
161
Spandan Dasa5e26d32024-03-06 14:04:36 +0000162apex_contributions_defaults {
163 name: "mysdk.contributions",
164 contents: ["prebuilt_myjavalib"],
165}
166
Paul Duffina0dbf432019-12-05 11:25:53 +0000167java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100168 name: "myjavalib",
169 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100170 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000171 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000172 device_supported: false,
173 host_supported: true,
174 jars: ["java/myjavalib.jar"],
175}
Paul Duffine1381882021-04-16 17:05:10 +0100176`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000177 checkAllCopyRules(`
Colin Crossf06d8dc2023-07-18 22:11:07 -0700178.intermediates/myjavalib/linux_glibc_common/javac-header/myjavalib.jar -> java/myjavalib.jar
Paul Duffina0dbf432019-12-05 11:25:53 +0000179aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
180`),
181 )
182}
183
Paul Duffina04c1072020-03-02 10:16:35 +0000184func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
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) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000235 result := android.GroupFixturePreparers(
236 prepareForSdkTestWithJava,
237 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000238 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000239 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000240 module_exports {
241 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000242 java_libs: ["myjavalib"],
243 }
244
245 java_library {
246 name: "myjavalib",
247 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100248 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000249 aidl: {
250 export_include_dirs: ["aidl"],
251 },
252 system_modules: "none",
253 sdk_version: "none",
254 compile_dex: true,
255 host_supported: true,
256 }
257 `)
258
Paul Duffin36474d32021-03-12 12:19:43 +0000259 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000260 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100261// This is auto-generated. DO NOT EDIT.
262
Spandan Dasa5e26d32024-03-06 14:04:36 +0000263apex_contributions_defaults {
264 name: "myexports.contributions",
265 contents: ["prebuilt_myjavalib"],
266}
267
Paul Duffine1381882021-04-16 17:05:10 +0100268java_import {
269 name: "myjavalib",
270 prefer: false,
271 visibility: ["//visibility:public"],
272 apex_available: ["//apex_available:platform"],
273 jars: ["java/myjavalib.jar"],
274}
275`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000276 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100277.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000278aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
279`),
280 )
281}
282
Paul Duffindb170e42020-12-08 17:48:25 +0000283func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +0000284 result := android.GroupFixturePreparers(
285 prepareForSdkTestWithJava,
286 android.FixtureAddFile("aidl", nil),
287 android.FixtureAddFile("resource.txt", nil),
288 ).RunTestWithBp(t, `
Paul Duffin13648912022-07-15 13:12:35 +0000289 sdk {
290 name: "mysdk",
Paul Duffindb170e42020-12-08 17:48:25 +0000291 java_boot_libs: ["myjavalib"],
292 }
293
294 java_library {
295 name: "myjavalib",
296 srcs: ["Test.java"],
297 java_resources: ["resource.txt"],
298 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
299 // intended to be used for compiling Java, only for accessing the dex implementation jar.
300 aidl: {
301 export_include_dirs: ["aidl"],
302 },
303 system_modules: "none",
304 sdk_version: "none",
305 compile_dex: true,
Paul Duffin869de142021-07-15 14:14:41 +0100306 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000307 }
308 `)
309
Paul Duffin13648912022-07-15 13:12:35 +0000310 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000311 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100312// This is auto-generated. DO NOT EDIT.
313
Spandan Dasa5e26d32024-03-06 14:04:36 +0000314apex_contributions_defaults {
315 name: "mysdk.contributions",
316 contents: [],
317}
318
Paul Duffine1381882021-04-16 17:05:10 +0100319java_import {
320 name: "myjavalib",
321 prefer: false,
322 visibility: ["//visibility:public"],
323 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000324 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100325 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100326}
327`),
Paul Duffindb170e42020-12-08 17:48:25 +0000328 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000329.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000330`),
331 )
332}
333
Paul Duffin13648912022-07-15 13:12:35 +0000334func TestSnapshotWithJavaBootLibrary_UpdatableMedia(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000335 runTest := func(t *testing.T, targetBuildRelease, expectedJarPath, expectedCopyRule string) {
Paul Duffin13648912022-07-15 13:12:35 +0000336 result := android.GroupFixturePreparers(
337 prepareForSdkTestWithJava,
338 android.FixtureMergeEnv(map[string]string{
339 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
340 }),
Spandan Dasa5e26d32024-03-06 14:04:36 +0000341 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
342 variables.Platform_version_active_codenames = []string{"VanillaIceCream"}
343 }),
Paul Duffin13648912022-07-15 13:12:35 +0000344 ).RunTestWithBp(t, `
345 sdk {
346 name: "mysdk",
347 java_boot_libs: ["updatable-media"],
348 }
349
350 java_library {
351 name: "updatable-media",
352 srcs: ["Test.java"],
353 system_modules: "none",
354 sdk_version: "none",
355 compile_dex: true,
356 permitted_packages: ["pkg.media"],
357 apex_available: ["com.android.media"],
358 }
359 `)
360
361 CheckSnapshot(t, result, "mysdk", "",
362 checkAndroidBpContents(fmt.Sprintf(`
363// This is auto-generated. DO NOT EDIT.
364
365java_import {
366 name: "updatable-media",
367 prefer: false,
368 visibility: ["//visibility:public"],
369 apex_available: ["com.android.media"],
370 jars: ["%s"],
371 permitted_packages: ["pkg.media"],
372}
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000373`, expectedJarPath)),
Paul Duffin13648912022-07-15 13:12:35 +0000374 checkAllCopyRules(expectedCopyRule),
375 )
376 }
377
378 t.Run("updatable-media in S", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000379 runTest(t, "S", "java/updatable-media.jar", `
Paul Duffin13648912022-07-15 13:12:35 +0000380.intermediates/updatable-media/android_common/package-check/updatable-media.jar -> java/updatable-media.jar
381`)
382 })
383
384 t.Run("updatable-media in T", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000385 runTest(t, "Tiramisu", "java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar", `
386.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar
Paul Duffin13648912022-07-15 13:12:35 +0000387`)
388 })
389}
390
Paul Duffinbb638eb2022-11-26 13:36:38 +0000391func TestSnapshotWithJavaLibrary_MinSdkVersion(t *testing.T) {
392 runTest := func(t *testing.T, targetBuildRelease, minSdkVersion, expectedMinSdkVersion string) {
393 result := android.GroupFixturePreparers(
394 prepareForSdkTestWithJava,
395 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
396 variables.Platform_version_active_codenames = []string{"S", "Tiramisu", "Unfinalized"}
397 }),
398 android.FixtureMergeEnv(map[string]string{
399 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
400 }),
401 ).RunTestWithBp(t, fmt.Sprintf(`
402 sdk {
403 name: "mysdk",
404 java_header_libs: ["mylib"],
405 }
406
407 java_library {
408 name: "mylib",
409 srcs: ["Test.java"],
410 system_modules: "none",
411 sdk_version: "none",
412 compile_dex: true,
413 min_sdk_version: "%s",
414 }
415 `, minSdkVersion))
416
417 expectedMinSdkVersionLine := ""
418 if expectedMinSdkVersion != "" {
419 expectedMinSdkVersionLine = fmt.Sprintf(" min_sdk_version: %q,\n", expectedMinSdkVersion)
420 }
421
422 CheckSnapshot(t, result, "mysdk", "",
423 checkAndroidBpContents(fmt.Sprintf(`
424// This is auto-generated. DO NOT EDIT.
425
Spandan Dasa5e26d32024-03-06 14:04:36 +0000426apex_contributions_defaults {
427 name: "mysdk.contributions",
428 contents: ["prebuilt_mylib"],
429}
430
Paul Duffinbb638eb2022-11-26 13:36:38 +0000431java_import {
432 name: "mylib",
433 prefer: false,
434 visibility: ["//visibility:public"],
435 apex_available: ["//apex_available:platform"],
436 jars: ["java/mylib.jar"],
437%s}
438`, expectedMinSdkVersionLine)),
439 )
440 }
441
442 t.Run("min_sdk_version=S in S", func(t *testing.T) {
443 // min_sdk_version was not added to java_import until Tiramisu.
444 runTest(t, "S", "S", "")
445 })
446
447 t.Run("min_sdk_version=S in Tiramisu", func(t *testing.T) {
448 // The canonical form of S is 31.
449 runTest(t, "Tiramisu", "S", "31")
450 })
451
452 t.Run("min_sdk_version=24 in Tiramisu", func(t *testing.T) {
453 // A numerical min_sdk_version is already in canonical form.
454 runTest(t, "Tiramisu", "24", "24")
455 })
456
457 t.Run("min_sdk_version=Unfinalized in latest", func(t *testing.T) {
458 // An unfinalized min_sdk_version has no numeric value yet.
459 runTest(t, "", "Unfinalized", "Unfinalized")
460 })
461}
462
Jiakai Zhangea180332021-09-26 08:58:02 +0000463func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
464 result := android.GroupFixturePreparers(
465 prepareForSdkTestWithJava,
466 android.FixtureAddFile("aidl", nil),
467 android.FixtureAddFile("resource.txt", nil),
468 ).RunTestWithBp(t, `
469 module_exports {
470 name: "myexports",
471 java_systemserver_libs: ["myjavalib"],
472 }
473
474 java_library {
475 name: "myjavalib",
476 srcs: ["Test.java"],
477 java_resources: ["resource.txt"],
478 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
479 // is not intended to be used for compiling Java, only for accessing the dex implementation
480 // jar.
481 aidl: {
482 export_include_dirs: ["aidl"],
483 },
484 system_modules: "none",
485 sdk_version: "none",
486 compile_dex: true,
487 permitted_packages: ["pkg.myjavalib"],
488 }
489 `)
490
491 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000492 checkAndroidBpContents(`
Jiakai Zhangea180332021-09-26 08:58:02 +0000493// This is auto-generated. DO NOT EDIT.
494
Spandan Dasa5e26d32024-03-06 14:04:36 +0000495apex_contributions_defaults {
496 name: "myexports.contributions",
497 contents: [],
498}
499
Jiakai Zhangea180332021-09-26 08:58:02 +0000500java_import {
501 name: "myjavalib",
502 prefer: false,
503 visibility: ["//visibility:public"],
504 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000505 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Jiakai Zhangea180332021-09-26 08:58:02 +0000506 permitted_packages: ["pkg.myjavalib"],
507}
508`),
Jiakai Zhangea180332021-09-26 08:58:02 +0000509 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000510.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
Jiakai Zhangea180332021-09-26 08:58:02 +0000511`),
512 )
513}
514
Paul Duffina0dbf432019-12-05 11:25:53 +0000515func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000516 result := android.GroupFixturePreparers(
517 prepareForSdkTestWithJava,
518 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
519 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000520 module_exports {
521 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000522 device_supported: false,
523 host_supported: true,
524 java_libs: ["myjavalib"],
525 }
526
527 java_library {
528 name: "myjavalib",
529 device_supported: false,
530 host_supported: true,
531 srcs: ["Test.java"],
532 aidl: {
533 export_include_dirs: ["aidl"],
534 },
535 system_modules: "none",
536 sdk_version: "none",
537 compile_dex: true,
538 }
539 `)
540
Paul Duffin36474d32021-03-12 12:19:43 +0000541 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000542 checkAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000543// This is auto-generated. DO NOT EDIT.
544
Spandan Dasa5e26d32024-03-06 14:04:36 +0000545apex_contributions_defaults {
546 name: "myexports.contributions",
547 contents: ["prebuilt_myjavalib"],
548}
549
Paul Duffina80fdec2019-12-03 15:25:00 +0000550java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100551 name: "myjavalib",
552 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100553 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000554 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000555 device_supported: false,
556 host_supported: true,
557 jars: ["java/myjavalib.jar"],
558}
Paul Duffine1381882021-04-16 17:05:10 +0100559`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000560 checkAllCopyRules(`
561.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
562aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
563`),
564 )
565}
566
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000567func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000568 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000569 module_exports {
570 name: "myexports",
571 java_tests: ["myjavatests"],
572 }
573
574 java_test {
575 name: "myjavatests",
576 srcs: ["Test.java"],
577 system_modules: "none",
578 sdk_version: "none",
579 compile_dex: true,
580 host_supported: true,
581 }
582 `)
583
Paul Duffin36474d32021-03-12 12:19:43 +0000584 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000585 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000586// This is auto-generated. DO NOT EDIT.
587
Spandan Dasa5e26d32024-03-06 14:04:36 +0000588apex_contributions_defaults {
589 name: "myexports.contributions",
590 contents: ["prebuilt_myjavatests"],
591}
592
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000593java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100594 name: "myjavatests",
595 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100596 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000597 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000598 jars: ["java/myjavatests.jar"],
599 test_config: "java/myjavatests-AndroidTest.xml",
600}
Paul Duffine1381882021-04-16 17:05:10 +0100601`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000602 checkAllCopyRules(`
603.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
604.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
605`),
606 )
607}
608
609func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000610 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000611 module_exports {
612 name: "myexports",
613 device_supported: false,
614 host_supported: true,
615 java_tests: ["myjavatests"],
616 }
617
618 java_test {
619 name: "myjavatests",
620 device_supported: false,
621 host_supported: true,
622 srcs: ["Test.java"],
623 system_modules: "none",
624 sdk_version: "none",
625 compile_dex: true,
626 }
627 `)
628
Paul Duffin36474d32021-03-12 12:19:43 +0000629 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000630 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000631// This is auto-generated. DO NOT EDIT.
632
Spandan Dasa5e26d32024-03-06 14:04:36 +0000633apex_contributions_defaults {
634 name: "myexports.contributions",
635 contents: ["prebuilt_myjavatests"],
636}
637
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000638java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100639 name: "myjavatests",
640 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100641 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000642 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000643 device_supported: false,
644 host_supported: true,
645 jars: ["java/myjavatests.jar"],
646 test_config: "java/myjavatests-AndroidTest.xml",
647}
Paul Duffine1381882021-04-16 17:05:10 +0100648`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000649 checkAllCopyRules(`
650.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
651.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
652`),
653 )
654}
655
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000656func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin958806b2022-05-16 13:10:47 +0000657 result := android.GroupFixturePreparers(
658 prepareForSdkTestWithJava,
659 java.PrepareForTestWithJavaDefaultModules,
660 java.PrepareForTestWithJavaSdkLibraryFiles,
661 java.FixtureWithPrebuiltApisAndExtensions(map[string][]string{
662 "31": {"myjavalib"},
663 "32": {"myjavalib"},
664 "current": {"myjavalib"},
665 }, map[string][]string{
666 "1": {"myjavalib"},
667 "2": {"myjavalib"},
668 }),
Jihoon Kangf55a5f72024-01-08 08:56:20 +0000669 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
670 variables.BuildFlags = map[string]string{
671 "RELEASE_HIDDEN_API_EXPORTABLE_STUBS": "true",
672 }
673 }),
Paul Duffin958806b2022-05-16 13:10:47 +0000674 ).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000675 sdk {
676 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000677 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100678 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000679 java_system_modules: ["my-system-modules"],
680 }
681
Paul Duffin33028712021-06-22 11:00:07 +0100682 java_sdk_library {
683 name: "myjavalib",
684 apex_available: ["//apex_available:anyapex"],
685 srcs: ["Test.java"],
686 sdk_version: "current",
687 shared_library: false,
688 public: {
689 enabled: true,
690 },
Paul Duffind3b020a2024-04-18 10:37:56 +0100691 system: {
692 enabled: true,
693 },
694 module_lib: {
695 enabled: true,
696 },
Paul Duffin33028712021-06-22 11:00:07 +0100697 }
698
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000699 java_system_modules {
700 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100701 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000702 }
703
704 java_library {
705 name: "system-module",
706 srcs: ["Test.java"],
707 sdk_version: "none",
708 system_modules: "none",
709 }
Paul Duffin72910952020-01-20 18:16:30 +0000710
711 java_library {
712 name: "exported-system-module",
713 srcs: ["Test.java"],
714 sdk_version: "none",
715 system_modules: "none",
716 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000717 `)
718
Paul Duffin36474d32021-03-12 12:19:43 +0000719 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000720 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000721// This is auto-generated. DO NOT EDIT.
722
Spandan Dasa5e26d32024-03-06 14:04:36 +0000723apex_contributions_defaults {
724 name: "mysdk.contributions",
725 contents: [
726 "prebuilt_exported-system-module",
727 "prebuilt_myjavalib",
728 "prebuilt_my-system-modules",
729 ],
730}
731
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000732java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100733 name: "exported-system-module",
734 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100735 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000736 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000737 jars: ["java/exported-system-module.jar"],
738}
739
740java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100741 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000742 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100743 visibility: ["//visibility:private"],
744 apex_available: ["//apex_available:platform"],
745 jars: ["java/system-module.jar"],
746}
747
Paul Duffin33028712021-06-22 11:00:07 +0100748java_sdk_library_import {
749 name: "myjavalib",
750 prefer: false,
751 visibility: ["//visibility:public"],
752 apex_available: ["//apex_available:anyapex"],
753 shared_library: false,
754 public: {
755 jars: ["sdk_library/public/myjavalib-stubs.jar"],
756 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
757 current_api: "sdk_library/public/myjavalib.txt",
758 removed_api: "sdk_library/public/myjavalib-removed.txt",
759 sdk_version: "current",
760 },
Paul Duffind3b020a2024-04-18 10:37:56 +0100761 system: {
762 jars: ["sdk_library/system/myjavalib-stubs.jar"],
763 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
764 current_api: "sdk_library/system/myjavalib.txt",
765 removed_api: "sdk_library/system/myjavalib-removed.txt",
766 sdk_version: "system_current",
767 },
768 module_lib: {
769 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
770 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
771 current_api: "sdk_library/module-lib/myjavalib.txt",
772 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
773 sdk_version: "module_current",
774 },
Paul Duffin33028712021-06-22 11:00:07 +0100775}
776
Paul Duffine1381882021-04-16 17:05:10 +0100777java_system_modules_import {
778 name: "my-system-modules",
779 prefer: false,
780 visibility: ["//visibility:public"],
781 libs: [
782 "mysdk_system-module",
783 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100784 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100785 ],
786}
787`),
Paul Duffin72910952020-01-20 18:16:30 +0000788 checkAllCopyRules(`
789.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
790.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Jihoon Kangf55a5f72024-01-08 08:56:20 +0000791.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
792.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
793.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 +0100794.intermediates/myjavalib.stubs.exportable.system/android_common/combined/myjavalib.stubs.exportable.system.jar -> sdk_library/system/myjavalib-stubs.jar
795.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
796.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
797.intermediates/myjavalib.stubs.exportable.module_lib/android_common/combined/myjavalib.stubs.exportable.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
798.intermediates/myjavalib.stubs.source.module_lib/android_common/exportable/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
799.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 +0000800`),
Paul Duffin958806b2022-05-16 13:10:47 +0000801 checkInfoContents(result.Config, `
Paul Duffinc6ba1822022-05-06 09:38:02 +0000802[
803 {
804 "@type": "sdk",
805 "@name": "mysdk",
806 "java_header_libs": [
807 "exported-system-module",
808 "system-module"
809 ],
810 "java_sdk_libs": [
811 "myjavalib"
812 ],
813 "java_system_modules": [
814 "my-system-modules"
815 ]
816 },
817 {
818 "@type": "java_library",
819 "@name": "exported-system-module"
820 },
821 {
822 "@type": "java_system_modules",
823 "@name": "my-system-modules",
824 "@deps": [
825 "exported-system-module",
826 "system-module"
827 ]
828 },
829 {
830 "@type": "java_sdk_library",
Paul Duffin958806b2022-05-16 13:10:47 +0000831 "@name": "myjavalib",
832 "dist_stem": "myjavalib",
833 "scopes": {
Paul Duffind3b020a2024-04-18 10:37:56 +0100834 "module-lib": {
835 "current_api": "sdk_library/module-lib/myjavalib.txt",
836 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.module-lib.latest/gen/myjavalib.api.module-lib.latest",
837 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.module-lib.latest/gen/myjavalib-removed.api.module-lib.latest",
838 "removed_api": "sdk_library/module-lib/myjavalib-removed.txt"
839 },
Paul Duffin958806b2022-05-16 13:10:47 +0000840 "public": {
841 "current_api": "sdk_library/public/myjavalib.txt",
842 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.public.latest/gen/myjavalib.api.public.latest",
843 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.public.latest/gen/myjavalib-removed.api.public.latest",
844 "removed_api": "sdk_library/public/myjavalib-removed.txt"
Paul Duffind3b020a2024-04-18 10:37:56 +0100845 },
846 "system": {
847 "current_api": "sdk_library/system/myjavalib.txt",
848 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.system.latest/gen/myjavalib.api.system.latest",
849 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.system.latest/gen/myjavalib-removed.api.system.latest",
850 "removed_api": "sdk_library/system/myjavalib-removed.txt"
Paul Duffin958806b2022-05-16 13:10:47 +0000851 }
852 }
Paul Duffinc6ba1822022-05-06 09:38:02 +0000853 },
854 {
855 "@type": "java_library",
856 "@name": "system-module"
857 }
858]
859`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000860 )
861}
862
863func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000864 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000865 sdk {
866 name: "mysdk",
867 device_supported: false,
868 host_supported: true,
869 java_system_modules: ["my-system-modules"],
870 }
871
872 java_system_modules {
873 name: "my-system-modules",
874 device_supported: false,
875 host_supported: true,
876 libs: ["system-module"],
877 }
878
879 java_library {
880 name: "system-module",
881 device_supported: false,
882 host_supported: true,
883 srcs: ["Test.java"],
884 sdk_version: "none",
885 system_modules: "none",
886 }
887 `)
888
Paul Duffin36474d32021-03-12 12:19:43 +0000889 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000890 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000891// This is auto-generated. DO NOT EDIT.
892
Spandan Dasa5e26d32024-03-06 14:04:36 +0000893apex_contributions_defaults {
894 name: "mysdk.contributions",
895 contents: ["prebuilt_my-system-modules"],
896}
897
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000898java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100899 name: "mysdk_system-module",
900 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000901 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000902 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000903 device_supported: false,
904 host_supported: true,
905 jars: ["java/system-module.jar"],
906}
907
Paul Duffine1381882021-04-16 17:05:10 +0100908java_system_modules_import {
909 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000910 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100911 visibility: ["//visibility:public"],
912 device_supported: false,
913 host_supported: true,
914 libs: ["mysdk_system-module"],
915}
916`),
Colin Crossf06d8dc2023-07-18 22:11:07 -0700917 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac-header/system-module.jar -> java/system-module.jar"),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000918 )
919}
Paul Duffin865171e2020-03-02 18:38:15 +0000920
921func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000922 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000923 module_exports {
924 name: "myexports",
925 host_supported: true,
926 java_libs: ["myjavalib"],
927 target: {
928 android: {
929 java_header_libs: ["androidjavalib"],
930 },
931 host: {
932 java_header_libs: ["hostjavalib"],
933 },
934 },
935 }
936
937 java_library {
938 name: "myjavalib",
939 host_supported: true,
940 srcs: ["Test.java"],
941 system_modules: "none",
942 sdk_version: "none",
943 }
944
945 java_library {
946 name: "androidjavalib",
947 srcs: ["Test.java"],
948 system_modules: "none",
949 sdk_version: "none",
950 }
951
952 java_library_host {
953 name: "hostjavalib",
954 srcs: ["Test.java"],
955 }
956 `)
957
Paul Duffin36474d32021-03-12 12:19:43 +0000958 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000959 checkAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000960// This is auto-generated. DO NOT EDIT.
961
Spandan Dasa5e26d32024-03-06 14:04:36 +0000962apex_contributions_defaults {
963 name: "myexports.contributions",
964 contents: [
965 "prebuilt_hostjavalib",
966 "prebuilt_androidjavalib",
967 "prebuilt_myjavalib",
968 ],
969}
970
Paul Duffin865171e2020-03-02 18:38:15 +0000971java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100972 name: "hostjavalib",
973 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100974 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000975 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000976 device_supported: false,
977 host_supported: true,
978 jars: ["java/hostjavalib.jar"],
979}
980
981java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100982 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000983 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100984 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000985 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100986 jars: ["java/androidjavalib.jar"],
987}
988
989java_import {
990 name: "myjavalib",
991 prefer: false,
992 visibility: ["//visibility:public"],
993 apex_available: ["//apex_available:platform"],
994 host_supported: true,
995 target: {
996 android: {
997 jars: ["java/android/myjavalib.jar"],
998 },
999 linux_glibc: {
1000 jars: ["java/linux_glibc/myjavalib.jar"],
1001 },
1002 },
1003}
1004`),
Paul Duffin865171e2020-03-02 18:38:15 +00001005 checkAllCopyRules(`
Colin Crossf06d8dc2023-07-18 22:11:07 -07001006.intermediates/hostjavalib/linux_glibc_common/javac-header/hostjavalib.jar -> java/hostjavalib.jar
Paul Duffin865171e2020-03-02 18:38:15 +00001007.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1008.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1009.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1010`),
1011 )
1012}
Paul Duffindd46f712020-02-10 13:37:10 +00001013
1014func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001015 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001016 sdk {
1017 name: "mysdk",
1018 java_sdk_libs: ["myjavalib"],
1019 }
1020
1021 java_sdk_library {
1022 name: "myjavalib",
1023 apex_available: ["//apex_available:anyapex"],
1024 srcs: ["Test.java"],
1025 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001026 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001027 stubs_library_visibility: ["//other"],
1028 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +01001029 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001030 }
1031 `)
1032
Paul Duffin36474d32021-03-12 12:19:43 +00001033 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001034 checkAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001035// This is auto-generated. DO NOT EDIT.
1036
Spandan Dasa5e26d32024-03-06 14:04:36 +00001037apex_contributions_defaults {
1038 name: "mysdk.contributions",
1039 contents: ["prebuilt_myjavalib"],
1040}
1041
Paul Duffindd46f712020-02-10 13:37:10 +00001042java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001043 name: "myjavalib",
1044 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001045 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001046 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001047 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001048 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001049 public: {
1050 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001051 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001052 current_api: "sdk_library/public/myjavalib.txt",
1053 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001054 sdk_version: "current",
1055 },
1056 system: {
1057 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001058 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001059 current_api: "sdk_library/system/myjavalib.txt",
1060 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001061 sdk_version: "system_current",
1062 },
1063 test: {
1064 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001065 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001066 current_api: "sdk_library/test/myjavalib.txt",
1067 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001068 sdk_version: "test_current",
1069 },
1070}
Paul Duffine1381882021-04-16 17:05:10 +01001071`),
Paul Duffindd46f712020-02-10 13:37:10 +00001072 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001073.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1074.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1075.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1076.intermediates/myjavalib.stubs.exportable.system/android_common/combined/myjavalib.stubs.exportable.system.jar -> sdk_library/system/myjavalib-stubs.jar
1077.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1078.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
1079.intermediates/myjavalib.stubs.exportable.test/android_common/combined/myjavalib.stubs.exportable.test.jar -> sdk_library/test/myjavalib-stubs.jar
1080.intermediates/myjavalib.stubs.source.test/android_common/exportable/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1081.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 +00001082`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001083 checkMergeZips(
1084 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1085 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +01001086 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1087 ),
Paul Duffindd46f712020-02-10 13:37:10 +00001088 )
1089}
Paul Duffin3375e352020-04-28 10:44:03 +01001090
Paul Duffine8409952022-09-22 16:24:46 +01001091func TestSnapshotWithJavaSdkLibrary_DistStem(t *testing.T) {
1092 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1093 sdk {
1094 name: "mysdk",
1095 java_sdk_libs: ["myjavalib-foo"],
1096 }
1097
1098 java_sdk_library {
1099 name: "myjavalib-foo",
1100 apex_available: ["//apex_available:anyapex"],
1101 srcs: ["Test.java"],
1102 sdk_version: "current",
1103 shared_library: false,
1104 public: {
1105 enabled: true,
1106 },
1107 dist_stem: "myjavalib",
1108 }
1109 `)
1110
1111 CheckSnapshot(t, result, "mysdk", "",
1112 checkAndroidBpContents(`
1113// This is auto-generated. DO NOT EDIT.
1114
Spandan Dasa5e26d32024-03-06 14:04:36 +00001115apex_contributions_defaults {
1116 name: "mysdk.contributions",
1117 contents: ["prebuilt_myjavalib-foo"],
1118}
1119
Paul Duffine8409952022-09-22 16:24:46 +01001120java_sdk_library_import {
1121 name: "myjavalib-foo",
1122 prefer: false,
1123 visibility: ["//visibility:public"],
1124 apex_available: ["//apex_available:anyapex"],
1125 shared_library: false,
1126 public: {
1127 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1128 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1129 current_api: "sdk_library/public/myjavalib.txt",
1130 removed_api: "sdk_library/public/myjavalib-removed.txt",
1131 sdk_version: "current",
1132 },
1133}
1134`),
1135 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001136.intermediates/myjavalib-foo.stubs.exportable/android_common/combined/myjavalib-foo.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1137.intermediates/myjavalib-foo.stubs.source/android_common/exportable/myjavalib-foo.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1138.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 +01001139`),
1140 checkMergeZips(
1141 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1142 ),
1143 )
1144}
1145
Paul Duffin22628d52021-05-12 23:13:22 +01001146func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1147 result := android.GroupFixturePreparers(
1148 prepareForSdkTestWithJavaSdkLibrary,
1149 android.FixtureMergeEnv(map[string]string{
1150 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1151 }),
1152 ).RunTestWithBp(t, `
1153 sdk {
1154 name: "mysdk",
1155 java_sdk_libs: ["myjavalib"],
1156 }
1157
1158 java_sdk_library {
1159 name: "myjavalib",
1160 srcs: ["Test.java"],
1161 sdk_version: "current",
1162 shared_library: false,
1163 public: {
1164 enabled: true,
1165 },
1166 }
1167 `)
1168
1169 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001170 checkAndroidBpContents(`
Paul Duffin22628d52021-05-12 23:13:22 +01001171// This is auto-generated. DO NOT EDIT.
1172
Spandan Dasa5e26d32024-03-06 14:04:36 +00001173apex_contributions_defaults {
1174 name: "mysdk.contributions",
1175 contents: ["prebuilt_myjavalib"],
1176}
1177
Paul Duffin22628d52021-05-12 23:13:22 +01001178java_sdk_library_import {
1179 name: "myjavalib",
1180 prefer: false,
1181 visibility: ["//visibility:public"],
1182 apex_available: ["//apex_available:platform"],
1183 shared_library: false,
1184 public: {
1185 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1186 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1187 current_api: "sdk_library/public/myjavalib.txt",
1188 removed_api: "sdk_library/public/myjavalib-removed.txt",
1189 sdk_version: "current",
1190 },
1191}
1192 `),
1193 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001194.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1195.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1196.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1197.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 +01001198 `),
1199 )
1200}
1201
Anton Hanssond78eb762021-09-21 15:25:12 +01001202func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1203 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1204 sdk {
1205 name: "mysdk",
1206 java_sdk_libs: ["myjavalib"],
1207 }
1208
1209 java_sdk_library {
1210 name: "myjavalib",
1211 srcs: ["Test.java"],
1212 sdk_version: "current",
1213 shared_library: false,
1214 annotations_enabled: true,
1215 public: {
1216 enabled: true,
1217 },
1218 }
1219 `)
1220
1221 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001222 checkAndroidBpContents(`
Anton Hanssond78eb762021-09-21 15:25:12 +01001223// This is auto-generated. DO NOT EDIT.
1224
Spandan Dasa5e26d32024-03-06 14:04:36 +00001225apex_contributions_defaults {
1226 name: "mysdk.contributions",
1227 contents: ["prebuilt_myjavalib"],
1228}
1229
Anton Hanssond78eb762021-09-21 15:25:12 +01001230java_sdk_library_import {
1231 name: "myjavalib",
1232 prefer: false,
1233 visibility: ["//visibility:public"],
1234 apex_available: ["//apex_available:platform"],
1235 shared_library: false,
1236 public: {
1237 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1238 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1239 current_api: "sdk_library/public/myjavalib.txt",
1240 removed_api: "sdk_library/public/myjavalib-removed.txt",
1241 annotations: "sdk_library/public/myjavalib_annotations.zip",
1242 sdk_version: "current",
1243 },
1244}
1245 `),
1246 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001247.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1248.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1249.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1250.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 +01001251 `),
1252 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1253 )
1254}
1255
Paul Duffina54016c2022-01-27 16:39:47 +00001256func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
1257 result := android.GroupFixturePreparers(
1258 prepareForSdkTestWithJavaSdkLibrary,
1259 android.FixtureMergeEnv(map[string]string{
1260 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1261 }),
1262 ).RunTestWithBp(t, `
1263 sdk {
1264 name: "mysdk",
1265 java_sdk_libs: ["myjavalib"],
1266 }
1267
1268 java_sdk_library {
1269 name: "myjavalib",
1270 srcs: ["Test.java"],
Paul Duffin1938dba2022-07-26 23:53:00 +00001271 sdk_version: "S",
Paul Duffina54016c2022-01-27 16:39:47 +00001272 shared_library: false,
1273 annotations_enabled: true,
1274 public: {
1275 enabled: true,
1276 },
1277 }
1278 `)
1279
1280 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001281 checkAndroidBpContents(`
Paul Duffina54016c2022-01-27 16:39:47 +00001282// This is auto-generated. DO NOT EDIT.
1283
Spandan Dasa5e26d32024-03-06 14:04:36 +00001284apex_contributions_defaults {
1285 name: "mysdk.contributions",
1286 contents: ["prebuilt_myjavalib"],
1287}
1288
Paul Duffina54016c2022-01-27 16:39:47 +00001289java_sdk_library_import {
1290 name: "myjavalib",
1291 prefer: false,
1292 visibility: ["//visibility:public"],
1293 apex_available: ["//apex_available:platform"],
1294 shared_library: false,
1295 public: {
1296 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1297 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1298 current_api: "sdk_library/public/myjavalib.txt",
1299 removed_api: "sdk_library/public/myjavalib-removed.txt",
1300 sdk_version: "current",
1301 },
1302}
1303 `),
1304 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001305.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1306.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1307.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 +00001308 `),
1309 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1310 )
1311}
1312
Paul Duffin1267d872021-04-16 17:21:36 +01001313func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
Jihoon Kangbd093452023-12-26 19:08:01 +00001314 result := android.GroupFixturePreparers(
1315 prepareForSdkTestWithJavaSdkLibrary,
1316 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
1317 variables.BuildFlags = map[string]string{
1318 "RELEASE_HIDDEN_API_EXPORTABLE_STUBS": "true",
1319 }
1320 }),
1321 ).RunTestWithBp(t, `
Paul Duffin1267d872021-04-16 17:21:36 +01001322 sdk {
1323 name: "mysdk",
1324 java_sdk_libs: ["myjavalib"],
1325 }
1326
1327 java_sdk_library {
1328 name: "myjavalib",
1329 srcs: ["Test.java"],
1330 sdk_version: "current",
1331 shared_library: false,
1332 compile_dex: true,
1333 public: {
1334 enabled: true,
1335 },
1336 system: {
1337 enabled: true,
1338 },
1339 }
1340 `)
1341
1342 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001343 checkAndroidBpContents(`
Paul Duffin1267d872021-04-16 17:21:36 +01001344// This is auto-generated. DO NOT EDIT.
1345
Spandan Dasa5e26d32024-03-06 14:04:36 +00001346apex_contributions_defaults {
1347 name: "mysdk.contributions",
1348 contents: ["prebuilt_myjavalib"],
1349}
1350
Paul Duffin1267d872021-04-16 17:21:36 +01001351java_sdk_library_import {
1352 name: "myjavalib",
1353 prefer: false,
1354 visibility: ["//visibility:public"],
1355 apex_available: ["//apex_available:platform"],
1356 shared_library: false,
1357 compile_dex: true,
1358 public: {
1359 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1360 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1361 current_api: "sdk_library/public/myjavalib.txt",
1362 removed_api: "sdk_library/public/myjavalib-removed.txt",
1363 sdk_version: "current",
1364 },
1365 system: {
1366 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1367 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1368 current_api: "sdk_library/system/myjavalib.txt",
1369 removed_api: "sdk_library/system/myjavalib-removed.txt",
1370 sdk_version: "system_current",
1371 },
1372}
1373`),
1374 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1375 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1376 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1377 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Jihoon Kangbd093452023-12-26 19:08:01 +00001378 path := dep.SdkApiExportableStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001379 return path.RelativeToTop().String()
1380 }
1381
1382 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
Jihoon Kangbd093452023-12-26 19:08:01 +00001383 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 +01001384
1385 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
Jihoon Kangbd093452023-12-26 19:08:01 +00001386 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.exportable.system/android_common/dex/myjavalib.stubs.exportable.system.jar"
Paul Duffin1267d872021-04-16 17:21:36 +01001387 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1388
1389 // This should fall back to system as module is not available.
1390 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1391 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1392
Jihoon Kangbd093452023-12-26 19:08:01 +00001393 // Prebuilt dex jar does not come from the exportable stubs.
Paul Duffin1267d872021-04-16 17:21:36 +01001394 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1395 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1396 }),
1397 )
1398}
1399
Paul Duffin780c5f42020-05-12 15:52:55 +01001400func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001401 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001402 sdk {
1403 name: "mysdk",
1404 java_sdk_libs: ["myjavalib"],
1405 }
1406
1407 java_sdk_library {
1408 name: "myjavalib",
1409 srcs: ["Test.java"],
1410 sdk_version: "none",
1411 system_modules: "none",
1412 }
1413 `)
1414
Paul Duffin36474d32021-03-12 12:19:43 +00001415 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001416 checkAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001417// This is auto-generated. DO NOT EDIT.
1418
Spandan Dasa5e26d32024-03-06 14:04:36 +00001419apex_contributions_defaults {
1420 name: "mysdk.contributions",
1421 contents: ["prebuilt_myjavalib"],
1422}
1423
Paul Duffin780c5f42020-05-12 15:52:55 +01001424java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001425 name: "myjavalib",
1426 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001427 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001428 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001429 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001430 public: {
1431 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001432 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001433 current_api: "sdk_library/public/myjavalib.txt",
1434 removed_api: "sdk_library/public/myjavalib-removed.txt",
1435 sdk_version: "none",
1436 },
1437}
Paul Duffine1381882021-04-16 17:05:10 +01001438`),
Paul Duffin780c5f42020-05-12 15:52:55 +01001439 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001440.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1441.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1442.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 +01001443`),
1444 checkMergeZips(
1445 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1446 ),
1447 )
1448}
1449
Paul Duffin87a05a32020-05-12 11:50:28 +01001450func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001451 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001452 sdk {
1453 name: "mysdk",
1454 java_sdk_libs: ["myjavalib"],
1455 }
1456
1457 java_sdk_library {
1458 name: "myjavalib",
1459 srcs: ["Test.java"],
1460 sdk_version: "module_current",
1461 public: {
1462 enabled: true,
1463 sdk_version: "module_current",
1464 },
1465 }
1466 `)
1467
Paul Duffin36474d32021-03-12 12:19:43 +00001468 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001469 checkAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001470// This is auto-generated. DO NOT EDIT.
1471
Spandan Dasa5e26d32024-03-06 14:04:36 +00001472apex_contributions_defaults {
1473 name: "mysdk.contributions",
1474 contents: ["prebuilt_myjavalib"],
1475}
1476
Paul Duffin87a05a32020-05-12 11:50:28 +01001477java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001478 name: "myjavalib",
1479 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001480 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001481 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001482 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001483 public: {
1484 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001485 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001486 current_api: "sdk_library/public/myjavalib.txt",
1487 removed_api: "sdk_library/public/myjavalib-removed.txt",
1488 sdk_version: "module_current",
1489 },
1490}
Paul Duffine1381882021-04-16 17:05:10 +01001491`),
Paul Duffin87a05a32020-05-12 11:50:28 +01001492 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001493.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1494.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1495.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 +01001496`),
1497 checkMergeZips(
1498 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1499 ),
1500 )
1501}
1502
1503func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001504 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001505 sdk {
1506 name: "mysdk",
1507 java_sdk_libs: ["myjavalib"],
1508 }
1509
1510 java_sdk_library {
1511 name: "myjavalib",
1512 apex_available: ["//apex_available:anyapex"],
1513 srcs: ["Test.java"],
1514 sdk_version: "current",
1515 public: {
1516 enabled: true,
1517 },
1518 system: {
1519 enabled: true,
1520 },
1521 }
1522 `)
1523
Paul Duffin36474d32021-03-12 12:19:43 +00001524 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001525 checkAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001526// This is auto-generated. DO NOT EDIT.
1527
Spandan Dasa5e26d32024-03-06 14:04:36 +00001528apex_contributions_defaults {
1529 name: "mysdk.contributions",
1530 contents: ["prebuilt_myjavalib"],
1531}
1532
Paul Duffin3375e352020-04-28 10:44:03 +01001533java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001534 name: "myjavalib",
1535 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001536 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001537 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001538 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001539 public: {
1540 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001541 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001542 current_api: "sdk_library/public/myjavalib.txt",
1543 removed_api: "sdk_library/public/myjavalib-removed.txt",
1544 sdk_version: "current",
1545 },
1546 system: {
1547 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001548 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001549 current_api: "sdk_library/system/myjavalib.txt",
1550 removed_api: "sdk_library/system/myjavalib-removed.txt",
1551 sdk_version: "system_current",
1552 },
1553}
Paul Duffine1381882021-04-16 17:05:10 +01001554`),
Paul Duffin3375e352020-04-28 10:44:03 +01001555 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001556.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1557.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1558.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1559.intermediates/myjavalib.stubs.exportable.system/android_common/combined/myjavalib.stubs.exportable.system.jar -> sdk_library/system/myjavalib-stubs.jar
1560.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1561.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 +01001562`),
1563 checkMergeZips(
1564 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1565 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1566 ),
1567 )
1568}
Paul Duffin8f265b92020-04-28 14:13:56 +01001569
1570func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001571 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001572 sdk {
1573 name: "mysdk",
1574 java_sdk_libs: ["myjavalib"],
1575 }
1576
1577 java_sdk_library {
1578 name: "myjavalib",
1579 apex_available: ["//apex_available:anyapex"],
1580 srcs: ["Test.java"],
1581 sdk_version: "current",
1582 public: {
1583 enabled: true,
1584 },
1585 system: {
1586 enabled: true,
1587 },
1588 module_lib: {
1589 enabled: true,
1590 },
1591 }
1592 `)
1593
Paul Duffin36474d32021-03-12 12:19:43 +00001594 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001595 checkAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001596// This is auto-generated. DO NOT EDIT.
1597
Spandan Dasa5e26d32024-03-06 14:04:36 +00001598apex_contributions_defaults {
1599 name: "mysdk.contributions",
1600 contents: ["prebuilt_myjavalib"],
1601}
1602
Paul Duffin8f265b92020-04-28 14:13:56 +01001603java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001604 name: "myjavalib",
1605 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001606 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001607 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001608 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001609 public: {
1610 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001611 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001612 current_api: "sdk_library/public/myjavalib.txt",
1613 removed_api: "sdk_library/public/myjavalib-removed.txt",
1614 sdk_version: "current",
1615 },
1616 system: {
1617 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001618 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001619 current_api: "sdk_library/system/myjavalib.txt",
1620 removed_api: "sdk_library/system/myjavalib-removed.txt",
1621 sdk_version: "system_current",
1622 },
1623 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001624 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001625 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001626 current_api: "sdk_library/module-lib/myjavalib.txt",
1627 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001628 sdk_version: "module_current",
1629 },
1630}
Paul Duffine1381882021-04-16 17:05:10 +01001631`),
Paul Duffin8f265b92020-04-28 14:13:56 +01001632 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001633.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1634.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1635.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1636.intermediates/myjavalib.stubs.exportable.system/android_common/combined/myjavalib.stubs.exportable.system.jar -> sdk_library/system/myjavalib-stubs.jar
1637.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1638.intermediates/myjavalib.stubs.source.system/android_common/exportable/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
1639.intermediates/myjavalib.stubs.exportable.module_lib/android_common/combined/myjavalib.stubs.exportable.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
1640.intermediates/myjavalib.stubs.source.module_lib/android_common/exportable/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1641.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 +01001642`),
1643 checkMergeZips(
Paul Duffin74f1dcd2022-07-18 13:18:23 +00001644 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001645 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1646 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001647 ),
1648 )
1649}
Paul Duffinf7a64332020-05-13 16:54:55 +01001650
Paul Duffin0c5bae52020-06-02 13:00:08 +01001651func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001652 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001653 sdk {
1654 name: "mysdk",
1655 java_sdk_libs: ["myjavalib"],
1656 }
1657
1658 java_sdk_library {
1659 name: "myjavalib",
1660 apex_available: ["//apex_available:anyapex"],
1661 srcs: ["Test.java"],
1662 sdk_version: "current",
1663 public: {
1664 enabled: true,
1665 },
1666 system_server: {
1667 enabled: true,
1668 },
1669 }
1670 `)
1671
Paul Duffin36474d32021-03-12 12:19:43 +00001672 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001673 checkAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001674// This is auto-generated. DO NOT EDIT.
1675
Spandan Dasa5e26d32024-03-06 14:04:36 +00001676apex_contributions_defaults {
1677 name: "mysdk.contributions",
1678 contents: ["prebuilt_myjavalib"],
1679}
1680
Paul Duffin0c5bae52020-06-02 13:00:08 +01001681java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001682 name: "myjavalib",
1683 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001684 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001685 apex_available: ["//apex_available:anyapex"],
1686 shared_library: true,
1687 public: {
1688 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001689 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001690 current_api: "sdk_library/public/myjavalib.txt",
1691 removed_api: "sdk_library/public/myjavalib-removed.txt",
1692 sdk_version: "current",
1693 },
1694 system_server: {
1695 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001696 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001697 current_api: "sdk_library/system-server/myjavalib.txt",
1698 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1699 sdk_version: "system_server_current",
1700 },
1701}
Paul Duffine1381882021-04-16 17:05:10 +01001702`),
Paul Duffin0c5bae52020-06-02 13:00:08 +01001703 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001704.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1705.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1706.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1707.intermediates/myjavalib.stubs.exportable.system_server/android_common/combined/myjavalib.stubs.exportable.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1708.intermediates/myjavalib.stubs.source.system_server/android_common/exportable/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1709.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 +01001710`),
1711 checkMergeZips(
1712 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1713 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1714 ),
1715 )
1716}
1717
Paul Duffinf7a64332020-05-13 16:54:55 +01001718func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001719 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001720 sdk {
1721 name: "mysdk",
1722 java_sdk_libs: ["myjavalib"],
1723 }
1724
1725 java_sdk_library {
1726 name: "myjavalib",
1727 apex_available: ["//apex_available:anyapex"],
1728 srcs: ["Test.java"],
1729 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001730 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001731 public: {
1732 enabled: true,
1733 },
1734 }
1735 `)
1736
Paul Duffin36474d32021-03-12 12:19:43 +00001737 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001738 checkAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001739// This is auto-generated. DO NOT EDIT.
1740
Spandan Dasa5e26d32024-03-06 14:04:36 +00001741apex_contributions_defaults {
1742 name: "mysdk.contributions",
1743 contents: ["prebuilt_myjavalib"],
1744}
1745
Paul Duffinf7a64332020-05-13 16:54:55 +01001746java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001747 name: "myjavalib",
1748 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001749 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001750 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001751 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001752 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001753 public: {
1754 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001755 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001756 current_api: "sdk_library/public/myjavalib.txt",
1757 removed_api: "sdk_library/public/myjavalib-removed.txt",
1758 sdk_version: "current",
1759 },
1760}
Paul Duffine1381882021-04-16 17:05:10 +01001761`),
Paul Duffinf7a64332020-05-13 16:54:55 +01001762 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001763.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1764.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1765.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001766`),
1767 checkMergeZips(
1768 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1769 ),
1770 )
1771}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001772
1773func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001774 result := android.GroupFixturePreparers(
1775 prepareForSdkTestWithJavaSdkLibrary,
1776 android.FixtureAddFile("docs/known_doctags", nil),
1777 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001778 sdk {
1779 name: "mysdk",
1780 java_sdk_libs: ["myjavalib"],
1781 }
1782
1783 java_sdk_library {
1784 name: "myjavalib",
1785 srcs: ["Test.java"],
1786 sdk_version: "current",
1787 public: {
1788 enabled: true,
1789 },
1790 doctag_files: ["docs/known_doctags"],
1791 }
1792
1793 filegroup {
1794 name: "mygroup",
1795 srcs: [":myjavalib{.doctags}"],
1796 }
1797 `)
1798
Paul Duffin36474d32021-03-12 12:19:43 +00001799 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001800 checkAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001801// This is auto-generated. DO NOT EDIT.
1802
Spandan Dasa5e26d32024-03-06 14:04:36 +00001803apex_contributions_defaults {
1804 name: "mysdk.contributions",
1805 contents: ["prebuilt_myjavalib"],
1806}
1807
Paul Duffina2ae7e02020-09-11 11:55:00 +01001808java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001809 name: "myjavalib",
1810 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001811 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001812 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001813 shared_library: true,
1814 doctag_files: ["doctags/docs/known_doctags"],
1815 public: {
1816 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001817 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001818 current_api: "sdk_library/public/myjavalib.txt",
1819 removed_api: "sdk_library/public/myjavalib-removed.txt",
1820 sdk_version: "current",
1821 },
1822}
Paul Duffine1381882021-04-16 17:05:10 +01001823`),
Paul Duffina2ae7e02020-09-11 11:55:00 +01001824 checkAllCopyRules(`
Jihoon Kangf55a5f72024-01-08 08:56:20 +00001825.intermediates/myjavalib.stubs.exportable/android_common/combined/myjavalib.stubs.exportable.jar -> sdk_library/public/myjavalib-stubs.jar
1826.intermediates/myjavalib.stubs.source/android_common/exportable/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1827.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 +01001828docs/known_doctags -> doctags/docs/known_doctags
1829`),
1830 )
1831}