blob: c6cb6c2204cf459c2208d03429e6b5906d6fb542 [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 Duffinc61783b2022-10-20 17:21:40 +010022 "android/soong/genrule"
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,
Paul Duffinc61783b2022-10-20 17:21:40 +010028 genrule.PrepareForTestWithGenRuleBuildComponents,
Paul Duffind14cbc12021-03-18 09:14:23 +000029 PrepareForTestWithSdkBuildComponents,
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{
38 "Test.java": nil,
Paul Duffinc61783b2022-10-20 17:21:40 +010039 "build/soong/java/invalid_implementation_jar.sh": 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(`
163.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
164aidl/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
209.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
210`),
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 Duffinc61783b2022-10-20 17:21:40 +0100294 jars: [":mysdk_myjavalib-error"],
Paul Duffin869de142021-07-15 14:14:41 +0100295 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100296}
Paul Duffinc61783b2022-10-20 17:21:40 +0100297
298genrule {
299 name: "mysdk_myjavalib-error",
300 visibility: ["//visibility:private"],
301 out: ["this-file-will-never-be-created.jar"],
302 tool_files: ["scripts/invalid_implementation_jar.sh"],
303 cmd: "$(location scripts/invalid_implementation_jar.sh) myjavalib",
304}
Paul Duffine1381882021-04-16 17:05:10 +0100305`),
Paul Duffindb170e42020-12-08 17:48:25 +0000306 checkAllCopyRules(`
Paul Duffinc61783b2022-10-20 17:21:40 +0100307build/soong/java/invalid_implementation_jar.sh -> scripts/invalid_implementation_jar.sh
Paul Duffindb170e42020-12-08 17:48:25 +0000308`),
309 )
310}
311
Paul Duffin13648912022-07-15 13:12:35 +0000312func TestSnapshotWithJavaBootLibrary_UpdatableMedia(t *testing.T) {
Paul Duffinc61783b2022-10-20 17:21:40 +0100313 runTest := func(t *testing.T, targetBuildRelease, expectedJarPath, expectedGenRule, expectedCopyRule string) {
Paul Duffin13648912022-07-15 13:12:35 +0000314 result := android.GroupFixturePreparers(
315 prepareForSdkTestWithJava,
316 android.FixtureMergeEnv(map[string]string{
317 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
318 }),
319 ).RunTestWithBp(t, `
320 sdk {
321 name: "mysdk",
322 java_boot_libs: ["updatable-media"],
323 }
324
325 java_library {
326 name: "updatable-media",
327 srcs: ["Test.java"],
328 system_modules: "none",
329 sdk_version: "none",
330 compile_dex: true,
331 permitted_packages: ["pkg.media"],
332 apex_available: ["com.android.media"],
333 }
334 `)
335
336 CheckSnapshot(t, result, "mysdk", "",
337 checkAndroidBpContents(fmt.Sprintf(`
338// This is auto-generated. DO NOT EDIT.
339
340java_import {
341 name: "updatable-media",
342 prefer: false,
343 visibility: ["//visibility:public"],
344 apex_available: ["com.android.media"],
345 jars: ["%s"],
346 permitted_packages: ["pkg.media"],
347}
Paul Duffinc61783b2022-10-20 17:21:40 +0100348%s`, expectedJarPath, expectedGenRule)),
Paul Duffin13648912022-07-15 13:12:35 +0000349 checkAllCopyRules(expectedCopyRule),
350 )
351 }
352
353 t.Run("updatable-media in S", func(t *testing.T) {
Paul Duffinc61783b2022-10-20 17:21:40 +0100354 runTest(t, "S", "java/updatable-media.jar", "", `
Paul Duffin13648912022-07-15 13:12:35 +0000355.intermediates/updatable-media/android_common/package-check/updatable-media.jar -> java/updatable-media.jar
356`)
357 })
358
359 t.Run("updatable-media in T", func(t *testing.T) {
Paul Duffinc61783b2022-10-20 17:21:40 +0100360 runTest(t, "Tiramisu", ":mysdk_updatable-media-error", `
361genrule {
362 name: "mysdk_updatable-media-error",
363 visibility: ["//visibility:private"],
364 out: ["this-file-will-never-be-created.jar"],
365 tool_files: ["scripts/invalid_implementation_jar.sh"],
366 cmd: "$(location scripts/invalid_implementation_jar.sh) updatable-media",
367}`, `
368build/soong/java/invalid_implementation_jar.sh -> scripts/invalid_implementation_jar.sh
Paul Duffin13648912022-07-15 13:12:35 +0000369`)
370 })
371}
372
Jiakai Zhangea180332021-09-26 08:58:02 +0000373func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
374 result := android.GroupFixturePreparers(
375 prepareForSdkTestWithJava,
376 android.FixtureAddFile("aidl", nil),
377 android.FixtureAddFile("resource.txt", nil),
378 ).RunTestWithBp(t, `
379 module_exports {
380 name: "myexports",
381 java_systemserver_libs: ["myjavalib"],
382 }
383
384 java_library {
385 name: "myjavalib",
386 srcs: ["Test.java"],
387 java_resources: ["resource.txt"],
388 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
389 // is not intended to be used for compiling Java, only for accessing the dex implementation
390 // jar.
391 aidl: {
392 export_include_dirs: ["aidl"],
393 },
394 system_modules: "none",
395 sdk_version: "none",
396 compile_dex: true,
397 permitted_packages: ["pkg.myjavalib"],
398 }
399 `)
400
401 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000402 checkAndroidBpContents(`
Jiakai Zhangea180332021-09-26 08:58:02 +0000403// This is auto-generated. DO NOT EDIT.
404
405java_import {
406 name: "myjavalib",
407 prefer: false,
408 visibility: ["//visibility:public"],
409 apex_available: ["//apex_available:platform"],
Paul Duffinc61783b2022-10-20 17:21:40 +0100410 jars: [":myexports_myjavalib-error"],
Jiakai Zhangea180332021-09-26 08:58:02 +0000411 permitted_packages: ["pkg.myjavalib"],
412}
Paul Duffinc61783b2022-10-20 17:21:40 +0100413
414genrule {
415 name: "myexports_myjavalib-error",
416 visibility: ["//visibility:private"],
417 out: ["this-file-will-never-be-created.jar"],
418 tool_files: ["scripts/invalid_implementation_jar.sh"],
419 cmd: "$(location scripts/invalid_implementation_jar.sh) myjavalib",
420}
Jiakai Zhangea180332021-09-26 08:58:02 +0000421`),
Jiakai Zhangea180332021-09-26 08:58:02 +0000422 checkAllCopyRules(`
Paul Duffinc61783b2022-10-20 17:21:40 +0100423build/soong/java/invalid_implementation_jar.sh -> scripts/invalid_implementation_jar.sh
Jiakai Zhangea180332021-09-26 08:58:02 +0000424`),
425 )
426}
427
Paul Duffina0dbf432019-12-05 11:25:53 +0000428func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000429 result := android.GroupFixturePreparers(
430 prepareForSdkTestWithJava,
431 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
432 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000433 module_exports {
434 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000435 device_supported: false,
436 host_supported: true,
437 java_libs: ["myjavalib"],
438 }
439
440 java_library {
441 name: "myjavalib",
442 device_supported: false,
443 host_supported: true,
444 srcs: ["Test.java"],
445 aidl: {
446 export_include_dirs: ["aidl"],
447 },
448 system_modules: "none",
449 sdk_version: "none",
450 compile_dex: true,
451 }
452 `)
453
Paul Duffin36474d32021-03-12 12:19:43 +0000454 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000455 checkAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000456// This is auto-generated. DO NOT EDIT.
457
458java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100459 name: "myjavalib",
460 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100461 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000462 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000463 device_supported: false,
464 host_supported: true,
465 jars: ["java/myjavalib.jar"],
466}
Paul Duffine1381882021-04-16 17:05:10 +0100467`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000468 checkAllCopyRules(`
469.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
470aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
471`),
472 )
473}
474
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000475func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000476 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000477 module_exports {
478 name: "myexports",
479 java_tests: ["myjavatests"],
480 }
481
482 java_test {
483 name: "myjavatests",
484 srcs: ["Test.java"],
485 system_modules: "none",
486 sdk_version: "none",
487 compile_dex: true,
488 host_supported: true,
489 }
490 `)
491
Paul Duffin36474d32021-03-12 12:19:43 +0000492 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000493 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000494// This is auto-generated. DO NOT EDIT.
495
496java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100497 name: "myjavatests",
498 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100499 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000500 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000501 jars: ["java/myjavatests.jar"],
502 test_config: "java/myjavatests-AndroidTest.xml",
503}
Paul Duffine1381882021-04-16 17:05:10 +0100504`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000505 checkAllCopyRules(`
506.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
507.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
508`),
509 )
510}
511
512func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000513 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000514 module_exports {
515 name: "myexports",
516 device_supported: false,
517 host_supported: true,
518 java_tests: ["myjavatests"],
519 }
520
521 java_test {
522 name: "myjavatests",
523 device_supported: false,
524 host_supported: true,
525 srcs: ["Test.java"],
526 system_modules: "none",
527 sdk_version: "none",
528 compile_dex: true,
529 }
530 `)
531
Paul Duffin36474d32021-03-12 12:19:43 +0000532 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000533 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000534// This is auto-generated. DO NOT EDIT.
535
536java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100537 name: "myjavatests",
538 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100539 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000540 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000541 device_supported: false,
542 host_supported: true,
543 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/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
549.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
550`),
551 )
552}
553
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000554func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin958806b2022-05-16 13:10:47 +0000555 result := android.GroupFixturePreparers(
556 prepareForSdkTestWithJava,
557 java.PrepareForTestWithJavaDefaultModules,
558 java.PrepareForTestWithJavaSdkLibraryFiles,
559 java.FixtureWithPrebuiltApisAndExtensions(map[string][]string{
560 "31": {"myjavalib"},
561 "32": {"myjavalib"},
562 "current": {"myjavalib"},
563 }, map[string][]string{
564 "1": {"myjavalib"},
565 "2": {"myjavalib"},
566 }),
567 ).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000568 sdk {
569 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000570 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100571 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000572 java_system_modules: ["my-system-modules"],
573 }
574
Paul Duffin33028712021-06-22 11:00:07 +0100575 java_sdk_library {
576 name: "myjavalib",
577 apex_available: ["//apex_available:anyapex"],
578 srcs: ["Test.java"],
579 sdk_version: "current",
580 shared_library: false,
581 public: {
582 enabled: true,
583 },
584 }
585
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000586 java_system_modules {
587 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100588 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000589 }
590
591 java_library {
592 name: "system-module",
593 srcs: ["Test.java"],
594 sdk_version: "none",
595 system_modules: "none",
596 }
Paul Duffin72910952020-01-20 18:16:30 +0000597
598 java_library {
599 name: "exported-system-module",
600 srcs: ["Test.java"],
601 sdk_version: "none",
602 system_modules: "none",
603 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000604 `)
605
Paul Duffin36474d32021-03-12 12:19:43 +0000606 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000607 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000608// This is auto-generated. DO NOT EDIT.
609
610java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100611 name: "exported-system-module",
612 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100613 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000614 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000615 jars: ["java/exported-system-module.jar"],
616}
617
618java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100619 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000620 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100621 visibility: ["//visibility:private"],
622 apex_available: ["//apex_available:platform"],
623 jars: ["java/system-module.jar"],
624}
625
Paul Duffin33028712021-06-22 11:00:07 +0100626java_sdk_library_import {
627 name: "myjavalib",
628 prefer: false,
629 visibility: ["//visibility:public"],
630 apex_available: ["//apex_available:anyapex"],
631 shared_library: false,
632 public: {
633 jars: ["sdk_library/public/myjavalib-stubs.jar"],
634 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
635 current_api: "sdk_library/public/myjavalib.txt",
636 removed_api: "sdk_library/public/myjavalib-removed.txt",
637 sdk_version: "current",
638 },
639}
640
Paul Duffine1381882021-04-16 17:05:10 +0100641java_system_modules_import {
642 name: "my-system-modules",
643 prefer: false,
644 visibility: ["//visibility:public"],
645 libs: [
646 "mysdk_system-module",
647 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100648 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100649 ],
650}
651`),
Paul Duffin72910952020-01-20 18:16:30 +0000652 checkAllCopyRules(`
653.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
654.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100655.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
656.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
657.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 +0000658`),
Paul Duffin958806b2022-05-16 13:10:47 +0000659 checkInfoContents(result.Config, `
Paul Duffinc6ba1822022-05-06 09:38:02 +0000660[
661 {
662 "@type": "sdk",
663 "@name": "mysdk",
664 "java_header_libs": [
665 "exported-system-module",
666 "system-module"
667 ],
668 "java_sdk_libs": [
669 "myjavalib"
670 ],
671 "java_system_modules": [
672 "my-system-modules"
673 ]
674 },
675 {
676 "@type": "java_library",
677 "@name": "exported-system-module"
678 },
679 {
680 "@type": "java_system_modules",
681 "@name": "my-system-modules",
682 "@deps": [
683 "exported-system-module",
684 "system-module"
685 ]
686 },
687 {
688 "@type": "java_sdk_library",
Paul Duffin958806b2022-05-16 13:10:47 +0000689 "@name": "myjavalib",
690 "dist_stem": "myjavalib",
691 "scopes": {
692 "public": {
693 "current_api": "sdk_library/public/myjavalib.txt",
694 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.public.latest/gen/myjavalib.api.public.latest",
695 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.public.latest/gen/myjavalib-removed.api.public.latest",
696 "removed_api": "sdk_library/public/myjavalib-removed.txt"
697 }
698 }
Paul Duffinc6ba1822022-05-06 09:38:02 +0000699 },
700 {
701 "@type": "java_library",
702 "@name": "system-module"
703 }
704]
705`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000706 )
707}
708
709func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000710 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000711 sdk {
712 name: "mysdk",
713 device_supported: false,
714 host_supported: true,
715 java_system_modules: ["my-system-modules"],
716 }
717
718 java_system_modules {
719 name: "my-system-modules",
720 device_supported: false,
721 host_supported: true,
722 libs: ["system-module"],
723 }
724
725 java_library {
726 name: "system-module",
727 device_supported: false,
728 host_supported: true,
729 srcs: ["Test.java"],
730 sdk_version: "none",
731 system_modules: "none",
732 }
733 `)
734
Paul Duffin36474d32021-03-12 12:19:43 +0000735 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000736 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000737// This is auto-generated. DO NOT EDIT.
738
739java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100740 name: "mysdk_system-module",
741 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000742 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000743 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000744 device_supported: false,
745 host_supported: true,
746 jars: ["java/system-module.jar"],
747}
748
Paul Duffine1381882021-04-16 17:05:10 +0100749java_system_modules_import {
750 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000751 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100752 visibility: ["//visibility:public"],
753 device_supported: false,
754 host_supported: true,
755 libs: ["mysdk_system-module"],
756}
757`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000758 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
759 )
760}
Paul Duffin865171e2020-03-02 18:38:15 +0000761
762func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000763 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000764 module_exports {
765 name: "myexports",
766 host_supported: true,
767 java_libs: ["myjavalib"],
768 target: {
769 android: {
770 java_header_libs: ["androidjavalib"],
771 },
772 host: {
773 java_header_libs: ["hostjavalib"],
774 },
775 },
776 }
777
778 java_library {
779 name: "myjavalib",
780 host_supported: true,
781 srcs: ["Test.java"],
782 system_modules: "none",
783 sdk_version: "none",
784 }
785
786 java_library {
787 name: "androidjavalib",
788 srcs: ["Test.java"],
789 system_modules: "none",
790 sdk_version: "none",
791 }
792
793 java_library_host {
794 name: "hostjavalib",
795 srcs: ["Test.java"],
796 }
797 `)
798
Paul Duffin36474d32021-03-12 12:19:43 +0000799 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000800 checkAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000801// This is auto-generated. DO NOT EDIT.
802
803java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100804 name: "hostjavalib",
805 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100806 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000807 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000808 device_supported: false,
809 host_supported: true,
810 jars: ["java/hostjavalib.jar"],
811}
812
813java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100814 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000815 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100816 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000817 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100818 jars: ["java/androidjavalib.jar"],
819}
820
821java_import {
822 name: "myjavalib",
823 prefer: false,
824 visibility: ["//visibility:public"],
825 apex_available: ["//apex_available:platform"],
826 host_supported: true,
827 target: {
828 android: {
829 jars: ["java/android/myjavalib.jar"],
830 },
831 linux_glibc: {
832 jars: ["java/linux_glibc/myjavalib.jar"],
833 },
834 },
835}
836`),
Paul Duffin865171e2020-03-02 18:38:15 +0000837 checkAllCopyRules(`
838.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
839.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
840.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
841.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
842`),
843 )
844}
Paul Duffindd46f712020-02-10 13:37:10 +0000845
846func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000847 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +0000848 sdk {
849 name: "mysdk",
850 java_sdk_libs: ["myjavalib"],
851 }
852
853 java_sdk_library {
854 name: "myjavalib",
855 apex_available: ["//apex_available:anyapex"],
856 srcs: ["Test.java"],
857 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100858 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100859 stubs_library_visibility: ["//other"],
860 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +0100861 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000862 }
863 `)
864
Paul Duffin36474d32021-03-12 12:19:43 +0000865 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000866 checkAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +0000867// This is auto-generated. DO NOT EDIT.
868
869java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +0100870 name: "myjavalib",
871 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100872 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000873 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100874 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +0100875 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000876 public: {
877 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000878 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100879 current_api: "sdk_library/public/myjavalib.txt",
880 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000881 sdk_version: "current",
882 },
883 system: {
884 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000885 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100886 current_api: "sdk_library/system/myjavalib.txt",
887 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000888 sdk_version: "system_current",
889 },
890 test: {
891 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000892 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100893 current_api: "sdk_library/test/myjavalib.txt",
894 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000895 sdk_version: "test_current",
896 },
897}
Paul Duffine1381882021-04-16 17:05:10 +0100898`),
Paul Duffindd46f712020-02-10 13:37:10 +0000899 checkAllCopyRules(`
900.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700901.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
902.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 +0000903.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700904.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
905.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 +0000906.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700907.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
908.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 +0000909`),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100910 checkMergeZips(
911 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
912 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +0100913 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
914 ),
Paul Duffindd46f712020-02-10 13:37:10 +0000915 )
916}
Paul Duffin3375e352020-04-28 10:44:03 +0100917
Paul Duffine8409952022-09-22 16:24:46 +0100918func TestSnapshotWithJavaSdkLibrary_DistStem(t *testing.T) {
919 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
920 sdk {
921 name: "mysdk",
922 java_sdk_libs: ["myjavalib-foo"],
923 }
924
925 java_sdk_library {
926 name: "myjavalib-foo",
927 apex_available: ["//apex_available:anyapex"],
928 srcs: ["Test.java"],
929 sdk_version: "current",
930 shared_library: false,
931 public: {
932 enabled: true,
933 },
934 dist_stem: "myjavalib",
935 }
936 `)
937
938 CheckSnapshot(t, result, "mysdk", "",
939 checkAndroidBpContents(`
940// This is auto-generated. DO NOT EDIT.
941
942java_sdk_library_import {
943 name: "myjavalib-foo",
944 prefer: false,
945 visibility: ["//visibility:public"],
946 apex_available: ["//apex_available:anyapex"],
947 shared_library: false,
948 public: {
949 jars: ["sdk_library/public/myjavalib-stubs.jar"],
950 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
951 current_api: "sdk_library/public/myjavalib.txt",
952 removed_api: "sdk_library/public/myjavalib-removed.txt",
953 sdk_version: "current",
954 },
955}
956`),
957 checkAllCopyRules(`
958.intermediates/myjavalib-foo.stubs/android_common/javac/myjavalib-foo.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
959.intermediates/myjavalib-foo.stubs.source/android_common/metalava/myjavalib-foo.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
960.intermediates/myjavalib-foo.stubs.source/android_common/metalava/myjavalib-foo.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
961`),
962 checkMergeZips(
963 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
964 ),
965 )
966}
967
Paul Duffin22628d52021-05-12 23:13:22 +0100968func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
969 result := android.GroupFixturePreparers(
970 prepareForSdkTestWithJavaSdkLibrary,
971 android.FixtureMergeEnv(map[string]string{
972 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
973 }),
974 ).RunTestWithBp(t, `
975 sdk {
976 name: "mysdk",
977 java_sdk_libs: ["myjavalib"],
978 }
979
980 java_sdk_library {
981 name: "myjavalib",
982 srcs: ["Test.java"],
983 sdk_version: "current",
984 shared_library: false,
985 public: {
986 enabled: true,
987 },
988 }
989 `)
990
991 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000992 checkAndroidBpContents(`
Paul Duffin22628d52021-05-12 23:13:22 +0100993// This is auto-generated. DO NOT EDIT.
994
995java_sdk_library_import {
996 name: "myjavalib",
997 prefer: false,
998 visibility: ["//visibility:public"],
999 apex_available: ["//apex_available:platform"],
1000 shared_library: false,
1001 public: {
1002 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1003 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1004 current_api: "sdk_library/public/myjavalib.txt",
1005 removed_api: "sdk_library/public/myjavalib-removed.txt",
1006 sdk_version: "current",
1007 },
1008}
1009 `),
1010 checkAllCopyRules(`
1011.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1012.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1013.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1014.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1015 `),
1016 )
1017}
1018
Anton Hanssond78eb762021-09-21 15:25:12 +01001019func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1020 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1021 sdk {
1022 name: "mysdk",
1023 java_sdk_libs: ["myjavalib"],
1024 }
1025
1026 java_sdk_library {
1027 name: "myjavalib",
1028 srcs: ["Test.java"],
1029 sdk_version: "current",
1030 shared_library: false,
1031 annotations_enabled: true,
1032 public: {
1033 enabled: true,
1034 },
1035 }
1036 `)
1037
1038 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001039 checkAndroidBpContents(`
Anton Hanssond78eb762021-09-21 15:25:12 +01001040// This is auto-generated. DO NOT EDIT.
1041
1042java_sdk_library_import {
1043 name: "myjavalib",
1044 prefer: false,
1045 visibility: ["//visibility:public"],
1046 apex_available: ["//apex_available:platform"],
1047 shared_library: false,
1048 public: {
1049 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1050 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1051 current_api: "sdk_library/public/myjavalib.txt",
1052 removed_api: "sdk_library/public/myjavalib-removed.txt",
1053 annotations: "sdk_library/public/myjavalib_annotations.zip",
1054 sdk_version: "current",
1055 },
1056}
1057 `),
1058 checkAllCopyRules(`
1059.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1060.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1061.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1062.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
1063 `),
1064 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1065 )
1066}
1067
Paul Duffina54016c2022-01-27 16:39:47 +00001068func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
1069 result := android.GroupFixturePreparers(
1070 prepareForSdkTestWithJavaSdkLibrary,
1071 android.FixtureMergeEnv(map[string]string{
1072 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1073 }),
1074 ).RunTestWithBp(t, `
1075 sdk {
1076 name: "mysdk",
1077 java_sdk_libs: ["myjavalib"],
1078 }
1079
1080 java_sdk_library {
1081 name: "myjavalib",
1082 srcs: ["Test.java"],
Paul Duffin1938dba2022-07-26 23:53:00 +00001083 sdk_version: "S",
Paul Duffina54016c2022-01-27 16:39:47 +00001084 shared_library: false,
1085 annotations_enabled: true,
1086 public: {
1087 enabled: true,
1088 },
1089 }
1090 `)
1091
1092 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001093 checkAndroidBpContents(`
Paul Duffina54016c2022-01-27 16:39:47 +00001094// This is auto-generated. DO NOT EDIT.
1095
1096java_sdk_library_import {
1097 name: "myjavalib",
1098 prefer: false,
1099 visibility: ["//visibility:public"],
1100 apex_available: ["//apex_available:platform"],
1101 shared_library: false,
1102 public: {
1103 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1104 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1105 current_api: "sdk_library/public/myjavalib.txt",
1106 removed_api: "sdk_library/public/myjavalib-removed.txt",
1107 sdk_version: "current",
1108 },
1109}
1110 `),
1111 checkAllCopyRules(`
1112.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1113.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1114.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1115 `),
1116 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1117 )
1118}
1119
Paul Duffin1267d872021-04-16 17:21:36 +01001120func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1121 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1122 sdk {
1123 name: "mysdk",
1124 java_sdk_libs: ["myjavalib"],
1125 }
1126
1127 java_sdk_library {
1128 name: "myjavalib",
1129 srcs: ["Test.java"],
1130 sdk_version: "current",
1131 shared_library: false,
1132 compile_dex: true,
1133 public: {
1134 enabled: true,
1135 },
1136 system: {
1137 enabled: true,
1138 },
1139 }
1140 `)
1141
1142 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001143 checkAndroidBpContents(`
Paul Duffin1267d872021-04-16 17:21:36 +01001144// This is auto-generated. DO NOT EDIT.
1145
1146java_sdk_library_import {
1147 name: "myjavalib",
1148 prefer: false,
1149 visibility: ["//visibility:public"],
1150 apex_available: ["//apex_available:platform"],
1151 shared_library: false,
1152 compile_dex: true,
1153 public: {
1154 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1155 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1156 current_api: "sdk_library/public/myjavalib.txt",
1157 removed_api: "sdk_library/public/myjavalib-removed.txt",
1158 sdk_version: "current",
1159 },
1160 system: {
1161 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1162 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1163 current_api: "sdk_library/system/myjavalib.txt",
1164 removed_api: "sdk_library/system/myjavalib-removed.txt",
1165 sdk_version: "system_current",
1166 },
1167}
1168`),
1169 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1170 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1171 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1172 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001173 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001174 return path.RelativeToTop().String()
1175 }
1176
1177 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1178 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1179
1180 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1181 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1182 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1183
1184 // This should fall back to system as module is not available.
1185 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1186 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1187
1188 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1189 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1190 }),
1191 )
1192}
1193
Paul Duffin780c5f42020-05-12 15:52:55 +01001194func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001195 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001196 sdk {
1197 name: "mysdk",
1198 java_sdk_libs: ["myjavalib"],
1199 }
1200
1201 java_sdk_library {
1202 name: "myjavalib",
1203 srcs: ["Test.java"],
1204 sdk_version: "none",
1205 system_modules: "none",
1206 }
1207 `)
1208
Paul Duffin36474d32021-03-12 12:19:43 +00001209 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001210 checkAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001211// This is auto-generated. DO NOT EDIT.
1212
1213java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001214 name: "myjavalib",
1215 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001216 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001217 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001218 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001219 public: {
1220 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001221 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001222 current_api: "sdk_library/public/myjavalib.txt",
1223 removed_api: "sdk_library/public/myjavalib-removed.txt",
1224 sdk_version: "none",
1225 },
1226}
Paul Duffine1381882021-04-16 17:05:10 +01001227`),
Paul Duffin780c5f42020-05-12 15:52:55 +01001228 checkAllCopyRules(`
1229.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001230.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1231.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 +01001232`),
1233 checkMergeZips(
1234 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1235 ),
1236 )
1237}
1238
Paul Duffin87a05a32020-05-12 11:50:28 +01001239func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001240 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001241 sdk {
1242 name: "mysdk",
1243 java_sdk_libs: ["myjavalib"],
1244 }
1245
1246 java_sdk_library {
1247 name: "myjavalib",
1248 srcs: ["Test.java"],
1249 sdk_version: "module_current",
1250 public: {
1251 enabled: true,
1252 sdk_version: "module_current",
1253 },
1254 }
1255 `)
1256
Paul Duffin36474d32021-03-12 12:19:43 +00001257 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001258 checkAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001259// This is auto-generated. DO NOT EDIT.
1260
1261java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001262 name: "myjavalib",
1263 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001264 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001265 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001266 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001267 public: {
1268 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001269 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001270 current_api: "sdk_library/public/myjavalib.txt",
1271 removed_api: "sdk_library/public/myjavalib-removed.txt",
1272 sdk_version: "module_current",
1273 },
1274}
Paul Duffine1381882021-04-16 17:05:10 +01001275`),
Paul Duffin87a05a32020-05-12 11:50:28 +01001276 checkAllCopyRules(`
1277.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001278.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1279.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 +01001280`),
1281 checkMergeZips(
1282 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1283 ),
1284 )
1285}
1286
1287func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001288 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001289 sdk {
1290 name: "mysdk",
1291 java_sdk_libs: ["myjavalib"],
1292 }
1293
1294 java_sdk_library {
1295 name: "myjavalib",
1296 apex_available: ["//apex_available:anyapex"],
1297 srcs: ["Test.java"],
1298 sdk_version: "current",
1299 public: {
1300 enabled: true,
1301 },
1302 system: {
1303 enabled: true,
1304 },
1305 }
1306 `)
1307
Paul Duffin36474d32021-03-12 12:19:43 +00001308 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001309 checkAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001310// This is auto-generated. DO NOT EDIT.
1311
1312java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001313 name: "myjavalib",
1314 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001315 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001316 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001317 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001318 public: {
1319 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001320 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001321 current_api: "sdk_library/public/myjavalib.txt",
1322 removed_api: "sdk_library/public/myjavalib-removed.txt",
1323 sdk_version: "current",
1324 },
1325 system: {
1326 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001327 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001328 current_api: "sdk_library/system/myjavalib.txt",
1329 removed_api: "sdk_library/system/myjavalib-removed.txt",
1330 sdk_version: "system_current",
1331 },
1332}
Paul Duffine1381882021-04-16 17:05:10 +01001333`),
Paul Duffin3375e352020-04-28 10:44:03 +01001334 checkAllCopyRules(`
1335.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001336.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1337.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 +01001338.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001339.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1340.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 +01001341`),
1342 checkMergeZips(
1343 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1344 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1345 ),
1346 )
1347}
Paul Duffin8f265b92020-04-28 14:13:56 +01001348
1349func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001350 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001351 sdk {
1352 name: "mysdk",
1353 java_sdk_libs: ["myjavalib"],
1354 }
1355
1356 java_sdk_library {
1357 name: "myjavalib",
1358 apex_available: ["//apex_available:anyapex"],
1359 srcs: ["Test.java"],
1360 sdk_version: "current",
1361 public: {
1362 enabled: true,
1363 },
1364 system: {
1365 enabled: true,
1366 },
1367 module_lib: {
1368 enabled: true,
1369 },
1370 }
1371 `)
1372
Paul Duffin36474d32021-03-12 12:19:43 +00001373 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001374 checkAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001375// This is auto-generated. DO NOT EDIT.
1376
1377java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001378 name: "myjavalib",
1379 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001380 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001381 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001382 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001383 public: {
1384 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001385 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001386 current_api: "sdk_library/public/myjavalib.txt",
1387 removed_api: "sdk_library/public/myjavalib-removed.txt",
1388 sdk_version: "current",
1389 },
1390 system: {
1391 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001392 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001393 current_api: "sdk_library/system/myjavalib.txt",
1394 removed_api: "sdk_library/system/myjavalib-removed.txt",
1395 sdk_version: "system_current",
1396 },
1397 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001398 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001399 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001400 current_api: "sdk_library/module-lib/myjavalib.txt",
1401 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001402 sdk_version: "module_current",
1403 },
1404}
Paul Duffine1381882021-04-16 17:05:10 +01001405`),
Paul Duffin8f265b92020-04-28 14:13:56 +01001406 checkAllCopyRules(`
1407.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001408.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1409.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 +01001410.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001411.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1412.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 +01001413.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 -07001414.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1415.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 +01001416`),
1417 checkMergeZips(
Paul Duffin74f1dcd2022-07-18 13:18:23 +00001418 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001419 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1420 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001421 ),
1422 )
1423}
Paul Duffinf7a64332020-05-13 16:54:55 +01001424
Paul Duffin0c5bae52020-06-02 13:00:08 +01001425func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001426 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001427 sdk {
1428 name: "mysdk",
1429 java_sdk_libs: ["myjavalib"],
1430 }
1431
1432 java_sdk_library {
1433 name: "myjavalib",
1434 apex_available: ["//apex_available:anyapex"],
1435 srcs: ["Test.java"],
1436 sdk_version: "current",
1437 public: {
1438 enabled: true,
1439 },
1440 system_server: {
1441 enabled: true,
1442 },
1443 }
1444 `)
1445
Paul Duffin36474d32021-03-12 12:19:43 +00001446 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001447 checkAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001448// This is auto-generated. DO NOT EDIT.
1449
1450java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001451 name: "myjavalib",
1452 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001453 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001454 apex_available: ["//apex_available:anyapex"],
1455 shared_library: true,
1456 public: {
1457 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001458 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001459 current_api: "sdk_library/public/myjavalib.txt",
1460 removed_api: "sdk_library/public/myjavalib-removed.txt",
1461 sdk_version: "current",
1462 },
1463 system_server: {
1464 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001465 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001466 current_api: "sdk_library/system-server/myjavalib.txt",
1467 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1468 sdk_version: "system_server_current",
1469 },
1470}
Paul Duffine1381882021-04-16 17:05:10 +01001471`),
Paul Duffin0c5bae52020-06-02 13:00:08 +01001472 checkAllCopyRules(`
1473.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001474.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1475.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 +01001476.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 -07001477.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1478.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 +01001479`),
1480 checkMergeZips(
1481 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1482 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1483 ),
1484 )
1485}
1486
Paul Duffinf7a64332020-05-13 16:54:55 +01001487func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001488 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001489 sdk {
1490 name: "mysdk",
1491 java_sdk_libs: ["myjavalib"],
1492 }
1493
1494 java_sdk_library {
1495 name: "myjavalib",
1496 apex_available: ["//apex_available:anyapex"],
1497 srcs: ["Test.java"],
1498 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001499 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001500 public: {
1501 enabled: true,
1502 },
1503 }
1504 `)
1505
Paul Duffin36474d32021-03-12 12:19:43 +00001506 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001507 checkAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001508// This is auto-generated. DO NOT EDIT.
1509
1510java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001511 name: "myjavalib",
1512 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001513 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001514 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001515 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001516 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001517 public: {
1518 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001519 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001520 current_api: "sdk_library/public/myjavalib.txt",
1521 removed_api: "sdk_library/public/myjavalib-removed.txt",
1522 sdk_version: "current",
1523 },
1524}
Paul Duffine1381882021-04-16 17:05:10 +01001525`),
Paul Duffinf7a64332020-05-13 16:54:55 +01001526 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001527.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001528.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1529.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 +01001530`),
1531 checkMergeZips(
1532 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1533 ),
1534 )
1535}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001536
1537func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001538 result := android.GroupFixturePreparers(
1539 prepareForSdkTestWithJavaSdkLibrary,
1540 android.FixtureAddFile("docs/known_doctags", nil),
1541 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001542 sdk {
1543 name: "mysdk",
1544 java_sdk_libs: ["myjavalib"],
1545 }
1546
1547 java_sdk_library {
1548 name: "myjavalib",
1549 srcs: ["Test.java"],
1550 sdk_version: "current",
1551 public: {
1552 enabled: true,
1553 },
1554 doctag_files: ["docs/known_doctags"],
1555 }
1556
1557 filegroup {
1558 name: "mygroup",
1559 srcs: [":myjavalib{.doctags}"],
1560 }
1561 `)
1562
Paul Duffin36474d32021-03-12 12:19:43 +00001563 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001564 checkAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001565// This is auto-generated. DO NOT EDIT.
1566
1567java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001568 name: "myjavalib",
1569 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001570 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001571 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001572 shared_library: true,
1573 doctag_files: ["doctags/docs/known_doctags"],
1574 public: {
1575 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001576 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001577 current_api: "sdk_library/public/myjavalib.txt",
1578 removed_api: "sdk_library/public/myjavalib-removed.txt",
1579 sdk_version: "current",
1580 },
1581}
Paul Duffine1381882021-04-16 17:05:10 +01001582`),
Paul Duffina2ae7e02020-09-11 11:55:00 +01001583 checkAllCopyRules(`
1584.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001585.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1586.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 +01001587docs/known_doctags -> doctags/docs/known_doctags
1588`),
1589 )
1590}