blob: 3a2ecc00cc5508c8a6f8a2bbde7450650b9d2c87 [file] [log] [blame]
Paul Duffina80fdec2019-12-03 15:25:00 +00001// Copyright (C) 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package sdk
16
17import (
Paul Duffin13648912022-07-15 13:12:35 +000018 "fmt"
Paul Duffina80fdec2019-12-03 15:25:00 +000019 "testing"
Paul Duffincee7e662020-07-09 17:32:57 +010020
Paul Duffin4a2a29c2021-03-09 22:27:13 +000021 "android/soong/android"
Paul Duffincee7e662020-07-09 17:32:57 +010022 "android/soong/java"
Paul Duffina80fdec2019-12-03 15:25:00 +000023)
24
Paul Duffind14cbc12021-03-18 09:14:23 +000025var prepareForSdkTestWithJava = android.GroupFixturePreparers(
26 java.PrepareForTestWithJavaBuildComponents,
27 PrepareForTestWithSdkBuildComponents,
Paul Duffindb462dd2021-03-21 22:01:55 +000028
29 // Ensure that all source paths are provided. This helps ensure that the snapshot generation is
30 // consistent and all files referenced from the snapshot's Android.bp file have actually been
31 // copied into the snapshot.
32 android.PrepareForTestDisallowNonExistentPaths,
33
34 // Files needs by most of the tests.
35 android.MockFS{
Jiakai Zhang9c4dc192023-02-09 00:09:24 +080036 "Test.java": nil,
37 "art-profile": nil,
Paul Duffindb462dd2021-03-21 22:01:55 +000038 }.AddToFixture(),
Paul Duffind14cbc12021-03-18 09:14:23 +000039)
40
Paul Duffin9ec86b12021-03-15 11:17:52 +000041var prepareForSdkTestWithJavaSdkLibrary = android.GroupFixturePreparers(
42 prepareForSdkTestWithJava,
43 java.PrepareForTestWithJavaDefaultModules,
44 java.PrepareForTestWithJavaSdkLibraryFiles,
45 java.FixtureWithLastReleaseApis("myjavalib"),
46)
47
Paul Duffina80fdec2019-12-03 15:25:00 +000048// Contains tests for SDK members provided by the java package.
49
Paul Duffincee7e662020-07-09 17:32:57 +010050func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000051 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +010052 sdk {
53 name: "mysdk",
54 java_header_libs: ["sdkmember"],
55 }
56
57 java_library {
58 name: "sdkmember",
59 srcs: ["Test.java"],
60 system_modules: "none",
61 sdk_version: "none",
62 }
Paul Duffincee7e662020-07-09 17:32:57 +010063 `)
64
65 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin1822a0a2021-03-21 12:56:33 +000066 sdkChecker := func(t *testing.T, result *android.TestResult) {
67 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
68 }
Paul Duffincee7e662020-07-09 17:32:57 +010069
Paul Duffin36474d32021-03-12 12:19:43 +000070 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin1822a0a2021-03-21 12:56:33 +000071 snapshotTestChecker(checkSnapshotWithSourcePreferred, sdkChecker),
72 snapshotTestChecker(checkSnapshotPreferredWithSource, sdkChecker),
73 )
Paul Duffincee7e662020-07-09 17:32:57 +010074}
75
Paul Duffina0dbf432019-12-05 11:25:53 +000076func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000077 result := android.GroupFixturePreparers(
78 prepareForSdkTestWithJava,
79 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
80 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +000081 sdk {
82 name: "mysdk",
83 java_header_libs: ["myjavalib"],
84 }
85
86 java_library {
87 name: "myjavalib",
88 srcs: ["Test.java"],
89 aidl: {
90 export_include_dirs: ["aidl"],
91 },
92 system_modules: "none",
93 sdk_version: "none",
94 compile_dex: true,
95 host_supported: true,
Paul Duffin869de142021-07-15 14:14:41 +010096 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +000097 }
98 `)
99
Paul Duffin36474d32021-03-12 12:19:43 +0000100 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000101 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100102// This is auto-generated. DO NOT EDIT.
103
104java_import {
105 name: "myjavalib",
106 prefer: false,
107 visibility: ["//visibility:public"],
108 apex_available: ["//apex_available:platform"],
109 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100110 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100111}
112`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000113 checkAllCopyRules(`
114.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
115aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
116`),
117 )
118}
119
120func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000121 result := android.GroupFixturePreparers(
122 prepareForSdkTestWithJava,
123 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
124 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000125 sdk {
126 name: "mysdk",
127 device_supported: false,
128 host_supported: true,
129 java_header_libs: ["myjavalib"],
130 }
131
132 java_library {
133 name: "myjavalib",
134 device_supported: false,
135 host_supported: true,
136 srcs: ["Test.java"],
137 aidl: {
138 export_include_dirs: ["aidl"],
139 },
140 system_modules: "none",
141 sdk_version: "none",
142 compile_dex: true,
143 }
144 `)
145
Paul Duffin36474d32021-03-12 12:19:43 +0000146 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000147 checkAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000148// This is auto-generated. DO NOT EDIT.
149
150java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100151 name: "myjavalib",
152 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100153 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000154 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000155 device_supported: false,
156 host_supported: true,
157 jars: ["java/myjavalib.jar"],
158}
Paul Duffine1381882021-04-16 17:05:10 +0100159`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000160 checkAllCopyRules(`
161.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
162aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
163`),
164 )
165}
166
Paul Duffina04c1072020-03-02 10:16:35 +0000167func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000168 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000169 sdk {
170 name: "mysdk",
171 host_supported: true,
172 java_header_libs: ["myjavalib"],
173 }
174
175 java_library {
176 name: "myjavalib",
177 host_supported: true,
178 srcs: ["Test.java"],
179 system_modules: "none",
180 sdk_version: "none",
181 compile_dex: true,
182 }
183 `)
184
Paul Duffin36474d32021-03-12 12:19:43 +0000185 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000186 checkAndroidBpContents(`
Paul Duffina04c1072020-03-02 10:16:35 +0000187// This is auto-generated. DO NOT EDIT.
188
189java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100190 name: "myjavalib",
191 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100192 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000193 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000194 host_supported: true,
195 target: {
196 android: {
197 jars: ["java/android/myjavalib.jar"],
198 },
199 linux_glibc: {
200 jars: ["java/linux_glibc/myjavalib.jar"],
201 },
202 },
203}
Paul Duffine1381882021-04-16 17:05:10 +0100204`),
Paul Duffina04c1072020-03-02 10:16:35 +0000205 checkAllCopyRules(`
206.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
207.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
208`),
209 )
210}
211
Paul Duffina0dbf432019-12-05 11:25:53 +0000212func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000213 result := android.GroupFixturePreparers(
214 prepareForSdkTestWithJava,
215 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000216 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000217 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000218 module_exports {
219 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000220 java_libs: ["myjavalib"],
221 }
222
223 java_library {
224 name: "myjavalib",
225 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100226 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000227 aidl: {
228 export_include_dirs: ["aidl"],
229 },
230 system_modules: "none",
231 sdk_version: "none",
232 compile_dex: true,
233 host_supported: true,
234 }
235 `)
236
Paul Duffin36474d32021-03-12 12:19:43 +0000237 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000238 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100239// This is auto-generated. DO NOT EDIT.
240
241java_import {
242 name: "myjavalib",
243 prefer: false,
244 visibility: ["//visibility:public"],
245 apex_available: ["//apex_available:platform"],
246 jars: ["java/myjavalib.jar"],
247}
248`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000249 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100250.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000251aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
252`),
253 )
254}
255
Paul Duffindb170e42020-12-08 17:48:25 +0000256func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +0000257 result := android.GroupFixturePreparers(
258 prepareForSdkTestWithJava,
259 android.FixtureAddFile("aidl", nil),
260 android.FixtureAddFile("resource.txt", nil),
261 ).RunTestWithBp(t, `
Paul Duffin13648912022-07-15 13:12:35 +0000262 sdk {
263 name: "mysdk",
Paul Duffindb170e42020-12-08 17:48:25 +0000264 java_boot_libs: ["myjavalib"],
265 }
266
267 java_library {
268 name: "myjavalib",
269 srcs: ["Test.java"],
270 java_resources: ["resource.txt"],
271 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
272 // intended to be used for compiling Java, only for accessing the dex implementation jar.
273 aidl: {
274 export_include_dirs: ["aidl"],
275 },
276 system_modules: "none",
277 sdk_version: "none",
278 compile_dex: true,
Paul Duffin869de142021-07-15 14:14:41 +0100279 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000280 }
281 `)
282
Paul Duffin13648912022-07-15 13:12:35 +0000283 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000284 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100285// This is auto-generated. DO NOT EDIT.
286
287java_import {
288 name: "myjavalib",
289 prefer: false,
290 visibility: ["//visibility:public"],
291 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000292 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100293 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100294}
295`),
Paul Duffindb170e42020-12-08 17:48:25 +0000296 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000297.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000298`),
299 )
300}
301
Paul Duffin13648912022-07-15 13:12:35 +0000302func TestSnapshotWithJavaBootLibrary_UpdatableMedia(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000303 runTest := func(t *testing.T, targetBuildRelease, expectedJarPath, expectedCopyRule string) {
Paul Duffin13648912022-07-15 13:12:35 +0000304 result := android.GroupFixturePreparers(
305 prepareForSdkTestWithJava,
306 android.FixtureMergeEnv(map[string]string{
307 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
308 }),
309 ).RunTestWithBp(t, `
310 sdk {
311 name: "mysdk",
312 java_boot_libs: ["updatable-media"],
313 }
314
315 java_library {
316 name: "updatable-media",
317 srcs: ["Test.java"],
318 system_modules: "none",
319 sdk_version: "none",
320 compile_dex: true,
321 permitted_packages: ["pkg.media"],
322 apex_available: ["com.android.media"],
323 }
324 `)
325
326 CheckSnapshot(t, result, "mysdk", "",
327 checkAndroidBpContents(fmt.Sprintf(`
328// This is auto-generated. DO NOT EDIT.
329
330java_import {
331 name: "updatable-media",
332 prefer: false,
333 visibility: ["//visibility:public"],
334 apex_available: ["com.android.media"],
335 jars: ["%s"],
336 permitted_packages: ["pkg.media"],
337}
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000338`, expectedJarPath)),
Paul Duffin13648912022-07-15 13:12:35 +0000339 checkAllCopyRules(expectedCopyRule),
340 )
341 }
342
343 t.Run("updatable-media in S", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000344 runTest(t, "S", "java/updatable-media.jar", `
Paul Duffin13648912022-07-15 13:12:35 +0000345.intermediates/updatable-media/android_common/package-check/updatable-media.jar -> java/updatable-media.jar
346`)
347 })
348
349 t.Run("updatable-media in T", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000350 runTest(t, "Tiramisu", "java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar", `
351.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar
Paul Duffin13648912022-07-15 13:12:35 +0000352`)
353 })
354}
355
Paul Duffinbb638eb2022-11-26 13:36:38 +0000356func TestSnapshotWithJavaLibrary_MinSdkVersion(t *testing.T) {
357 runTest := func(t *testing.T, targetBuildRelease, minSdkVersion, expectedMinSdkVersion string) {
358 result := android.GroupFixturePreparers(
359 prepareForSdkTestWithJava,
360 android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
361 variables.Platform_version_active_codenames = []string{"S", "Tiramisu", "Unfinalized"}
362 }),
363 android.FixtureMergeEnv(map[string]string{
364 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
365 }),
366 ).RunTestWithBp(t, fmt.Sprintf(`
367 sdk {
368 name: "mysdk",
369 java_header_libs: ["mylib"],
370 }
371
372 java_library {
373 name: "mylib",
374 srcs: ["Test.java"],
375 system_modules: "none",
376 sdk_version: "none",
377 compile_dex: true,
378 min_sdk_version: "%s",
379 }
380 `, minSdkVersion))
381
382 expectedMinSdkVersionLine := ""
383 if expectedMinSdkVersion != "" {
384 expectedMinSdkVersionLine = fmt.Sprintf(" min_sdk_version: %q,\n", expectedMinSdkVersion)
385 }
386
387 CheckSnapshot(t, result, "mysdk", "",
388 checkAndroidBpContents(fmt.Sprintf(`
389// This is auto-generated. DO NOT EDIT.
390
391java_import {
392 name: "mylib",
393 prefer: false,
394 visibility: ["//visibility:public"],
395 apex_available: ["//apex_available:platform"],
396 jars: ["java/mylib.jar"],
397%s}
398`, expectedMinSdkVersionLine)),
399 )
400 }
401
402 t.Run("min_sdk_version=S in S", func(t *testing.T) {
403 // min_sdk_version was not added to java_import until Tiramisu.
404 runTest(t, "S", "S", "")
405 })
406
407 t.Run("min_sdk_version=S in Tiramisu", func(t *testing.T) {
408 // The canonical form of S is 31.
409 runTest(t, "Tiramisu", "S", "31")
410 })
411
412 t.Run("min_sdk_version=24 in Tiramisu", func(t *testing.T) {
413 // A numerical min_sdk_version is already in canonical form.
414 runTest(t, "Tiramisu", "24", "24")
415 })
416
417 t.Run("min_sdk_version=Unfinalized in latest", func(t *testing.T) {
418 // An unfinalized min_sdk_version has no numeric value yet.
419 runTest(t, "", "Unfinalized", "Unfinalized")
420 })
421}
422
Jiakai Zhangea180332021-09-26 08:58:02 +0000423func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
424 result := android.GroupFixturePreparers(
425 prepareForSdkTestWithJava,
426 android.FixtureAddFile("aidl", nil),
427 android.FixtureAddFile("resource.txt", nil),
428 ).RunTestWithBp(t, `
429 module_exports {
430 name: "myexports",
431 java_systemserver_libs: ["myjavalib"],
432 }
433
434 java_library {
435 name: "myjavalib",
436 srcs: ["Test.java"],
437 java_resources: ["resource.txt"],
438 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
439 // is not intended to be used for compiling Java, only for accessing the dex implementation
440 // jar.
441 aidl: {
442 export_include_dirs: ["aidl"],
443 },
444 system_modules: "none",
445 sdk_version: "none",
446 compile_dex: true,
447 permitted_packages: ["pkg.myjavalib"],
448 }
449 `)
450
451 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000452 checkAndroidBpContents(`
Jiakai Zhangea180332021-09-26 08:58:02 +0000453// This is auto-generated. DO NOT EDIT.
454
455java_import {
456 name: "myjavalib",
457 prefer: false,
458 visibility: ["//visibility:public"],
459 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000460 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Jiakai Zhangea180332021-09-26 08:58:02 +0000461 permitted_packages: ["pkg.myjavalib"],
462}
463`),
Jiakai Zhangea180332021-09-26 08:58:02 +0000464 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000465.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
Jiakai Zhangea180332021-09-26 08:58:02 +0000466`),
467 )
468}
469
Paul Duffina0dbf432019-12-05 11:25:53 +0000470func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000471 result := android.GroupFixturePreparers(
472 prepareForSdkTestWithJava,
473 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
474 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000475 module_exports {
476 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000477 device_supported: false,
478 host_supported: true,
479 java_libs: ["myjavalib"],
480 }
481
482 java_library {
483 name: "myjavalib",
484 device_supported: false,
485 host_supported: true,
486 srcs: ["Test.java"],
487 aidl: {
488 export_include_dirs: ["aidl"],
489 },
490 system_modules: "none",
491 sdk_version: "none",
492 compile_dex: true,
493 }
494 `)
495
Paul Duffin36474d32021-03-12 12:19:43 +0000496 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000497 checkAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000498// This is auto-generated. DO NOT EDIT.
499
500java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100501 name: "myjavalib",
502 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100503 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000504 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000505 device_supported: false,
506 host_supported: true,
507 jars: ["java/myjavalib.jar"],
508}
Paul Duffine1381882021-04-16 17:05:10 +0100509`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000510 checkAllCopyRules(`
511.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
512aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
513`),
514 )
515}
516
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000517func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000518 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000519 module_exports {
520 name: "myexports",
521 java_tests: ["myjavatests"],
522 }
523
524 java_test {
525 name: "myjavatests",
526 srcs: ["Test.java"],
527 system_modules: "none",
528 sdk_version: "none",
529 compile_dex: true,
530 host_supported: true,
531 }
532 `)
533
Paul Duffin36474d32021-03-12 12:19:43 +0000534 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000535 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000536// This is auto-generated. DO NOT EDIT.
537
538java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100539 name: "myjavatests",
540 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100541 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000542 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000543 jars: ["java/myjavatests.jar"],
544 test_config: "java/myjavatests-AndroidTest.xml",
545}
Paul Duffine1381882021-04-16 17:05:10 +0100546`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000547 checkAllCopyRules(`
548.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
549.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
550`),
551 )
552}
553
554func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000555 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000556 module_exports {
557 name: "myexports",
558 device_supported: false,
559 host_supported: true,
560 java_tests: ["myjavatests"],
561 }
562
563 java_test {
564 name: "myjavatests",
565 device_supported: false,
566 host_supported: true,
567 srcs: ["Test.java"],
568 system_modules: "none",
569 sdk_version: "none",
570 compile_dex: true,
571 }
572 `)
573
Paul Duffin36474d32021-03-12 12:19:43 +0000574 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000575 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000576// This is auto-generated. DO NOT EDIT.
577
578java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100579 name: "myjavatests",
580 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100581 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000582 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000583 device_supported: false,
584 host_supported: true,
585 jars: ["java/myjavatests.jar"],
586 test_config: "java/myjavatests-AndroidTest.xml",
587}
Paul Duffine1381882021-04-16 17:05:10 +0100588`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000589 checkAllCopyRules(`
590.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
591.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
592`),
593 )
594}
595
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000596func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin958806b2022-05-16 13:10:47 +0000597 result := android.GroupFixturePreparers(
598 prepareForSdkTestWithJava,
599 java.PrepareForTestWithJavaDefaultModules,
600 java.PrepareForTestWithJavaSdkLibraryFiles,
601 java.FixtureWithPrebuiltApisAndExtensions(map[string][]string{
602 "31": {"myjavalib"},
603 "32": {"myjavalib"},
604 "current": {"myjavalib"},
605 }, map[string][]string{
606 "1": {"myjavalib"},
607 "2": {"myjavalib"},
608 }),
609 ).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000610 sdk {
611 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000612 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100613 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000614 java_system_modules: ["my-system-modules"],
615 }
616
Paul Duffin33028712021-06-22 11:00:07 +0100617 java_sdk_library {
618 name: "myjavalib",
619 apex_available: ["//apex_available:anyapex"],
620 srcs: ["Test.java"],
621 sdk_version: "current",
622 shared_library: false,
623 public: {
624 enabled: true,
625 },
626 }
627
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000628 java_system_modules {
629 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100630 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000631 }
632
633 java_library {
634 name: "system-module",
635 srcs: ["Test.java"],
636 sdk_version: "none",
637 system_modules: "none",
638 }
Paul Duffin72910952020-01-20 18:16:30 +0000639
640 java_library {
641 name: "exported-system-module",
642 srcs: ["Test.java"],
643 sdk_version: "none",
644 system_modules: "none",
645 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000646 `)
647
Paul Duffin36474d32021-03-12 12:19:43 +0000648 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000649 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000650// This is auto-generated. DO NOT EDIT.
651
652java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100653 name: "exported-system-module",
654 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100655 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000656 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000657 jars: ["java/exported-system-module.jar"],
658}
659
660java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100661 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000662 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100663 visibility: ["//visibility:private"],
664 apex_available: ["//apex_available:platform"],
665 jars: ["java/system-module.jar"],
666}
667
Paul Duffin33028712021-06-22 11:00:07 +0100668java_sdk_library_import {
669 name: "myjavalib",
670 prefer: false,
671 visibility: ["//visibility:public"],
672 apex_available: ["//apex_available:anyapex"],
673 shared_library: false,
674 public: {
675 jars: ["sdk_library/public/myjavalib-stubs.jar"],
676 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
677 current_api: "sdk_library/public/myjavalib.txt",
678 removed_api: "sdk_library/public/myjavalib-removed.txt",
679 sdk_version: "current",
680 },
681}
682
Paul Duffine1381882021-04-16 17:05:10 +0100683java_system_modules_import {
684 name: "my-system-modules",
685 prefer: false,
686 visibility: ["//visibility:public"],
687 libs: [
688 "mysdk_system-module",
689 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100690 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100691 ],
692}
693`),
Paul Duffin72910952020-01-20 18:16:30 +0000694 checkAllCopyRules(`
695.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
696.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100697.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
698.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
699.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin72910952020-01-20 18:16:30 +0000700`),
Paul Duffin958806b2022-05-16 13:10:47 +0000701 checkInfoContents(result.Config, `
Paul Duffinc6ba1822022-05-06 09:38:02 +0000702[
703 {
704 "@type": "sdk",
705 "@name": "mysdk",
706 "java_header_libs": [
707 "exported-system-module",
708 "system-module"
709 ],
710 "java_sdk_libs": [
711 "myjavalib"
712 ],
713 "java_system_modules": [
714 "my-system-modules"
715 ]
716 },
717 {
718 "@type": "java_library",
719 "@name": "exported-system-module"
720 },
721 {
722 "@type": "java_system_modules",
723 "@name": "my-system-modules",
724 "@deps": [
725 "exported-system-module",
726 "system-module"
727 ]
728 },
729 {
730 "@type": "java_sdk_library",
Paul Duffin958806b2022-05-16 13:10:47 +0000731 "@name": "myjavalib",
732 "dist_stem": "myjavalib",
733 "scopes": {
734 "public": {
735 "current_api": "sdk_library/public/myjavalib.txt",
736 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.public.latest/gen/myjavalib.api.public.latest",
737 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.public.latest/gen/myjavalib-removed.api.public.latest",
738 "removed_api": "sdk_library/public/myjavalib-removed.txt"
739 }
740 }
Paul Duffinc6ba1822022-05-06 09:38:02 +0000741 },
742 {
743 "@type": "java_library",
744 "@name": "system-module"
745 }
746]
747`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000748 )
749}
750
751func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000752 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000753 sdk {
754 name: "mysdk",
755 device_supported: false,
756 host_supported: true,
757 java_system_modules: ["my-system-modules"],
758 }
759
760 java_system_modules {
761 name: "my-system-modules",
762 device_supported: false,
763 host_supported: true,
764 libs: ["system-module"],
765 }
766
767 java_library {
768 name: "system-module",
769 device_supported: false,
770 host_supported: true,
771 srcs: ["Test.java"],
772 sdk_version: "none",
773 system_modules: "none",
774 }
775 `)
776
Paul Duffin36474d32021-03-12 12:19:43 +0000777 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000778 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000779// This is auto-generated. DO NOT EDIT.
780
781java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100782 name: "mysdk_system-module",
783 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000784 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000785 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000786 device_supported: false,
787 host_supported: true,
788 jars: ["java/system-module.jar"],
789}
790
Paul Duffine1381882021-04-16 17:05:10 +0100791java_system_modules_import {
792 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000793 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100794 visibility: ["//visibility:public"],
795 device_supported: false,
796 host_supported: true,
797 libs: ["mysdk_system-module"],
798}
799`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000800 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
801 )
802}
Paul Duffin865171e2020-03-02 18:38:15 +0000803
804func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000805 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000806 module_exports {
807 name: "myexports",
808 host_supported: true,
809 java_libs: ["myjavalib"],
810 target: {
811 android: {
812 java_header_libs: ["androidjavalib"],
813 },
814 host: {
815 java_header_libs: ["hostjavalib"],
816 },
817 },
818 }
819
820 java_library {
821 name: "myjavalib",
822 host_supported: true,
823 srcs: ["Test.java"],
824 system_modules: "none",
825 sdk_version: "none",
826 }
827
828 java_library {
829 name: "androidjavalib",
830 srcs: ["Test.java"],
831 system_modules: "none",
832 sdk_version: "none",
833 }
834
835 java_library_host {
836 name: "hostjavalib",
837 srcs: ["Test.java"],
838 }
839 `)
840
Paul Duffin36474d32021-03-12 12:19:43 +0000841 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000842 checkAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000843// This is auto-generated. DO NOT EDIT.
844
845java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100846 name: "hostjavalib",
847 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100848 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000849 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000850 device_supported: false,
851 host_supported: true,
852 jars: ["java/hostjavalib.jar"],
853}
854
855java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100856 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000857 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100858 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000859 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100860 jars: ["java/androidjavalib.jar"],
861}
862
863java_import {
864 name: "myjavalib",
865 prefer: false,
866 visibility: ["//visibility:public"],
867 apex_available: ["//apex_available:platform"],
868 host_supported: true,
869 target: {
870 android: {
871 jars: ["java/android/myjavalib.jar"],
872 },
873 linux_glibc: {
874 jars: ["java/linux_glibc/myjavalib.jar"],
875 },
876 },
877}
878`),
Paul Duffin865171e2020-03-02 18:38:15 +0000879 checkAllCopyRules(`
880.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
881.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
882.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
883.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
884`),
885 )
886}
Paul Duffindd46f712020-02-10 13:37:10 +0000887
888func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000889 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +0000890 sdk {
891 name: "mysdk",
892 java_sdk_libs: ["myjavalib"],
893 }
894
895 java_sdk_library {
896 name: "myjavalib",
897 apex_available: ["//apex_available:anyapex"],
898 srcs: ["Test.java"],
899 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100900 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100901 stubs_library_visibility: ["//other"],
902 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +0100903 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000904 }
905 `)
906
Paul Duffin36474d32021-03-12 12:19:43 +0000907 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000908 checkAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +0000909// This is auto-generated. DO NOT EDIT.
910
911java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +0100912 name: "myjavalib",
913 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100914 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000915 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100916 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +0100917 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000918 public: {
919 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000920 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100921 current_api: "sdk_library/public/myjavalib.txt",
922 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000923 sdk_version: "current",
924 },
925 system: {
926 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000927 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100928 current_api: "sdk_library/system/myjavalib.txt",
929 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000930 sdk_version: "system_current",
931 },
932 test: {
933 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000934 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100935 current_api: "sdk_library/test/myjavalib.txt",
936 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000937 sdk_version: "test_current",
938 },
939}
Paul Duffine1381882021-04-16 17:05:10 +0100940`),
Paul Duffindd46f712020-02-10 13:37:10 +0000941 checkAllCopyRules(`
942.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700943.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
944.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +0000945.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700946.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
947.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +0000948.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700949.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
950.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_removed.txt -> sdk_library/test/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +0000951`),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100952 checkMergeZips(
953 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
954 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +0100955 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
956 ),
Paul Duffindd46f712020-02-10 13:37:10 +0000957 )
958}
Paul Duffin3375e352020-04-28 10:44:03 +0100959
Paul Duffine8409952022-09-22 16:24:46 +0100960func TestSnapshotWithJavaSdkLibrary_DistStem(t *testing.T) {
961 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
962 sdk {
963 name: "mysdk",
964 java_sdk_libs: ["myjavalib-foo"],
965 }
966
967 java_sdk_library {
968 name: "myjavalib-foo",
969 apex_available: ["//apex_available:anyapex"],
970 srcs: ["Test.java"],
971 sdk_version: "current",
972 shared_library: false,
973 public: {
974 enabled: true,
975 },
976 dist_stem: "myjavalib",
977 }
978 `)
979
980 CheckSnapshot(t, result, "mysdk", "",
981 checkAndroidBpContents(`
982// This is auto-generated. DO NOT EDIT.
983
984java_sdk_library_import {
985 name: "myjavalib-foo",
986 prefer: false,
987 visibility: ["//visibility:public"],
988 apex_available: ["//apex_available:anyapex"],
989 shared_library: false,
990 public: {
991 jars: ["sdk_library/public/myjavalib-stubs.jar"],
992 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
993 current_api: "sdk_library/public/myjavalib.txt",
994 removed_api: "sdk_library/public/myjavalib-removed.txt",
995 sdk_version: "current",
996 },
997}
998`),
999 checkAllCopyRules(`
1000.intermediates/myjavalib-foo.stubs/android_common/javac/myjavalib-foo.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1001.intermediates/myjavalib-foo.stubs.source/android_common/metalava/myjavalib-foo.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1002.intermediates/myjavalib-foo.stubs.source/android_common/metalava/myjavalib-foo.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1003`),
1004 checkMergeZips(
1005 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1006 ),
1007 )
1008}
1009
Paul Duffin22628d52021-05-12 23:13:22 +01001010func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1011 result := android.GroupFixturePreparers(
1012 prepareForSdkTestWithJavaSdkLibrary,
1013 android.FixtureMergeEnv(map[string]string{
1014 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1015 }),
1016 ).RunTestWithBp(t, `
1017 sdk {
1018 name: "mysdk",
1019 java_sdk_libs: ["myjavalib"],
1020 }
1021
1022 java_sdk_library {
1023 name: "myjavalib",
1024 srcs: ["Test.java"],
1025 sdk_version: "current",
1026 shared_library: false,
1027 public: {
1028 enabled: true,
1029 },
1030 }
1031 `)
1032
1033 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001034 checkAndroidBpContents(`
Paul Duffin22628d52021-05-12 23:13:22 +01001035// This is auto-generated. DO NOT EDIT.
1036
1037java_sdk_library_import {
1038 name: "myjavalib",
1039 prefer: false,
1040 visibility: ["//visibility:public"],
1041 apex_available: ["//apex_available:platform"],
1042 shared_library: false,
1043 public: {
1044 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1045 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1046 current_api: "sdk_library/public/myjavalib.txt",
1047 removed_api: "sdk_library/public/myjavalib-removed.txt",
1048 sdk_version: "current",
1049 },
1050}
1051 `),
1052 checkAllCopyRules(`
1053.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1054.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1055.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1056.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1057 `),
1058 )
1059}
1060
Anton Hanssond78eb762021-09-21 15:25:12 +01001061func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1062 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1063 sdk {
1064 name: "mysdk",
1065 java_sdk_libs: ["myjavalib"],
1066 }
1067
1068 java_sdk_library {
1069 name: "myjavalib",
1070 srcs: ["Test.java"],
1071 sdk_version: "current",
1072 shared_library: false,
1073 annotations_enabled: true,
1074 public: {
1075 enabled: true,
1076 },
1077 }
1078 `)
1079
1080 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001081 checkAndroidBpContents(`
Anton Hanssond78eb762021-09-21 15:25:12 +01001082// This is auto-generated. DO NOT EDIT.
1083
1084java_sdk_library_import {
1085 name: "myjavalib",
1086 prefer: false,
1087 visibility: ["//visibility:public"],
1088 apex_available: ["//apex_available:platform"],
1089 shared_library: false,
1090 public: {
1091 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1092 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1093 current_api: "sdk_library/public/myjavalib.txt",
1094 removed_api: "sdk_library/public/myjavalib-removed.txt",
1095 annotations: "sdk_library/public/myjavalib_annotations.zip",
1096 sdk_version: "current",
1097 },
1098}
1099 `),
1100 checkAllCopyRules(`
1101.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1102.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1103.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1104.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
1105 `),
1106 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1107 )
1108}
1109
Paul Duffina54016c2022-01-27 16:39:47 +00001110func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
1111 result := android.GroupFixturePreparers(
1112 prepareForSdkTestWithJavaSdkLibrary,
1113 android.FixtureMergeEnv(map[string]string{
1114 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1115 }),
1116 ).RunTestWithBp(t, `
1117 sdk {
1118 name: "mysdk",
1119 java_sdk_libs: ["myjavalib"],
1120 }
1121
1122 java_sdk_library {
1123 name: "myjavalib",
1124 srcs: ["Test.java"],
Paul Duffin1938dba2022-07-26 23:53:00 +00001125 sdk_version: "S",
Paul Duffina54016c2022-01-27 16:39:47 +00001126 shared_library: false,
1127 annotations_enabled: true,
1128 public: {
1129 enabled: true,
1130 },
1131 }
1132 `)
1133
1134 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001135 checkAndroidBpContents(`
Paul Duffina54016c2022-01-27 16:39:47 +00001136// This is auto-generated. DO NOT EDIT.
1137
1138java_sdk_library_import {
1139 name: "myjavalib",
1140 prefer: false,
1141 visibility: ["//visibility:public"],
1142 apex_available: ["//apex_available:platform"],
1143 shared_library: false,
1144 public: {
1145 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1146 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1147 current_api: "sdk_library/public/myjavalib.txt",
1148 removed_api: "sdk_library/public/myjavalib-removed.txt",
1149 sdk_version: "current",
1150 },
1151}
1152 `),
1153 checkAllCopyRules(`
1154.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1155.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1156.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1157 `),
1158 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1159 )
1160}
1161
Paul Duffin1267d872021-04-16 17:21:36 +01001162func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1163 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1164 sdk {
1165 name: "mysdk",
1166 java_sdk_libs: ["myjavalib"],
1167 }
1168
1169 java_sdk_library {
1170 name: "myjavalib",
1171 srcs: ["Test.java"],
1172 sdk_version: "current",
1173 shared_library: false,
1174 compile_dex: true,
1175 public: {
1176 enabled: true,
1177 },
1178 system: {
1179 enabled: true,
1180 },
1181 }
1182 `)
1183
1184 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001185 checkAndroidBpContents(`
Paul Duffin1267d872021-04-16 17:21:36 +01001186// This is auto-generated. DO NOT EDIT.
1187
1188java_sdk_library_import {
1189 name: "myjavalib",
1190 prefer: false,
1191 visibility: ["//visibility:public"],
1192 apex_available: ["//apex_available:platform"],
1193 shared_library: false,
1194 compile_dex: true,
1195 public: {
1196 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1197 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1198 current_api: "sdk_library/public/myjavalib.txt",
1199 removed_api: "sdk_library/public/myjavalib-removed.txt",
1200 sdk_version: "current",
1201 },
1202 system: {
1203 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1204 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1205 current_api: "sdk_library/system/myjavalib.txt",
1206 removed_api: "sdk_library/system/myjavalib-removed.txt",
1207 sdk_version: "system_current",
1208 },
1209}
1210`),
1211 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1212 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1213 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1214 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001215 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001216 return path.RelativeToTop().String()
1217 }
1218
1219 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1220 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1221
1222 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1223 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1224 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1225
1226 // This should fall back to system as module is not available.
1227 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1228 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1229
1230 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1231 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1232 }),
1233 )
1234}
1235
Paul Duffin780c5f42020-05-12 15:52:55 +01001236func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001237 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001238 sdk {
1239 name: "mysdk",
1240 java_sdk_libs: ["myjavalib"],
1241 }
1242
1243 java_sdk_library {
1244 name: "myjavalib",
1245 srcs: ["Test.java"],
1246 sdk_version: "none",
1247 system_modules: "none",
1248 }
1249 `)
1250
Paul Duffin36474d32021-03-12 12:19:43 +00001251 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001252 checkAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001253// This is auto-generated. DO NOT EDIT.
1254
1255java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001256 name: "myjavalib",
1257 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001258 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001259 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001260 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001261 public: {
1262 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001263 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001264 current_api: "sdk_library/public/myjavalib.txt",
1265 removed_api: "sdk_library/public/myjavalib-removed.txt",
1266 sdk_version: "none",
1267 },
1268}
Paul Duffine1381882021-04-16 17:05:10 +01001269`),
Paul Duffin780c5f42020-05-12 15:52:55 +01001270 checkAllCopyRules(`
1271.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001272.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1273.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001274`),
1275 checkMergeZips(
1276 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1277 ),
1278 )
1279}
1280
Paul Duffin87a05a32020-05-12 11:50:28 +01001281func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001282 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001283 sdk {
1284 name: "mysdk",
1285 java_sdk_libs: ["myjavalib"],
1286 }
1287
1288 java_sdk_library {
1289 name: "myjavalib",
1290 srcs: ["Test.java"],
1291 sdk_version: "module_current",
1292 public: {
1293 enabled: true,
1294 sdk_version: "module_current",
1295 },
1296 }
1297 `)
1298
Paul Duffin36474d32021-03-12 12:19:43 +00001299 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001300 checkAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001301// This is auto-generated. DO NOT EDIT.
1302
1303java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001304 name: "myjavalib",
1305 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001306 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001307 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001308 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001309 public: {
1310 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001311 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001312 current_api: "sdk_library/public/myjavalib.txt",
1313 removed_api: "sdk_library/public/myjavalib-removed.txt",
1314 sdk_version: "module_current",
1315 },
1316}
Paul Duffine1381882021-04-16 17:05:10 +01001317`),
Paul Duffin87a05a32020-05-12 11:50:28 +01001318 checkAllCopyRules(`
1319.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001320.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1321.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001322`),
1323 checkMergeZips(
1324 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1325 ),
1326 )
1327}
1328
1329func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001330 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001331 sdk {
1332 name: "mysdk",
1333 java_sdk_libs: ["myjavalib"],
1334 }
1335
1336 java_sdk_library {
1337 name: "myjavalib",
1338 apex_available: ["//apex_available:anyapex"],
1339 srcs: ["Test.java"],
1340 sdk_version: "current",
1341 public: {
1342 enabled: true,
1343 },
1344 system: {
1345 enabled: true,
1346 },
1347 }
1348 `)
1349
Paul Duffin36474d32021-03-12 12:19:43 +00001350 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001351 checkAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001352// This is auto-generated. DO NOT EDIT.
1353
1354java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001355 name: "myjavalib",
1356 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001357 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001358 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001359 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001360 public: {
1361 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001362 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001363 current_api: "sdk_library/public/myjavalib.txt",
1364 removed_api: "sdk_library/public/myjavalib-removed.txt",
1365 sdk_version: "current",
1366 },
1367 system: {
1368 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001369 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001370 current_api: "sdk_library/system/myjavalib.txt",
1371 removed_api: "sdk_library/system/myjavalib-removed.txt",
1372 sdk_version: "system_current",
1373 },
1374}
Paul Duffine1381882021-04-16 17:05:10 +01001375`),
Paul Duffin3375e352020-04-28 10:44:03 +01001376 checkAllCopyRules(`
1377.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001378.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1379.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001380.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001381.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1382.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001383`),
1384 checkMergeZips(
1385 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1386 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1387 ),
1388 )
1389}
Paul Duffin8f265b92020-04-28 14:13:56 +01001390
1391func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001392 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001393 sdk {
1394 name: "mysdk",
1395 java_sdk_libs: ["myjavalib"],
1396 }
1397
1398 java_sdk_library {
1399 name: "myjavalib",
1400 apex_available: ["//apex_available:anyapex"],
1401 srcs: ["Test.java"],
1402 sdk_version: "current",
1403 public: {
1404 enabled: true,
1405 },
1406 system: {
1407 enabled: true,
1408 },
1409 module_lib: {
1410 enabled: true,
1411 },
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 Duffin8f265b92020-04-28 14:13:56 +01001417// This is auto-generated. DO NOT EDIT.
1418
1419java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001420 name: "myjavalib",
1421 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001422 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001423 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001424 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001425 public: {
1426 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001427 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001428 current_api: "sdk_library/public/myjavalib.txt",
1429 removed_api: "sdk_library/public/myjavalib-removed.txt",
1430 sdk_version: "current",
1431 },
1432 system: {
1433 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001434 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001435 current_api: "sdk_library/system/myjavalib.txt",
1436 removed_api: "sdk_library/system/myjavalib-removed.txt",
1437 sdk_version: "system_current",
1438 },
1439 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001440 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001441 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001442 current_api: "sdk_library/module-lib/myjavalib.txt",
1443 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001444 sdk_version: "module_current",
1445 },
1446}
Paul Duffine1381882021-04-16 17:05:10 +01001447`),
Paul Duffin8f265b92020-04-28 14:13:56 +01001448 checkAllCopyRules(`
1449.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001450.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1451.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001452.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001453.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1454.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin6b836ba2020-05-13 19:19:49 +01001455.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001456.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1457.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001458`),
1459 checkMergeZips(
Paul Duffin74f1dcd2022-07-18 13:18:23 +00001460 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001461 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1462 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001463 ),
1464 )
1465}
Paul Duffinf7a64332020-05-13 16:54:55 +01001466
Paul Duffin0c5bae52020-06-02 13:00:08 +01001467func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001468 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001469 sdk {
1470 name: "mysdk",
1471 java_sdk_libs: ["myjavalib"],
1472 }
1473
1474 java_sdk_library {
1475 name: "myjavalib",
1476 apex_available: ["//apex_available:anyapex"],
1477 srcs: ["Test.java"],
1478 sdk_version: "current",
1479 public: {
1480 enabled: true,
1481 },
1482 system_server: {
1483 enabled: true,
1484 },
1485 }
1486 `)
1487
Paul Duffin36474d32021-03-12 12:19:43 +00001488 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001489 checkAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001490// This is auto-generated. DO NOT EDIT.
1491
1492java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001493 name: "myjavalib",
1494 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001495 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001496 apex_available: ["//apex_available:anyapex"],
1497 shared_library: true,
1498 public: {
1499 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001500 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001501 current_api: "sdk_library/public/myjavalib.txt",
1502 removed_api: "sdk_library/public/myjavalib-removed.txt",
1503 sdk_version: "current",
1504 },
1505 system_server: {
1506 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001507 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001508 current_api: "sdk_library/system-server/myjavalib.txt",
1509 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1510 sdk_version: "system_server_current",
1511 },
1512}
Paul Duffine1381882021-04-16 17:05:10 +01001513`),
Paul Duffin0c5bae52020-06-02 13:00:08 +01001514 checkAllCopyRules(`
1515.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001516.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1517.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin0c5bae52020-06-02 13:00:08 +01001518.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001519.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1520.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
Paul Duffin0c5bae52020-06-02 13:00:08 +01001521`),
1522 checkMergeZips(
1523 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1524 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1525 ),
1526 )
1527}
1528
Paul Duffinf7a64332020-05-13 16:54:55 +01001529func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001530 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001531 sdk {
1532 name: "mysdk",
1533 java_sdk_libs: ["myjavalib"],
1534 }
1535
1536 java_sdk_library {
1537 name: "myjavalib",
1538 apex_available: ["//apex_available:anyapex"],
1539 srcs: ["Test.java"],
1540 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001541 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001542 public: {
1543 enabled: true,
1544 },
1545 }
1546 `)
1547
Paul Duffin36474d32021-03-12 12:19:43 +00001548 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001549 checkAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001550// This is auto-generated. DO NOT EDIT.
1551
1552java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001553 name: "myjavalib",
1554 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001555 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001556 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001557 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001558 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001559 public: {
1560 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001561 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001562 current_api: "sdk_library/public/myjavalib.txt",
1563 removed_api: "sdk_library/public/myjavalib-removed.txt",
1564 sdk_version: "current",
1565 },
1566}
Paul Duffine1381882021-04-16 17:05:10 +01001567`),
Paul Duffinf7a64332020-05-13 16:54:55 +01001568 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001569.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001570.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1571.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001572`),
1573 checkMergeZips(
1574 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1575 ),
1576 )
1577}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001578
1579func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001580 result := android.GroupFixturePreparers(
1581 prepareForSdkTestWithJavaSdkLibrary,
1582 android.FixtureAddFile("docs/known_doctags", nil),
1583 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001584 sdk {
1585 name: "mysdk",
1586 java_sdk_libs: ["myjavalib"],
1587 }
1588
1589 java_sdk_library {
1590 name: "myjavalib",
1591 srcs: ["Test.java"],
1592 sdk_version: "current",
1593 public: {
1594 enabled: true,
1595 },
1596 doctag_files: ["docs/known_doctags"],
1597 }
1598
1599 filegroup {
1600 name: "mygroup",
1601 srcs: [":myjavalib{.doctags}"],
1602 }
1603 `)
1604
Paul Duffin36474d32021-03-12 12:19:43 +00001605 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001606 checkAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001607// This is auto-generated. DO NOT EDIT.
1608
1609java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001610 name: "myjavalib",
1611 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001612 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001613 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001614 shared_library: true,
1615 doctag_files: ["doctags/docs/known_doctags"],
1616 public: {
1617 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001618 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001619 current_api: "sdk_library/public/myjavalib.txt",
1620 removed_api: "sdk_library/public/myjavalib-removed.txt",
1621 sdk_version: "current",
1622 },
1623}
Paul Duffine1381882021-04-16 17:05:10 +01001624`),
Paul Duffina2ae7e02020-09-11 11:55:00 +01001625 checkAllCopyRules(`
1626.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001627.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1628.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffina2ae7e02020-09-11 11:55:00 +01001629docs/known_doctags -> doctags/docs/known_doctags
1630`),
1631 )
1632}