blob: 5165b4abe281a8336327d13338d8d03f1ff87c1c [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"),
48)
49
Paul Duffina80fdec2019-12-03 15:25:00 +000050// Contains tests for SDK members provided by the java package.
51
Paul Duffincee7e662020-07-09 17:32:57 +010052func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000053 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +010054 sdk {
55 name: "mysdk",
56 java_header_libs: ["sdkmember"],
57 }
58
59 java_library {
60 name: "sdkmember",
61 srcs: ["Test.java"],
62 system_modules: "none",
63 sdk_version: "none",
64 }
Paul Duffincee7e662020-07-09 17:32:57 +010065 `)
66
67 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin1822a0a2021-03-21 12:56:33 +000068 sdkChecker := func(t *testing.T, result *android.TestResult) {
69 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
70 }
Paul Duffincee7e662020-07-09 17:32:57 +010071
Paul Duffin36474d32021-03-12 12:19:43 +000072 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin1822a0a2021-03-21 12:56:33 +000073 snapshotTestChecker(checkSnapshotWithSourcePreferred, sdkChecker),
74 snapshotTestChecker(checkSnapshotPreferredWithSource, sdkChecker),
75 )
Paul Duffincee7e662020-07-09 17:32:57 +010076}
77
Paul Duffina0dbf432019-12-05 11:25:53 +000078func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000079 result := android.GroupFixturePreparers(
80 prepareForSdkTestWithJava,
81 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
82 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +000083 sdk {
84 name: "mysdk",
85 java_header_libs: ["myjavalib"],
86 }
87
88 java_library {
89 name: "myjavalib",
90 srcs: ["Test.java"],
91 aidl: {
92 export_include_dirs: ["aidl"],
93 },
94 system_modules: "none",
95 sdk_version: "none",
96 compile_dex: true,
97 host_supported: true,
Paul Duffin869de142021-07-15 14:14:41 +010098 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +000099 }
100 `)
101
Paul Duffin36474d32021-03-12 12:19:43 +0000102 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000103 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100104// This is auto-generated. DO NOT EDIT.
105
106java_import {
107 name: "myjavalib",
108 prefer: false,
109 visibility: ["//visibility:public"],
110 apex_available: ["//apex_available:platform"],
111 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100112 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100113}
114`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000115 checkAllCopyRules(`
116.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
117aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
118`),
119 )
120}
121
122func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000123 result := android.GroupFixturePreparers(
124 prepareForSdkTestWithJava,
125 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
126 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000127 sdk {
128 name: "mysdk",
129 device_supported: false,
130 host_supported: true,
131 java_header_libs: ["myjavalib"],
132 }
133
134 java_library {
135 name: "myjavalib",
136 device_supported: false,
137 host_supported: true,
138 srcs: ["Test.java"],
139 aidl: {
140 export_include_dirs: ["aidl"],
141 },
142 system_modules: "none",
143 sdk_version: "none",
144 compile_dex: true,
145 }
146 `)
147
Paul Duffin36474d32021-03-12 12:19:43 +0000148 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000149 checkAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000150// This is auto-generated. DO NOT EDIT.
151
152java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100153 name: "myjavalib",
154 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100155 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000156 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000157 device_supported: false,
158 host_supported: true,
159 jars: ["java/myjavalib.jar"],
160}
Paul Duffine1381882021-04-16 17:05:10 +0100161`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000162 checkAllCopyRules(`
Colin Crossf06d8dc2023-07-18 22:11:07 -0700163.intermediates/myjavalib/linux_glibc_common/javac-header/myjavalib.jar -> java/myjavalib.jar
Paul Duffina0dbf432019-12-05 11:25:53 +0000164aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
165`),
166 )
167}
168
Paul Duffina04c1072020-03-02 10:16:35 +0000169func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000170 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000171 sdk {
172 name: "mysdk",
173 host_supported: true,
174 java_header_libs: ["myjavalib"],
175 }
176
177 java_library {
178 name: "myjavalib",
179 host_supported: true,
180 srcs: ["Test.java"],
181 system_modules: "none",
182 sdk_version: "none",
183 compile_dex: true,
184 }
185 `)
186
Paul Duffin36474d32021-03-12 12:19:43 +0000187 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000188 checkAndroidBpContents(`
Paul Duffina04c1072020-03-02 10:16:35 +0000189// This is auto-generated. DO NOT EDIT.
190
191java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100192 name: "myjavalib",
193 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100194 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000195 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000196 host_supported: true,
197 target: {
198 android: {
199 jars: ["java/android/myjavalib.jar"],
200 },
201 linux_glibc: {
202 jars: ["java/linux_glibc/myjavalib.jar"],
203 },
204 },
205}
Paul Duffine1381882021-04-16 17:05:10 +0100206`),
Paul Duffina04c1072020-03-02 10:16:35 +0000207 checkAllCopyRules(`
208.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
Colin Crossf06d8dc2023-07-18 22:11:07 -0700209.intermediates/myjavalib/linux_glibc_common/javac-header/myjavalib.jar -> java/linux_glibc/myjavalib.jar
Paul Duffina04c1072020-03-02 10:16:35 +0000210`),
211 )
212}
213
Paul Duffina0dbf432019-12-05 11:25:53 +0000214func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000215 result := android.GroupFixturePreparers(
216 prepareForSdkTestWithJava,
217 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000218 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000219 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000220 module_exports {
221 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000222 java_libs: ["myjavalib"],
223 }
224
225 java_library {
226 name: "myjavalib",
227 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100228 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000229 aidl: {
230 export_include_dirs: ["aidl"],
231 },
232 system_modules: "none",
233 sdk_version: "none",
234 compile_dex: true,
235 host_supported: true,
236 }
237 `)
238
Paul Duffin36474d32021-03-12 12:19:43 +0000239 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000240 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100241// This is auto-generated. DO NOT EDIT.
242
243java_import {
244 name: "myjavalib",
245 prefer: false,
246 visibility: ["//visibility:public"],
247 apex_available: ["//apex_available:platform"],
248 jars: ["java/myjavalib.jar"],
249}
250`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000251 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100252.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000253aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
254`),
255 )
256}
257
Paul Duffindb170e42020-12-08 17:48:25 +0000258func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +0000259 result := android.GroupFixturePreparers(
260 prepareForSdkTestWithJava,
261 android.FixtureAddFile("aidl", nil),
262 android.FixtureAddFile("resource.txt", nil),
263 ).RunTestWithBp(t, `
Paul Duffin13648912022-07-15 13:12:35 +0000264 sdk {
265 name: "mysdk",
Paul Duffindb170e42020-12-08 17:48:25 +0000266 java_boot_libs: ["myjavalib"],
267 }
268
269 java_library {
270 name: "myjavalib",
271 srcs: ["Test.java"],
272 java_resources: ["resource.txt"],
273 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
274 // intended to be used for compiling Java, only for accessing the dex implementation jar.
275 aidl: {
276 export_include_dirs: ["aidl"],
277 },
278 system_modules: "none",
279 sdk_version: "none",
280 compile_dex: true,
Paul Duffin869de142021-07-15 14:14:41 +0100281 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000282 }
283 `)
284
Paul Duffin13648912022-07-15 13:12:35 +0000285 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000286 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100287// This is auto-generated. DO NOT EDIT.
288
289java_import {
290 name: "myjavalib",
291 prefer: false,
292 visibility: ["//visibility:public"],
293 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000294 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100295 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100296}
297`),
Paul Duffindb170e42020-12-08 17:48:25 +0000298 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000299.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000300`),
301 )
302}
303
Paul Duffin13648912022-07-15 13:12:35 +0000304func TestSnapshotWithJavaBootLibrary_UpdatableMedia(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000305 runTest := func(t *testing.T, targetBuildRelease, expectedJarPath, expectedCopyRule string) {
Paul Duffin13648912022-07-15 13:12:35 +0000306 result := android.GroupFixturePreparers(
307 prepareForSdkTestWithJava,
308 android.FixtureMergeEnv(map[string]string{
309 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
310 }),
311 ).RunTestWithBp(t, `
312 sdk {
313 name: "mysdk",
314 java_boot_libs: ["updatable-media"],
315 }
316
317 java_library {
318 name: "updatable-media",
319 srcs: ["Test.java"],
320 system_modules: "none",
321 sdk_version: "none",
322 compile_dex: true,
323 permitted_packages: ["pkg.media"],
324 apex_available: ["com.android.media"],
325 }
326 `)
327
328 CheckSnapshot(t, result, "mysdk", "",
329 checkAndroidBpContents(fmt.Sprintf(`
330// This is auto-generated. DO NOT EDIT.
331
332java_import {
333 name: "updatable-media",
334 prefer: false,
335 visibility: ["//visibility:public"],
336 apex_available: ["com.android.media"],
337 jars: ["%s"],
338 permitted_packages: ["pkg.media"],
339}
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000340`, expectedJarPath)),
Paul Duffin13648912022-07-15 13:12:35 +0000341 checkAllCopyRules(expectedCopyRule),
342 )
343 }
344
345 t.Run("updatable-media in S", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000346 runTest(t, "S", "java/updatable-media.jar", `
Paul Duffin13648912022-07-15 13:12:35 +0000347.intermediates/updatable-media/android_common/package-check/updatable-media.jar -> java/updatable-media.jar
348`)
349 })
350
351 t.Run("updatable-media in T", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000352 runTest(t, "Tiramisu", "java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar", `
353.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar
Paul Duffin13648912022-07-15 13:12:35 +0000354`)
355 })
356}
357
Paul Duffinbb638eb2022-11-26 13:36:38 +0000358func TestSnapshotWithJavaLibrary_MinSdkVersion(t *testing.T) {
359 runTest := func(t *testing.T, targetBuildRelease, minSdkVersion, expectedMinSdkVersion string) {
360 result := android.GroupFixturePreparers(
361 prepareForSdkTestWithJava,
362 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
363 variables.Platform_version_active_codenames = []string{"S", "Tiramisu", "Unfinalized"}
364 }),
365 android.FixtureMergeEnv(map[string]string{
366 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
367 }),
368 ).RunTestWithBp(t, fmt.Sprintf(`
369 sdk {
370 name: "mysdk",
371 java_header_libs: ["mylib"],
372 }
373
374 java_library {
375 name: "mylib",
376 srcs: ["Test.java"],
377 system_modules: "none",
378 sdk_version: "none",
379 compile_dex: true,
380 min_sdk_version: "%s",
381 }
382 `, minSdkVersion))
383
384 expectedMinSdkVersionLine := ""
385 if expectedMinSdkVersion != "" {
386 expectedMinSdkVersionLine = fmt.Sprintf(" min_sdk_version: %q,\n", expectedMinSdkVersion)
387 }
388
389 CheckSnapshot(t, result, "mysdk", "",
390 checkAndroidBpContents(fmt.Sprintf(`
391// This is auto-generated. DO NOT EDIT.
392
393java_import {
394 name: "mylib",
395 prefer: false,
396 visibility: ["//visibility:public"],
397 apex_available: ["//apex_available:platform"],
398 jars: ["java/mylib.jar"],
399%s}
400`, expectedMinSdkVersionLine)),
401 )
402 }
403
404 t.Run("min_sdk_version=S in S", func(t *testing.T) {
405 // min_sdk_version was not added to java_import until Tiramisu.
406 runTest(t, "S", "S", "")
407 })
408
409 t.Run("min_sdk_version=S in Tiramisu", func(t *testing.T) {
410 // The canonical form of S is 31.
411 runTest(t, "Tiramisu", "S", "31")
412 })
413
414 t.Run("min_sdk_version=24 in Tiramisu", func(t *testing.T) {
415 // A numerical min_sdk_version is already in canonical form.
416 runTest(t, "Tiramisu", "24", "24")
417 })
418
419 t.Run("min_sdk_version=Unfinalized in latest", func(t *testing.T) {
420 // An unfinalized min_sdk_version has no numeric value yet.
421 runTest(t, "", "Unfinalized", "Unfinalized")
422 })
423}
424
Jiakai Zhangea180332021-09-26 08:58:02 +0000425func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
426 result := android.GroupFixturePreparers(
427 prepareForSdkTestWithJava,
428 android.FixtureAddFile("aidl", nil),
429 android.FixtureAddFile("resource.txt", nil),
430 ).RunTestWithBp(t, `
431 module_exports {
432 name: "myexports",
433 java_systemserver_libs: ["myjavalib"],
434 }
435
436 java_library {
437 name: "myjavalib",
438 srcs: ["Test.java"],
439 java_resources: ["resource.txt"],
440 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
441 // is not intended to be used for compiling Java, only for accessing the dex implementation
442 // jar.
443 aidl: {
444 export_include_dirs: ["aidl"],
445 },
446 system_modules: "none",
447 sdk_version: "none",
448 compile_dex: true,
449 permitted_packages: ["pkg.myjavalib"],
450 }
451 `)
452
453 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000454 checkAndroidBpContents(`
Jiakai Zhangea180332021-09-26 08:58:02 +0000455// This is auto-generated. DO NOT EDIT.
456
457java_import {
458 name: "myjavalib",
459 prefer: false,
460 visibility: ["//visibility:public"],
461 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000462 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Jiakai Zhangea180332021-09-26 08:58:02 +0000463 permitted_packages: ["pkg.myjavalib"],
464}
465`),
Jiakai Zhangea180332021-09-26 08:58:02 +0000466 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000467.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
Jiakai Zhangea180332021-09-26 08:58:02 +0000468`),
469 )
470}
471
Paul Duffina0dbf432019-12-05 11:25:53 +0000472func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000473 result := android.GroupFixturePreparers(
474 prepareForSdkTestWithJava,
475 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
476 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000477 module_exports {
478 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000479 device_supported: false,
480 host_supported: true,
481 java_libs: ["myjavalib"],
482 }
483
484 java_library {
485 name: "myjavalib",
486 device_supported: false,
487 host_supported: true,
488 srcs: ["Test.java"],
489 aidl: {
490 export_include_dirs: ["aidl"],
491 },
492 system_modules: "none",
493 sdk_version: "none",
494 compile_dex: true,
495 }
496 `)
497
Paul Duffin36474d32021-03-12 12:19:43 +0000498 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000499 checkAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000500// This is auto-generated. DO NOT EDIT.
501
502java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100503 name: "myjavalib",
504 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100505 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000506 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000507 device_supported: false,
508 host_supported: true,
509 jars: ["java/myjavalib.jar"],
510}
Paul Duffine1381882021-04-16 17:05:10 +0100511`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000512 checkAllCopyRules(`
513.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
514aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
515`),
516 )
517}
518
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000519func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000520 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000521 module_exports {
522 name: "myexports",
523 java_tests: ["myjavatests"],
524 }
525
526 java_test {
527 name: "myjavatests",
528 srcs: ["Test.java"],
529 system_modules: "none",
530 sdk_version: "none",
531 compile_dex: true,
532 host_supported: true,
533 }
534 `)
535
Paul Duffin36474d32021-03-12 12:19:43 +0000536 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000537 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000538// This is auto-generated. DO NOT EDIT.
539
540java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100541 name: "myjavatests",
542 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100543 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000544 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000545 jars: ["java/myjavatests.jar"],
546 test_config: "java/myjavatests-AndroidTest.xml",
547}
Paul Duffine1381882021-04-16 17:05:10 +0100548`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000549 checkAllCopyRules(`
550.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
551.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
552`),
553 )
554}
555
556func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000557 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000558 module_exports {
559 name: "myexports",
560 device_supported: false,
561 host_supported: true,
562 java_tests: ["myjavatests"],
563 }
564
565 java_test {
566 name: "myjavatests",
567 device_supported: false,
568 host_supported: true,
569 srcs: ["Test.java"],
570 system_modules: "none",
571 sdk_version: "none",
572 compile_dex: true,
573 }
574 `)
575
Paul Duffin36474d32021-03-12 12:19:43 +0000576 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000577 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000578// This is auto-generated. DO NOT EDIT.
579
580java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100581 name: "myjavatests",
582 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100583 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000584 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000585 device_supported: false,
586 host_supported: true,
587 jars: ["java/myjavatests.jar"],
588 test_config: "java/myjavatests-AndroidTest.xml",
589}
Paul Duffine1381882021-04-16 17:05:10 +0100590`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000591 checkAllCopyRules(`
592.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
593.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
594`),
595 )
596}
597
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000598func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin958806b2022-05-16 13:10:47 +0000599 result := android.GroupFixturePreparers(
600 prepareForSdkTestWithJava,
601 java.PrepareForTestWithJavaDefaultModules,
602 java.PrepareForTestWithJavaSdkLibraryFiles,
603 java.FixtureWithPrebuiltApisAndExtensions(map[string][]string{
604 "31": {"myjavalib"},
605 "32": {"myjavalib"},
606 "current": {"myjavalib"},
607 }, map[string][]string{
608 "1": {"myjavalib"},
609 "2": {"myjavalib"},
610 }),
611 ).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000612 sdk {
613 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000614 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100615 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000616 java_system_modules: ["my-system-modules"],
617 }
618
Paul Duffin33028712021-06-22 11:00:07 +0100619 java_sdk_library {
620 name: "myjavalib",
621 apex_available: ["//apex_available:anyapex"],
622 srcs: ["Test.java"],
623 sdk_version: "current",
624 shared_library: false,
625 public: {
626 enabled: true,
627 },
628 }
629
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000630 java_system_modules {
631 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100632 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000633 }
634
635 java_library {
636 name: "system-module",
637 srcs: ["Test.java"],
638 sdk_version: "none",
639 system_modules: "none",
640 }
Paul Duffin72910952020-01-20 18:16:30 +0000641
642 java_library {
643 name: "exported-system-module",
644 srcs: ["Test.java"],
645 sdk_version: "none",
646 system_modules: "none",
647 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000648 `)
649
Paul Duffin36474d32021-03-12 12:19:43 +0000650 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000651 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000652// This is auto-generated. DO NOT EDIT.
653
654java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100655 name: "exported-system-module",
656 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100657 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000658 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000659 jars: ["java/exported-system-module.jar"],
660}
661
662java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100663 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000664 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100665 visibility: ["//visibility:private"],
666 apex_available: ["//apex_available:platform"],
667 jars: ["java/system-module.jar"],
668}
669
Paul Duffin33028712021-06-22 11:00:07 +0100670java_sdk_library_import {
671 name: "myjavalib",
672 prefer: false,
673 visibility: ["//visibility:public"],
674 apex_available: ["//apex_available:anyapex"],
675 shared_library: false,
676 public: {
677 jars: ["sdk_library/public/myjavalib-stubs.jar"],
678 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
679 current_api: "sdk_library/public/myjavalib.txt",
680 removed_api: "sdk_library/public/myjavalib-removed.txt",
681 sdk_version: "current",
682 },
683}
684
Paul Duffine1381882021-04-16 17:05:10 +0100685java_system_modules_import {
686 name: "my-system-modules",
687 prefer: false,
688 visibility: ["//visibility:public"],
689 libs: [
690 "mysdk_system-module",
691 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100692 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100693 ],
694}
695`),
Paul Duffin72910952020-01-20 18:16:30 +0000696 checkAllCopyRules(`
697.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
698.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Jihoon Kang1147b312023-06-08 23:25:57 +0000699.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +0000700.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
701.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin72910952020-01-20 18:16:30 +0000702`),
Paul Duffin958806b2022-05-16 13:10:47 +0000703 checkInfoContents(result.Config, `
Paul Duffinc6ba1822022-05-06 09:38:02 +0000704[
705 {
706 "@type": "sdk",
707 "@name": "mysdk",
708 "java_header_libs": [
709 "exported-system-module",
710 "system-module"
711 ],
712 "java_sdk_libs": [
713 "myjavalib"
714 ],
715 "java_system_modules": [
716 "my-system-modules"
717 ]
718 },
719 {
720 "@type": "java_library",
721 "@name": "exported-system-module"
722 },
723 {
724 "@type": "java_system_modules",
725 "@name": "my-system-modules",
726 "@deps": [
727 "exported-system-module",
728 "system-module"
729 ]
730 },
731 {
732 "@type": "java_sdk_library",
Paul Duffin958806b2022-05-16 13:10:47 +0000733 "@name": "myjavalib",
734 "dist_stem": "myjavalib",
735 "scopes": {
736 "public": {
737 "current_api": "sdk_library/public/myjavalib.txt",
738 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.public.latest/gen/myjavalib.api.public.latest",
739 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.public.latest/gen/myjavalib-removed.api.public.latest",
740 "removed_api": "sdk_library/public/myjavalib-removed.txt"
741 }
742 }
Paul Duffinc6ba1822022-05-06 09:38:02 +0000743 },
744 {
745 "@type": "java_library",
746 "@name": "system-module"
747 }
748]
749`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000750 )
751}
752
753func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000754 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000755 sdk {
756 name: "mysdk",
757 device_supported: false,
758 host_supported: true,
759 java_system_modules: ["my-system-modules"],
760 }
761
762 java_system_modules {
763 name: "my-system-modules",
764 device_supported: false,
765 host_supported: true,
766 libs: ["system-module"],
767 }
768
769 java_library {
770 name: "system-module",
771 device_supported: false,
772 host_supported: true,
773 srcs: ["Test.java"],
774 sdk_version: "none",
775 system_modules: "none",
776 }
777 `)
778
Paul Duffin36474d32021-03-12 12:19:43 +0000779 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000780 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000781// This is auto-generated. DO NOT EDIT.
782
783java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100784 name: "mysdk_system-module",
785 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000786 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000787 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000788 device_supported: false,
789 host_supported: true,
790 jars: ["java/system-module.jar"],
791}
792
Paul Duffine1381882021-04-16 17:05:10 +0100793java_system_modules_import {
794 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000795 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100796 visibility: ["//visibility:public"],
797 device_supported: false,
798 host_supported: true,
799 libs: ["mysdk_system-module"],
800}
801`),
Colin Crossf06d8dc2023-07-18 22:11:07 -0700802 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac-header/system-module.jar -> java/system-module.jar"),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000803 )
804}
Paul Duffin865171e2020-03-02 18:38:15 +0000805
806func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000807 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000808 module_exports {
809 name: "myexports",
810 host_supported: true,
811 java_libs: ["myjavalib"],
812 target: {
813 android: {
814 java_header_libs: ["androidjavalib"],
815 },
816 host: {
817 java_header_libs: ["hostjavalib"],
818 },
819 },
820 }
821
822 java_library {
823 name: "myjavalib",
824 host_supported: true,
825 srcs: ["Test.java"],
826 system_modules: "none",
827 sdk_version: "none",
828 }
829
830 java_library {
831 name: "androidjavalib",
832 srcs: ["Test.java"],
833 system_modules: "none",
834 sdk_version: "none",
835 }
836
837 java_library_host {
838 name: "hostjavalib",
839 srcs: ["Test.java"],
840 }
841 `)
842
Paul Duffin36474d32021-03-12 12:19:43 +0000843 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000844 checkAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000845// This is auto-generated. DO NOT EDIT.
846
847java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100848 name: "hostjavalib",
849 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100850 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000851 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000852 device_supported: false,
853 host_supported: true,
854 jars: ["java/hostjavalib.jar"],
855}
856
857java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100858 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000859 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100860 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000861 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100862 jars: ["java/androidjavalib.jar"],
863}
864
865java_import {
866 name: "myjavalib",
867 prefer: false,
868 visibility: ["//visibility:public"],
869 apex_available: ["//apex_available:platform"],
870 host_supported: true,
871 target: {
872 android: {
873 jars: ["java/android/myjavalib.jar"],
874 },
875 linux_glibc: {
876 jars: ["java/linux_glibc/myjavalib.jar"],
877 },
878 },
879}
880`),
Paul Duffin865171e2020-03-02 18:38:15 +0000881 checkAllCopyRules(`
Colin Crossf06d8dc2023-07-18 22:11:07 -0700882.intermediates/hostjavalib/linux_glibc_common/javac-header/hostjavalib.jar -> java/hostjavalib.jar
Paul Duffin865171e2020-03-02 18:38:15 +0000883.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
884.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
885.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
886`),
887 )
888}
Paul Duffindd46f712020-02-10 13:37:10 +0000889
890func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000891 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +0000892 sdk {
893 name: "mysdk",
894 java_sdk_libs: ["myjavalib"],
895 }
896
897 java_sdk_library {
898 name: "myjavalib",
899 apex_available: ["//apex_available:anyapex"],
900 srcs: ["Test.java"],
901 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100902 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100903 stubs_library_visibility: ["//other"],
904 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +0100905 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000906 }
907 `)
908
Paul Duffin36474d32021-03-12 12:19:43 +0000909 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000910 checkAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +0000911// This is auto-generated. DO NOT EDIT.
912
913java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +0100914 name: "myjavalib",
915 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100916 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000917 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100918 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +0100919 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000920 public: {
921 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000922 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100923 current_api: "sdk_library/public/myjavalib.txt",
924 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000925 sdk_version: "current",
926 },
927 system: {
928 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000929 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100930 current_api: "sdk_library/system/myjavalib.txt",
931 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000932 sdk_version: "system_current",
933 },
934 test: {
935 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000936 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100937 current_api: "sdk_library/test/myjavalib.txt",
938 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000939 sdk_version: "test_current",
940 },
941}
Paul Duffine1381882021-04-16 17:05:10 +0100942`),
Paul Duffindd46f712020-02-10 13:37:10 +0000943 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +0000944.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +0000945.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
946.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Jihoon Kang1147b312023-06-08 23:25:57 +0000947.intermediates/myjavalib.stubs.system/android_common/combined/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +0000948.intermediates/myjavalib.stubs.source.system/android_common/everything/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
949.intermediates/myjavalib.stubs.source.system/android_common/everything/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Jihoon Kang1147b312023-06-08 23:25:57 +0000950.intermediates/myjavalib.stubs.test/android_common/combined/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +0000951.intermediates/myjavalib.stubs.source.test/android_common/everything/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
952.intermediates/myjavalib.stubs.source.test/android_common/everything/myjavalib.stubs.source.test_removed.txt -> sdk_library/test/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +0000953`),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100954 checkMergeZips(
955 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
956 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +0100957 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
958 ),
Paul Duffindd46f712020-02-10 13:37:10 +0000959 )
960}
Paul Duffin3375e352020-04-28 10:44:03 +0100961
Paul Duffine8409952022-09-22 16:24:46 +0100962func TestSnapshotWithJavaSdkLibrary_DistStem(t *testing.T) {
963 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
964 sdk {
965 name: "mysdk",
966 java_sdk_libs: ["myjavalib-foo"],
967 }
968
969 java_sdk_library {
970 name: "myjavalib-foo",
971 apex_available: ["//apex_available:anyapex"],
972 srcs: ["Test.java"],
973 sdk_version: "current",
974 shared_library: false,
975 public: {
976 enabled: true,
977 },
978 dist_stem: "myjavalib",
979 }
980 `)
981
982 CheckSnapshot(t, result, "mysdk", "",
983 checkAndroidBpContents(`
984// This is auto-generated. DO NOT EDIT.
985
986java_sdk_library_import {
987 name: "myjavalib-foo",
988 prefer: false,
989 visibility: ["//visibility:public"],
990 apex_available: ["//apex_available:anyapex"],
991 shared_library: false,
992 public: {
993 jars: ["sdk_library/public/myjavalib-stubs.jar"],
994 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
995 current_api: "sdk_library/public/myjavalib.txt",
996 removed_api: "sdk_library/public/myjavalib-removed.txt",
997 sdk_version: "current",
998 },
999}
1000`),
1001 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001002.intermediates/myjavalib-foo.stubs/android_common/combined/myjavalib-foo.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001003.intermediates/myjavalib-foo.stubs.source/android_common/everything/myjavalib-foo.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1004.intermediates/myjavalib-foo.stubs.source/android_common/everything/myjavalib-foo.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffine8409952022-09-22 16:24:46 +01001005`),
1006 checkMergeZips(
1007 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1008 ),
1009 )
1010}
1011
Paul Duffin22628d52021-05-12 23:13:22 +01001012func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1013 result := android.GroupFixturePreparers(
1014 prepareForSdkTestWithJavaSdkLibrary,
1015 android.FixtureMergeEnv(map[string]string{
1016 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1017 }),
1018 ).RunTestWithBp(t, `
1019 sdk {
1020 name: "mysdk",
1021 java_sdk_libs: ["myjavalib"],
1022 }
1023
1024 java_sdk_library {
1025 name: "myjavalib",
1026 srcs: ["Test.java"],
1027 sdk_version: "current",
1028 shared_library: false,
1029 public: {
1030 enabled: true,
1031 },
1032 }
1033 `)
1034
1035 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001036 checkAndroidBpContents(`
Paul Duffin22628d52021-05-12 23:13:22 +01001037// This is auto-generated. DO NOT EDIT.
1038
1039java_sdk_library_import {
1040 name: "myjavalib",
1041 prefer: false,
1042 visibility: ["//visibility:public"],
1043 apex_available: ["//apex_available:platform"],
1044 shared_library: false,
1045 public: {
1046 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1047 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1048 current_api: "sdk_library/public/myjavalib.txt",
1049 removed_api: "sdk_library/public/myjavalib-removed.txt",
1050 sdk_version: "current",
1051 },
1052}
1053 `),
1054 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001055.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001056.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1057.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1058.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin22628d52021-05-12 23:13:22 +01001059 `),
1060 )
1061}
1062
Anton Hanssond78eb762021-09-21 15:25:12 +01001063func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1064 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1065 sdk {
1066 name: "mysdk",
1067 java_sdk_libs: ["myjavalib"],
1068 }
1069
1070 java_sdk_library {
1071 name: "myjavalib",
1072 srcs: ["Test.java"],
1073 sdk_version: "current",
1074 shared_library: false,
1075 annotations_enabled: true,
1076 public: {
1077 enabled: true,
1078 },
1079 }
1080 `)
1081
1082 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001083 checkAndroidBpContents(`
Anton Hanssond78eb762021-09-21 15:25:12 +01001084// This is auto-generated. DO NOT EDIT.
1085
1086java_sdk_library_import {
1087 name: "myjavalib",
1088 prefer: false,
1089 visibility: ["//visibility:public"],
1090 apex_available: ["//apex_available:platform"],
1091 shared_library: false,
1092 public: {
1093 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1094 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1095 current_api: "sdk_library/public/myjavalib.txt",
1096 removed_api: "sdk_library/public/myjavalib-removed.txt",
1097 annotations: "sdk_library/public/myjavalib_annotations.zip",
1098 sdk_version: "current",
1099 },
1100}
1101 `),
1102 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001103.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001104.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1105.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1106.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
Anton Hanssond78eb762021-09-21 15:25:12 +01001107 `),
1108 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1109 )
1110}
1111
Paul Duffina54016c2022-01-27 16:39:47 +00001112func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
1113 result := android.GroupFixturePreparers(
1114 prepareForSdkTestWithJavaSdkLibrary,
1115 android.FixtureMergeEnv(map[string]string{
1116 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1117 }),
1118 ).RunTestWithBp(t, `
1119 sdk {
1120 name: "mysdk",
1121 java_sdk_libs: ["myjavalib"],
1122 }
1123
1124 java_sdk_library {
1125 name: "myjavalib",
1126 srcs: ["Test.java"],
Paul Duffin1938dba2022-07-26 23:53:00 +00001127 sdk_version: "S",
Paul Duffina54016c2022-01-27 16:39:47 +00001128 shared_library: false,
1129 annotations_enabled: true,
1130 public: {
1131 enabled: true,
1132 },
1133 }
1134 `)
1135
1136 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001137 checkAndroidBpContents(`
Paul Duffina54016c2022-01-27 16:39:47 +00001138// This is auto-generated. DO NOT EDIT.
1139
1140java_sdk_library_import {
1141 name: "myjavalib",
1142 prefer: false,
1143 visibility: ["//visibility:public"],
1144 apex_available: ["//apex_available:platform"],
1145 shared_library: false,
1146 public: {
1147 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1148 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1149 current_api: "sdk_library/public/myjavalib.txt",
1150 removed_api: "sdk_library/public/myjavalib-removed.txt",
1151 sdk_version: "current",
1152 },
1153}
1154 `),
1155 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001156.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001157.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1158.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffina54016c2022-01-27 16:39:47 +00001159 `),
1160 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1161 )
1162}
1163
Paul Duffin1267d872021-04-16 17:21:36 +01001164func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
Jihoon Kangbd093452023-12-26 19:08:01 +00001165 result := android.GroupFixturePreparers(
1166 prepareForSdkTestWithJavaSdkLibrary,
1167 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
1168 variables.BuildFlags = map[string]string{
1169 "RELEASE_HIDDEN_API_EXPORTABLE_STUBS": "true",
1170 }
1171 }),
1172 ).RunTestWithBp(t, `
Paul Duffin1267d872021-04-16 17:21:36 +01001173 sdk {
1174 name: "mysdk",
1175 java_sdk_libs: ["myjavalib"],
1176 }
1177
1178 java_sdk_library {
1179 name: "myjavalib",
1180 srcs: ["Test.java"],
1181 sdk_version: "current",
1182 shared_library: false,
1183 compile_dex: true,
1184 public: {
1185 enabled: true,
1186 },
1187 system: {
1188 enabled: true,
1189 },
1190 }
1191 `)
1192
1193 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001194 checkAndroidBpContents(`
Paul Duffin1267d872021-04-16 17:21:36 +01001195// This is auto-generated. DO NOT EDIT.
1196
1197java_sdk_library_import {
1198 name: "myjavalib",
1199 prefer: false,
1200 visibility: ["//visibility:public"],
1201 apex_available: ["//apex_available:platform"],
1202 shared_library: false,
1203 compile_dex: true,
1204 public: {
1205 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1206 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1207 current_api: "sdk_library/public/myjavalib.txt",
1208 removed_api: "sdk_library/public/myjavalib-removed.txt",
1209 sdk_version: "current",
1210 },
1211 system: {
1212 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1213 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1214 current_api: "sdk_library/system/myjavalib.txt",
1215 removed_api: "sdk_library/system/myjavalib-removed.txt",
1216 sdk_version: "system_current",
1217 },
1218}
1219`),
1220 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1221 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1222 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1223 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Jihoon Kangbd093452023-12-26 19:08:01 +00001224 path := dep.SdkApiExportableStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001225 return path.RelativeToTop().String()
1226 }
1227
1228 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
Jihoon Kangbd093452023-12-26 19:08:01 +00001229 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 +01001230
1231 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
Jihoon Kangbd093452023-12-26 19:08:01 +00001232 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.exportable.system/android_common/dex/myjavalib.stubs.exportable.system.jar"
Paul Duffin1267d872021-04-16 17:21:36 +01001233 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1234
1235 // This should fall back to system as module is not available.
1236 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1237 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1238
Jihoon Kangbd093452023-12-26 19:08:01 +00001239 // Prebuilt dex jar does not come from the exportable stubs.
Paul Duffin1267d872021-04-16 17:21:36 +01001240 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1241 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1242 }),
1243 )
1244}
1245
Paul Duffin780c5f42020-05-12 15:52:55 +01001246func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001247 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001248 sdk {
1249 name: "mysdk",
1250 java_sdk_libs: ["myjavalib"],
1251 }
1252
1253 java_sdk_library {
1254 name: "myjavalib",
1255 srcs: ["Test.java"],
1256 sdk_version: "none",
1257 system_modules: "none",
1258 }
1259 `)
1260
Paul Duffin36474d32021-03-12 12:19:43 +00001261 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001262 checkAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001263// This is auto-generated. DO NOT EDIT.
1264
1265java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001266 name: "myjavalib",
1267 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001268 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001269 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001270 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001271 public: {
1272 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001273 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001274 current_api: "sdk_library/public/myjavalib.txt",
1275 removed_api: "sdk_library/public/myjavalib-removed.txt",
1276 sdk_version: "none",
1277 },
1278}
Paul Duffine1381882021-04-16 17:05:10 +01001279`),
Paul Duffin780c5f42020-05-12 15:52:55 +01001280 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001281.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001282.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1283.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001284`),
1285 checkMergeZips(
1286 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1287 ),
1288 )
1289}
1290
Paul Duffin87a05a32020-05-12 11:50:28 +01001291func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001292 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001293 sdk {
1294 name: "mysdk",
1295 java_sdk_libs: ["myjavalib"],
1296 }
1297
1298 java_sdk_library {
1299 name: "myjavalib",
1300 srcs: ["Test.java"],
1301 sdk_version: "module_current",
1302 public: {
1303 enabled: true,
1304 sdk_version: "module_current",
1305 },
1306 }
1307 `)
1308
Paul Duffin36474d32021-03-12 12:19:43 +00001309 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001310 checkAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001311// This is auto-generated. DO NOT EDIT.
1312
1313java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001314 name: "myjavalib",
1315 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001316 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001317 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001318 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001319 public: {
1320 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001321 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001322 current_api: "sdk_library/public/myjavalib.txt",
1323 removed_api: "sdk_library/public/myjavalib-removed.txt",
1324 sdk_version: "module_current",
1325 },
1326}
Paul Duffine1381882021-04-16 17:05:10 +01001327`),
Paul Duffin87a05a32020-05-12 11:50:28 +01001328 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001329.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001330.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1331.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001332`),
1333 checkMergeZips(
1334 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1335 ),
1336 )
1337}
1338
1339func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001340 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001341 sdk {
1342 name: "mysdk",
1343 java_sdk_libs: ["myjavalib"],
1344 }
1345
1346 java_sdk_library {
1347 name: "myjavalib",
1348 apex_available: ["//apex_available:anyapex"],
1349 srcs: ["Test.java"],
1350 sdk_version: "current",
1351 public: {
1352 enabled: true,
1353 },
1354 system: {
1355 enabled: true,
1356 },
1357 }
1358 `)
1359
Paul Duffin36474d32021-03-12 12:19:43 +00001360 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001361 checkAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001362// This is auto-generated. DO NOT EDIT.
1363
1364java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001365 name: "myjavalib",
1366 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001367 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001368 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001369 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001370 public: {
1371 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001372 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001373 current_api: "sdk_library/public/myjavalib.txt",
1374 removed_api: "sdk_library/public/myjavalib-removed.txt",
1375 sdk_version: "current",
1376 },
1377 system: {
1378 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001379 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001380 current_api: "sdk_library/system/myjavalib.txt",
1381 removed_api: "sdk_library/system/myjavalib-removed.txt",
1382 sdk_version: "system_current",
1383 },
1384}
Paul Duffine1381882021-04-16 17:05:10 +01001385`),
Paul Duffin3375e352020-04-28 10:44:03 +01001386 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001387.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001388.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1389.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Jihoon Kang1147b312023-06-08 23:25:57 +00001390.intermediates/myjavalib.stubs.system/android_common/combined/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001391.intermediates/myjavalib.stubs.source.system/android_common/everything/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1392.intermediates/myjavalib.stubs.source.system/android_common/everything/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001393`),
1394 checkMergeZips(
1395 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1396 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1397 ),
1398 )
1399}
Paul Duffin8f265b92020-04-28 14:13:56 +01001400
1401func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001402 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001403 sdk {
1404 name: "mysdk",
1405 java_sdk_libs: ["myjavalib"],
1406 }
1407
1408 java_sdk_library {
1409 name: "myjavalib",
1410 apex_available: ["//apex_available:anyapex"],
1411 srcs: ["Test.java"],
1412 sdk_version: "current",
1413 public: {
1414 enabled: true,
1415 },
1416 system: {
1417 enabled: true,
1418 },
1419 module_lib: {
1420 enabled: true,
1421 },
1422 }
1423 `)
1424
Paul Duffin36474d32021-03-12 12:19:43 +00001425 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001426 checkAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001427// This is auto-generated. DO NOT EDIT.
1428
1429java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001430 name: "myjavalib",
1431 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001432 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001433 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001434 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001435 public: {
1436 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001437 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001438 current_api: "sdk_library/public/myjavalib.txt",
1439 removed_api: "sdk_library/public/myjavalib-removed.txt",
1440 sdk_version: "current",
1441 },
1442 system: {
1443 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001444 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001445 current_api: "sdk_library/system/myjavalib.txt",
1446 removed_api: "sdk_library/system/myjavalib-removed.txt",
1447 sdk_version: "system_current",
1448 },
1449 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001450 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001451 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001452 current_api: "sdk_library/module-lib/myjavalib.txt",
1453 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001454 sdk_version: "module_current",
1455 },
1456}
Paul Duffine1381882021-04-16 17:05:10 +01001457`),
Paul Duffin8f265b92020-04-28 14:13:56 +01001458 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001459.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001460.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1461.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Jihoon Kang1147b312023-06-08 23:25:57 +00001462.intermediates/myjavalib.stubs.system/android_common/combined/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001463.intermediates/myjavalib.stubs.source.system/android_common/everything/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1464.intermediates/myjavalib.stubs.source.system/android_common/everything/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Jihoon Kang1147b312023-06-08 23:25:57 +00001465.intermediates/myjavalib.stubs.module_lib/android_common/combined/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001466.intermediates/myjavalib.stubs.source.module_lib/android_common/everything/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1467.intermediates/myjavalib.stubs.source.module_lib/android_common/everything/myjavalib.stubs.source.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001468`),
1469 checkMergeZips(
Paul Duffin74f1dcd2022-07-18 13:18:23 +00001470 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001471 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1472 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001473 ),
1474 )
1475}
Paul Duffinf7a64332020-05-13 16:54:55 +01001476
Paul Duffin0c5bae52020-06-02 13:00:08 +01001477func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001478 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001479 sdk {
1480 name: "mysdk",
1481 java_sdk_libs: ["myjavalib"],
1482 }
1483
1484 java_sdk_library {
1485 name: "myjavalib",
1486 apex_available: ["//apex_available:anyapex"],
1487 srcs: ["Test.java"],
1488 sdk_version: "current",
1489 public: {
1490 enabled: true,
1491 },
1492 system_server: {
1493 enabled: true,
1494 },
1495 }
1496 `)
1497
Paul Duffin36474d32021-03-12 12:19:43 +00001498 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001499 checkAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001500// This is auto-generated. DO NOT EDIT.
1501
1502java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001503 name: "myjavalib",
1504 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001505 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001506 apex_available: ["//apex_available:anyapex"],
1507 shared_library: true,
1508 public: {
1509 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001510 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001511 current_api: "sdk_library/public/myjavalib.txt",
1512 removed_api: "sdk_library/public/myjavalib-removed.txt",
1513 sdk_version: "current",
1514 },
1515 system_server: {
1516 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001517 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001518 current_api: "sdk_library/system-server/myjavalib.txt",
1519 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1520 sdk_version: "system_server_current",
1521 },
1522}
Paul Duffine1381882021-04-16 17:05:10 +01001523`),
Paul Duffin0c5bae52020-06-02 13:00:08 +01001524 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001525.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001526.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1527.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Jihoon Kang1147b312023-06-08 23:25:57 +00001528.intermediates/myjavalib.stubs.system_server/android_common/combined/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001529.intermediates/myjavalib.stubs.source.system_server/android_common/everything/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1530.intermediates/myjavalib.stubs.source.system_server/android_common/everything/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
Paul Duffin0c5bae52020-06-02 13:00:08 +01001531`),
1532 checkMergeZips(
1533 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1534 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1535 ),
1536 )
1537}
1538
Paul Duffinf7a64332020-05-13 16:54:55 +01001539func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001540 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001541 sdk {
1542 name: "mysdk",
1543 java_sdk_libs: ["myjavalib"],
1544 }
1545
1546 java_sdk_library {
1547 name: "myjavalib",
1548 apex_available: ["//apex_available:anyapex"],
1549 srcs: ["Test.java"],
1550 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001551 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001552 public: {
1553 enabled: true,
1554 },
1555 }
1556 `)
1557
Paul Duffin36474d32021-03-12 12:19:43 +00001558 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001559 checkAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001560// This is auto-generated. DO NOT EDIT.
1561
1562java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001563 name: "myjavalib",
1564 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001565 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001566 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001567 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001568 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001569 public: {
1570 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001571 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001572 current_api: "sdk_library/public/myjavalib.txt",
1573 removed_api: "sdk_library/public/myjavalib-removed.txt",
1574 sdk_version: "current",
1575 },
1576}
Paul Duffine1381882021-04-16 17:05:10 +01001577`),
Paul Duffinf7a64332020-05-13 16:54:55 +01001578 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001579.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001580.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1581.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001582`),
1583 checkMergeZips(
1584 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1585 ),
1586 )
1587}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001588
1589func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001590 result := android.GroupFixturePreparers(
1591 prepareForSdkTestWithJavaSdkLibrary,
1592 android.FixtureAddFile("docs/known_doctags", nil),
1593 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001594 sdk {
1595 name: "mysdk",
1596 java_sdk_libs: ["myjavalib"],
1597 }
1598
1599 java_sdk_library {
1600 name: "myjavalib",
1601 srcs: ["Test.java"],
1602 sdk_version: "current",
1603 public: {
1604 enabled: true,
1605 },
1606 doctag_files: ["docs/known_doctags"],
1607 }
1608
1609 filegroup {
1610 name: "mygroup",
1611 srcs: [":myjavalib{.doctags}"],
1612 }
1613 `)
1614
Paul Duffin36474d32021-03-12 12:19:43 +00001615 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001616 checkAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001617// This is auto-generated. DO NOT EDIT.
1618
1619java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001620 name: "myjavalib",
1621 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001622 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001623 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001624 shared_library: true,
1625 doctag_files: ["doctags/docs/known_doctags"],
1626 public: {
1627 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001628 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001629 current_api: "sdk_library/public/myjavalib.txt",
1630 removed_api: "sdk_library/public/myjavalib-removed.txt",
1631 sdk_version: "current",
1632 },
1633}
Paul Duffine1381882021-04-16 17:05:10 +01001634`),
Paul Duffina2ae7e02020-09-11 11:55:00 +01001635 checkAllCopyRules(`
Jihoon Kang1147b312023-06-08 23:25:57 +00001636.intermediates/myjavalib.stubs/android_common/combined/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Jihoon Kang3c89f042023-12-19 02:40:22 +00001637.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1638.intermediates/myjavalib.stubs.source/android_common/everything/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffina2ae7e02020-09-11 11:55:00 +01001639docs/known_doctags -> doctags/docs/known_doctags
1640`),
1641 )
1642}