blob: 51903ce391af3fcbad90f91fab44a6c4e02f509f [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{
36 "Test.java": nil,
37 }.AddToFixture(),
Paul Duffind14cbc12021-03-18 09:14:23 +000038)
39
Paul Duffin9ec86b12021-03-15 11:17:52 +000040var prepareForSdkTestWithJavaSdkLibrary = android.GroupFixturePreparers(
41 prepareForSdkTestWithJava,
42 java.PrepareForTestWithJavaDefaultModules,
43 java.PrepareForTestWithJavaSdkLibraryFiles,
44 java.FixtureWithLastReleaseApis("myjavalib"),
45)
46
Paul Duffina80fdec2019-12-03 15:25:00 +000047// Contains tests for SDK members provided by the java package.
48
Paul Duffincee7e662020-07-09 17:32:57 +010049func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000050 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +010051 sdk {
52 name: "mysdk",
53 java_header_libs: ["sdkmember"],
54 }
55
56 java_library {
57 name: "sdkmember",
58 srcs: ["Test.java"],
59 system_modules: "none",
60 sdk_version: "none",
61 }
Paul Duffincee7e662020-07-09 17:32:57 +010062 `)
63
64 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin1822a0a2021-03-21 12:56:33 +000065 sdkChecker := func(t *testing.T, result *android.TestResult) {
66 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
67 }
Paul Duffincee7e662020-07-09 17:32:57 +010068
Paul Duffin36474d32021-03-12 12:19:43 +000069 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin1822a0a2021-03-21 12:56:33 +000070 snapshotTestChecker(checkSnapshotWithSourcePreferred, sdkChecker),
71 snapshotTestChecker(checkSnapshotPreferredWithSource, sdkChecker),
72 )
Paul Duffincee7e662020-07-09 17:32:57 +010073}
74
Paul Duffina0dbf432019-12-05 11:25:53 +000075func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000076 result := android.GroupFixturePreparers(
77 prepareForSdkTestWithJava,
78 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
79 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +000080 sdk {
81 name: "mysdk",
82 java_header_libs: ["myjavalib"],
83 }
84
85 java_library {
86 name: "myjavalib",
87 srcs: ["Test.java"],
88 aidl: {
89 export_include_dirs: ["aidl"],
90 },
91 system_modules: "none",
92 sdk_version: "none",
93 compile_dex: true,
94 host_supported: true,
Paul Duffin869de142021-07-15 14:14:41 +010095 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +000096 }
97 `)
98
Paul Duffin36474d32021-03-12 12:19:43 +000099 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000100 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100101// This is auto-generated. DO NOT EDIT.
102
103java_import {
104 name: "myjavalib",
105 prefer: false,
106 visibility: ["//visibility:public"],
107 apex_available: ["//apex_available:platform"],
108 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100109 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100110}
111`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000112 checkAllCopyRules(`
113.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
114aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
115`),
116 )
117}
118
119func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000120 result := android.GroupFixturePreparers(
121 prepareForSdkTestWithJava,
122 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
123 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000124 sdk {
125 name: "mysdk",
126 device_supported: false,
127 host_supported: true,
128 java_header_libs: ["myjavalib"],
129 }
130
131 java_library {
132 name: "myjavalib",
133 device_supported: false,
134 host_supported: true,
135 srcs: ["Test.java"],
136 aidl: {
137 export_include_dirs: ["aidl"],
138 },
139 system_modules: "none",
140 sdk_version: "none",
141 compile_dex: true,
142 }
143 `)
144
Paul Duffin36474d32021-03-12 12:19:43 +0000145 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000146 checkAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000147// This is auto-generated. DO NOT EDIT.
148
149java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100150 name: "myjavalib",
151 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100152 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000153 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000154 device_supported: false,
155 host_supported: true,
156 jars: ["java/myjavalib.jar"],
157}
Paul Duffine1381882021-04-16 17:05:10 +0100158`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000159 checkAllCopyRules(`
160.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
161aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
162`),
163 )
164}
165
Paul Duffina04c1072020-03-02 10:16:35 +0000166func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000167 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000168 sdk {
169 name: "mysdk",
170 host_supported: true,
171 java_header_libs: ["myjavalib"],
172 }
173
174 java_library {
175 name: "myjavalib",
176 host_supported: true,
177 srcs: ["Test.java"],
178 system_modules: "none",
179 sdk_version: "none",
180 compile_dex: true,
181 }
182 `)
183
Paul Duffin36474d32021-03-12 12:19:43 +0000184 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000185 checkAndroidBpContents(`
Paul Duffina04c1072020-03-02 10:16:35 +0000186// This is auto-generated. DO NOT EDIT.
187
188java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100189 name: "myjavalib",
190 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100191 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000192 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000193 host_supported: true,
194 target: {
195 android: {
196 jars: ["java/android/myjavalib.jar"],
197 },
198 linux_glibc: {
199 jars: ["java/linux_glibc/myjavalib.jar"],
200 },
201 },
202}
Paul Duffine1381882021-04-16 17:05:10 +0100203`),
Paul Duffina04c1072020-03-02 10:16:35 +0000204 checkAllCopyRules(`
205.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
206.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
207`),
208 )
209}
210
Paul Duffina0dbf432019-12-05 11:25:53 +0000211func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000212 result := android.GroupFixturePreparers(
213 prepareForSdkTestWithJava,
214 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000215 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000216 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000217 module_exports {
218 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000219 java_libs: ["myjavalib"],
220 }
221
222 java_library {
223 name: "myjavalib",
224 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100225 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000226 aidl: {
227 export_include_dirs: ["aidl"],
228 },
229 system_modules: "none",
230 sdk_version: "none",
231 compile_dex: true,
232 host_supported: true,
233 }
234 `)
235
Paul Duffin36474d32021-03-12 12:19:43 +0000236 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000237 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100238// This is auto-generated. DO NOT EDIT.
239
240java_import {
241 name: "myjavalib",
242 prefer: false,
243 visibility: ["//visibility:public"],
244 apex_available: ["//apex_available:platform"],
245 jars: ["java/myjavalib.jar"],
246}
247`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000248 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100249.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000250aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
251`),
252 )
253}
254
Paul Duffindb170e42020-12-08 17:48:25 +0000255func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +0000256 result := android.GroupFixturePreparers(
257 prepareForSdkTestWithJava,
258 android.FixtureAddFile("aidl", nil),
259 android.FixtureAddFile("resource.txt", nil),
260 ).RunTestWithBp(t, `
Paul Duffin13648912022-07-15 13:12:35 +0000261 sdk {
262 name: "mysdk",
Paul Duffindb170e42020-12-08 17:48:25 +0000263 java_boot_libs: ["myjavalib"],
264 }
265
266 java_library {
267 name: "myjavalib",
268 srcs: ["Test.java"],
269 java_resources: ["resource.txt"],
270 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
271 // intended to be used for compiling Java, only for accessing the dex implementation jar.
272 aidl: {
273 export_include_dirs: ["aidl"],
274 },
275 system_modules: "none",
276 sdk_version: "none",
277 compile_dex: true,
Paul Duffin869de142021-07-15 14:14:41 +0100278 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000279 }
280 `)
281
Paul Duffin13648912022-07-15 13:12:35 +0000282 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000283 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100284// This is auto-generated. DO NOT EDIT.
285
286java_import {
287 name: "myjavalib",
288 prefer: false,
289 visibility: ["//visibility:public"],
290 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000291 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100292 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100293}
294`),
Paul Duffindb170e42020-12-08 17:48:25 +0000295 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000296.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000297`),
298 )
299}
300
Paul Duffin13648912022-07-15 13:12:35 +0000301func TestSnapshotWithJavaBootLibrary_UpdatableMedia(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000302 runTest := func(t *testing.T, targetBuildRelease, expectedJarPath, expectedCopyRule string) {
Paul Duffin13648912022-07-15 13:12:35 +0000303 result := android.GroupFixturePreparers(
304 prepareForSdkTestWithJava,
305 android.FixtureMergeEnv(map[string]string{
306 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": targetBuildRelease,
307 }),
308 ).RunTestWithBp(t, `
309 sdk {
310 name: "mysdk",
311 java_boot_libs: ["updatable-media"],
312 }
313
314 java_library {
315 name: "updatable-media",
316 srcs: ["Test.java"],
317 system_modules: "none",
318 sdk_version: "none",
319 compile_dex: true,
320 permitted_packages: ["pkg.media"],
321 apex_available: ["com.android.media"],
322 }
323 `)
324
325 CheckSnapshot(t, result, "mysdk", "",
326 checkAndroidBpContents(fmt.Sprintf(`
327// This is auto-generated. DO NOT EDIT.
328
329java_import {
330 name: "updatable-media",
331 prefer: false,
332 visibility: ["//visibility:public"],
333 apex_available: ["com.android.media"],
334 jars: ["%s"],
335 permitted_packages: ["pkg.media"],
336}
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000337`, expectedJarPath)),
Paul Duffin13648912022-07-15 13:12:35 +0000338 checkAllCopyRules(expectedCopyRule),
339 )
340 }
341
342 t.Run("updatable-media in S", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000343 runTest(t, "S", "java/updatable-media.jar", `
Paul Duffin13648912022-07-15 13:12:35 +0000344.intermediates/updatable-media/android_common/package-check/updatable-media.jar -> java/updatable-media.jar
345`)
346 })
347
348 t.Run("updatable-media in T", func(t *testing.T) {
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000349 runTest(t, "Tiramisu", "java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar", `
350.intermediates/mysdk/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/updatable-media.jar
Paul Duffin13648912022-07-15 13:12:35 +0000351`)
352 })
353}
354
Jiakai Zhangea180332021-09-26 08:58:02 +0000355func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
356 result := android.GroupFixturePreparers(
357 prepareForSdkTestWithJava,
358 android.FixtureAddFile("aidl", nil),
359 android.FixtureAddFile("resource.txt", nil),
360 ).RunTestWithBp(t, `
361 module_exports {
362 name: "myexports",
363 java_systemserver_libs: ["myjavalib"],
364 }
365
366 java_library {
367 name: "myjavalib",
368 srcs: ["Test.java"],
369 java_resources: ["resource.txt"],
370 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
371 // is not intended to be used for compiling Java, only for accessing the dex implementation
372 // jar.
373 aidl: {
374 export_include_dirs: ["aidl"],
375 },
376 system_modules: "none",
377 sdk_version: "none",
378 compile_dex: true,
379 permitted_packages: ["pkg.myjavalib"],
380 }
381 `)
382
383 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000384 checkAndroidBpContents(`
Jiakai Zhangea180332021-09-26 08:58:02 +0000385// This is auto-generated. DO NOT EDIT.
386
387java_import {
388 name: "myjavalib",
389 prefer: false,
390 visibility: ["//visibility:public"],
391 apex_available: ["//apex_available:platform"],
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000392 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Jiakai Zhangea180332021-09-26 08:58:02 +0000393 permitted_packages: ["pkg.myjavalib"],
394}
395`),
Jiakai Zhangea180332021-09-26 08:58:02 +0000396 checkAllCopyRules(`
Paul Duffin7ed6ff82022-11-21 10:57:30 +0000397.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
Jiakai Zhangea180332021-09-26 08:58:02 +0000398`),
399 )
400}
401
Paul Duffina0dbf432019-12-05 11:25:53 +0000402func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000403 result := android.GroupFixturePreparers(
404 prepareForSdkTestWithJava,
405 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
406 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000407 module_exports {
408 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000409 device_supported: false,
410 host_supported: true,
411 java_libs: ["myjavalib"],
412 }
413
414 java_library {
415 name: "myjavalib",
416 device_supported: false,
417 host_supported: true,
418 srcs: ["Test.java"],
419 aidl: {
420 export_include_dirs: ["aidl"],
421 },
422 system_modules: "none",
423 sdk_version: "none",
424 compile_dex: true,
425 }
426 `)
427
Paul Duffin36474d32021-03-12 12:19:43 +0000428 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000429 checkAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000430// This is auto-generated. DO NOT EDIT.
431
432java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100433 name: "myjavalib",
434 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100435 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000436 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000437 device_supported: false,
438 host_supported: true,
439 jars: ["java/myjavalib.jar"],
440}
Paul Duffine1381882021-04-16 17:05:10 +0100441`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000442 checkAllCopyRules(`
443.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
444aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
445`),
446 )
447}
448
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000449func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000450 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000451 module_exports {
452 name: "myexports",
453 java_tests: ["myjavatests"],
454 }
455
456 java_test {
457 name: "myjavatests",
458 srcs: ["Test.java"],
459 system_modules: "none",
460 sdk_version: "none",
461 compile_dex: true,
462 host_supported: true,
463 }
464 `)
465
Paul Duffin36474d32021-03-12 12:19:43 +0000466 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000467 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000468// This is auto-generated. DO NOT EDIT.
469
470java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100471 name: "myjavatests",
472 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100473 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000474 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000475 jars: ["java/myjavatests.jar"],
476 test_config: "java/myjavatests-AndroidTest.xml",
477}
Paul Duffine1381882021-04-16 17:05:10 +0100478`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000479 checkAllCopyRules(`
480.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
481.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
482`),
483 )
484}
485
486func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000487 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000488 module_exports {
489 name: "myexports",
490 device_supported: false,
491 host_supported: true,
492 java_tests: ["myjavatests"],
493 }
494
495 java_test {
496 name: "myjavatests",
497 device_supported: false,
498 host_supported: true,
499 srcs: ["Test.java"],
500 system_modules: "none",
501 sdk_version: "none",
502 compile_dex: true,
503 }
504 `)
505
Paul Duffin36474d32021-03-12 12:19:43 +0000506 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000507 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000508// This is auto-generated. DO NOT EDIT.
509
510java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100511 name: "myjavatests",
512 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100513 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000514 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000515 device_supported: false,
516 host_supported: true,
517 jars: ["java/myjavatests.jar"],
518 test_config: "java/myjavatests-AndroidTest.xml",
519}
Paul Duffine1381882021-04-16 17:05:10 +0100520`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000521 checkAllCopyRules(`
522.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
523.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
524`),
525 )
526}
527
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000528func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin958806b2022-05-16 13:10:47 +0000529 result := android.GroupFixturePreparers(
530 prepareForSdkTestWithJava,
531 java.PrepareForTestWithJavaDefaultModules,
532 java.PrepareForTestWithJavaSdkLibraryFiles,
533 java.FixtureWithPrebuiltApisAndExtensions(map[string][]string{
534 "31": {"myjavalib"},
535 "32": {"myjavalib"},
536 "current": {"myjavalib"},
537 }, map[string][]string{
538 "1": {"myjavalib"},
539 "2": {"myjavalib"},
540 }),
541 ).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000542 sdk {
543 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000544 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100545 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000546 java_system_modules: ["my-system-modules"],
547 }
548
Paul Duffin33028712021-06-22 11:00:07 +0100549 java_sdk_library {
550 name: "myjavalib",
551 apex_available: ["//apex_available:anyapex"],
552 srcs: ["Test.java"],
553 sdk_version: "current",
554 shared_library: false,
555 public: {
556 enabled: true,
557 },
558 }
559
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000560 java_system_modules {
561 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100562 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000563 }
564
565 java_library {
566 name: "system-module",
567 srcs: ["Test.java"],
568 sdk_version: "none",
569 system_modules: "none",
570 }
Paul Duffin72910952020-01-20 18:16:30 +0000571
572 java_library {
573 name: "exported-system-module",
574 srcs: ["Test.java"],
575 sdk_version: "none",
576 system_modules: "none",
577 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000578 `)
579
Paul Duffin36474d32021-03-12 12:19:43 +0000580 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000581 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000582// This is auto-generated. DO NOT EDIT.
583
584java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100585 name: "exported-system-module",
586 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100587 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000588 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000589 jars: ["java/exported-system-module.jar"],
590}
591
592java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100593 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000594 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100595 visibility: ["//visibility:private"],
596 apex_available: ["//apex_available:platform"],
597 jars: ["java/system-module.jar"],
598}
599
Paul Duffin33028712021-06-22 11:00:07 +0100600java_sdk_library_import {
601 name: "myjavalib",
602 prefer: false,
603 visibility: ["//visibility:public"],
604 apex_available: ["//apex_available:anyapex"],
605 shared_library: false,
606 public: {
607 jars: ["sdk_library/public/myjavalib-stubs.jar"],
608 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
609 current_api: "sdk_library/public/myjavalib.txt",
610 removed_api: "sdk_library/public/myjavalib-removed.txt",
611 sdk_version: "current",
612 },
613}
614
Paul Duffine1381882021-04-16 17:05:10 +0100615java_system_modules_import {
616 name: "my-system-modules",
617 prefer: false,
618 visibility: ["//visibility:public"],
619 libs: [
620 "mysdk_system-module",
621 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100622 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100623 ],
624}
625`),
Paul Duffin72910952020-01-20 18:16:30 +0000626 checkAllCopyRules(`
627.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
628.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100629.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
630.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
631.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 +0000632`),
Paul Duffin958806b2022-05-16 13:10:47 +0000633 checkInfoContents(result.Config, `
Paul Duffinc6ba1822022-05-06 09:38:02 +0000634[
635 {
636 "@type": "sdk",
637 "@name": "mysdk",
638 "java_header_libs": [
639 "exported-system-module",
640 "system-module"
641 ],
642 "java_sdk_libs": [
643 "myjavalib"
644 ],
645 "java_system_modules": [
646 "my-system-modules"
647 ]
648 },
649 {
650 "@type": "java_library",
651 "@name": "exported-system-module"
652 },
653 {
654 "@type": "java_system_modules",
655 "@name": "my-system-modules",
656 "@deps": [
657 "exported-system-module",
658 "system-module"
659 ]
660 },
661 {
662 "@type": "java_sdk_library",
Paul Duffin958806b2022-05-16 13:10:47 +0000663 "@name": "myjavalib",
664 "dist_stem": "myjavalib",
665 "scopes": {
666 "public": {
667 "current_api": "sdk_library/public/myjavalib.txt",
668 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.public.latest/gen/myjavalib.api.public.latest",
669 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.public.latest/gen/myjavalib-removed.api.public.latest",
670 "removed_api": "sdk_library/public/myjavalib-removed.txt"
671 }
672 }
Paul Duffinc6ba1822022-05-06 09:38:02 +0000673 },
674 {
675 "@type": "java_library",
676 "@name": "system-module"
677 }
678]
679`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000680 )
681}
682
683func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000684 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000685 sdk {
686 name: "mysdk",
687 device_supported: false,
688 host_supported: true,
689 java_system_modules: ["my-system-modules"],
690 }
691
692 java_system_modules {
693 name: "my-system-modules",
694 device_supported: false,
695 host_supported: true,
696 libs: ["system-module"],
697 }
698
699 java_library {
700 name: "system-module",
701 device_supported: false,
702 host_supported: true,
703 srcs: ["Test.java"],
704 sdk_version: "none",
705 system_modules: "none",
706 }
707 `)
708
Paul Duffin36474d32021-03-12 12:19:43 +0000709 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000710 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000711// This is auto-generated. DO NOT EDIT.
712
713java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100714 name: "mysdk_system-module",
715 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000716 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000717 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000718 device_supported: false,
719 host_supported: true,
720 jars: ["java/system-module.jar"],
721}
722
Paul Duffine1381882021-04-16 17:05:10 +0100723java_system_modules_import {
724 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000725 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100726 visibility: ["//visibility:public"],
727 device_supported: false,
728 host_supported: true,
729 libs: ["mysdk_system-module"],
730}
731`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000732 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
733 )
734}
Paul Duffin865171e2020-03-02 18:38:15 +0000735
736func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000737 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000738 module_exports {
739 name: "myexports",
740 host_supported: true,
741 java_libs: ["myjavalib"],
742 target: {
743 android: {
744 java_header_libs: ["androidjavalib"],
745 },
746 host: {
747 java_header_libs: ["hostjavalib"],
748 },
749 },
750 }
751
752 java_library {
753 name: "myjavalib",
754 host_supported: true,
755 srcs: ["Test.java"],
756 system_modules: "none",
757 sdk_version: "none",
758 }
759
760 java_library {
761 name: "androidjavalib",
762 srcs: ["Test.java"],
763 system_modules: "none",
764 sdk_version: "none",
765 }
766
767 java_library_host {
768 name: "hostjavalib",
769 srcs: ["Test.java"],
770 }
771 `)
772
Paul Duffin36474d32021-03-12 12:19:43 +0000773 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000774 checkAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000775// This is auto-generated. DO NOT EDIT.
776
777java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100778 name: "hostjavalib",
779 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100780 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000781 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000782 device_supported: false,
783 host_supported: true,
784 jars: ["java/hostjavalib.jar"],
785}
786
787java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100788 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000789 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100790 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000791 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100792 jars: ["java/androidjavalib.jar"],
793}
794
795java_import {
796 name: "myjavalib",
797 prefer: false,
798 visibility: ["//visibility:public"],
799 apex_available: ["//apex_available:platform"],
800 host_supported: true,
801 target: {
802 android: {
803 jars: ["java/android/myjavalib.jar"],
804 },
805 linux_glibc: {
806 jars: ["java/linux_glibc/myjavalib.jar"],
807 },
808 },
809}
810`),
Paul Duffin865171e2020-03-02 18:38:15 +0000811 checkAllCopyRules(`
812.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
813.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
814.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
815.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
816`),
817 )
818}
Paul Duffindd46f712020-02-10 13:37:10 +0000819
820func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000821 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +0000822 sdk {
823 name: "mysdk",
824 java_sdk_libs: ["myjavalib"],
825 }
826
827 java_sdk_library {
828 name: "myjavalib",
829 apex_available: ["//apex_available:anyapex"],
830 srcs: ["Test.java"],
831 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100832 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100833 stubs_library_visibility: ["//other"],
834 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +0100835 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000836 }
837 `)
838
Paul Duffin36474d32021-03-12 12:19:43 +0000839 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000840 checkAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +0000841// This is auto-generated. DO NOT EDIT.
842
843java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +0100844 name: "myjavalib",
845 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100846 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000847 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100848 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +0100849 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000850 public: {
851 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000852 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100853 current_api: "sdk_library/public/myjavalib.txt",
854 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000855 sdk_version: "current",
856 },
857 system: {
858 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000859 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100860 current_api: "sdk_library/system/myjavalib.txt",
861 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000862 sdk_version: "system_current",
863 },
864 test: {
865 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000866 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100867 current_api: "sdk_library/test/myjavalib.txt",
868 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000869 sdk_version: "test_current",
870 },
871}
Paul Duffine1381882021-04-16 17:05:10 +0100872`),
Paul Duffindd46f712020-02-10 13:37:10 +0000873 checkAllCopyRules(`
874.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700875.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
876.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 +0000877.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700878.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
879.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 +0000880.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700881.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
882.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 +0000883`),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100884 checkMergeZips(
885 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
886 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +0100887 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
888 ),
Paul Duffindd46f712020-02-10 13:37:10 +0000889 )
890}
Paul Duffin3375e352020-04-28 10:44:03 +0100891
Paul Duffine8409952022-09-22 16:24:46 +0100892func TestSnapshotWithJavaSdkLibrary_DistStem(t *testing.T) {
893 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
894 sdk {
895 name: "mysdk",
896 java_sdk_libs: ["myjavalib-foo"],
897 }
898
899 java_sdk_library {
900 name: "myjavalib-foo",
901 apex_available: ["//apex_available:anyapex"],
902 srcs: ["Test.java"],
903 sdk_version: "current",
904 shared_library: false,
905 public: {
906 enabled: true,
907 },
908 dist_stem: "myjavalib",
909 }
910 `)
911
912 CheckSnapshot(t, result, "mysdk", "",
913 checkAndroidBpContents(`
914// This is auto-generated. DO NOT EDIT.
915
916java_sdk_library_import {
917 name: "myjavalib-foo",
918 prefer: false,
919 visibility: ["//visibility:public"],
920 apex_available: ["//apex_available:anyapex"],
921 shared_library: false,
922 public: {
923 jars: ["sdk_library/public/myjavalib-stubs.jar"],
924 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
925 current_api: "sdk_library/public/myjavalib.txt",
926 removed_api: "sdk_library/public/myjavalib-removed.txt",
927 sdk_version: "current",
928 },
929}
930`),
931 checkAllCopyRules(`
932.intermediates/myjavalib-foo.stubs/android_common/javac/myjavalib-foo.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
933.intermediates/myjavalib-foo.stubs.source/android_common/metalava/myjavalib-foo.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
934.intermediates/myjavalib-foo.stubs.source/android_common/metalava/myjavalib-foo.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
935`),
936 checkMergeZips(
937 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
938 ),
939 )
940}
941
Paul Duffin22628d52021-05-12 23:13:22 +0100942func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
943 result := android.GroupFixturePreparers(
944 prepareForSdkTestWithJavaSdkLibrary,
945 android.FixtureMergeEnv(map[string]string{
946 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
947 }),
948 ).RunTestWithBp(t, `
949 sdk {
950 name: "mysdk",
951 java_sdk_libs: ["myjavalib"],
952 }
953
954 java_sdk_library {
955 name: "myjavalib",
956 srcs: ["Test.java"],
957 sdk_version: "current",
958 shared_library: false,
959 public: {
960 enabled: true,
961 },
962 }
963 `)
964
965 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000966 checkAndroidBpContents(`
Paul Duffin22628d52021-05-12 23:13:22 +0100967// This is auto-generated. DO NOT EDIT.
968
969java_sdk_library_import {
970 name: "myjavalib",
971 prefer: false,
972 visibility: ["//visibility:public"],
973 apex_available: ["//apex_available:platform"],
974 shared_library: false,
975 public: {
976 jars: ["sdk_library/public/myjavalib-stubs.jar"],
977 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
978 current_api: "sdk_library/public/myjavalib.txt",
979 removed_api: "sdk_library/public/myjavalib-removed.txt",
980 sdk_version: "current",
981 },
982}
983 `),
984 checkAllCopyRules(`
985.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
986.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
987.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
988.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
989 `),
990 )
991}
992
Anton Hanssond78eb762021-09-21 15:25:12 +0100993func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
994 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
995 sdk {
996 name: "mysdk",
997 java_sdk_libs: ["myjavalib"],
998 }
999
1000 java_sdk_library {
1001 name: "myjavalib",
1002 srcs: ["Test.java"],
1003 sdk_version: "current",
1004 shared_library: false,
1005 annotations_enabled: true,
1006 public: {
1007 enabled: true,
1008 },
1009 }
1010 `)
1011
1012 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001013 checkAndroidBpContents(`
Anton Hanssond78eb762021-09-21 15:25:12 +01001014// This is auto-generated. DO NOT EDIT.
1015
1016java_sdk_library_import {
1017 name: "myjavalib",
1018 prefer: false,
1019 visibility: ["//visibility:public"],
1020 apex_available: ["//apex_available:platform"],
1021 shared_library: false,
1022 public: {
1023 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1024 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1025 current_api: "sdk_library/public/myjavalib.txt",
1026 removed_api: "sdk_library/public/myjavalib-removed.txt",
1027 annotations: "sdk_library/public/myjavalib_annotations.zip",
1028 sdk_version: "current",
1029 },
1030}
1031 `),
1032 checkAllCopyRules(`
1033.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1034.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1035.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1036.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
1037 `),
1038 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1039 )
1040}
1041
Paul Duffina54016c2022-01-27 16:39:47 +00001042func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
1043 result := android.GroupFixturePreparers(
1044 prepareForSdkTestWithJavaSdkLibrary,
1045 android.FixtureMergeEnv(map[string]string{
1046 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1047 }),
1048 ).RunTestWithBp(t, `
1049 sdk {
1050 name: "mysdk",
1051 java_sdk_libs: ["myjavalib"],
1052 }
1053
1054 java_sdk_library {
1055 name: "myjavalib",
1056 srcs: ["Test.java"],
Paul Duffin1938dba2022-07-26 23:53:00 +00001057 sdk_version: "S",
Paul Duffina54016c2022-01-27 16:39:47 +00001058 shared_library: false,
1059 annotations_enabled: true,
1060 public: {
1061 enabled: true,
1062 },
1063 }
1064 `)
1065
1066 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001067 checkAndroidBpContents(`
Paul Duffina54016c2022-01-27 16:39:47 +00001068// This is auto-generated. DO NOT EDIT.
1069
1070java_sdk_library_import {
1071 name: "myjavalib",
1072 prefer: false,
1073 visibility: ["//visibility:public"],
1074 apex_available: ["//apex_available:platform"],
1075 shared_library: false,
1076 public: {
1077 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1078 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1079 current_api: "sdk_library/public/myjavalib.txt",
1080 removed_api: "sdk_library/public/myjavalib-removed.txt",
1081 sdk_version: "current",
1082 },
1083}
1084 `),
1085 checkAllCopyRules(`
1086.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1087.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1088.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1089 `),
1090 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1091 )
1092}
1093
Paul Duffin1267d872021-04-16 17:21:36 +01001094func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1095 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1096 sdk {
1097 name: "mysdk",
1098 java_sdk_libs: ["myjavalib"],
1099 }
1100
1101 java_sdk_library {
1102 name: "myjavalib",
1103 srcs: ["Test.java"],
1104 sdk_version: "current",
1105 shared_library: false,
1106 compile_dex: true,
1107 public: {
1108 enabled: true,
1109 },
1110 system: {
1111 enabled: true,
1112 },
1113 }
1114 `)
1115
1116 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001117 checkAndroidBpContents(`
Paul Duffin1267d872021-04-16 17:21:36 +01001118// This is auto-generated. DO NOT EDIT.
1119
1120java_sdk_library_import {
1121 name: "myjavalib",
1122 prefer: false,
1123 visibility: ["//visibility:public"],
1124 apex_available: ["//apex_available:platform"],
1125 shared_library: false,
1126 compile_dex: true,
1127 public: {
1128 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1129 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1130 current_api: "sdk_library/public/myjavalib.txt",
1131 removed_api: "sdk_library/public/myjavalib-removed.txt",
1132 sdk_version: "current",
1133 },
1134 system: {
1135 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1136 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1137 current_api: "sdk_library/system/myjavalib.txt",
1138 removed_api: "sdk_library/system/myjavalib-removed.txt",
1139 sdk_version: "system_current",
1140 },
1141}
1142`),
1143 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1144 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1145 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1146 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001147 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001148 return path.RelativeToTop().String()
1149 }
1150
1151 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1152 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1153
1154 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1155 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1156 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1157
1158 // This should fall back to system as module is not available.
1159 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1160 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1161
1162 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1163 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1164 }),
1165 )
1166}
1167
Paul Duffin780c5f42020-05-12 15:52:55 +01001168func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001169 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001170 sdk {
1171 name: "mysdk",
1172 java_sdk_libs: ["myjavalib"],
1173 }
1174
1175 java_sdk_library {
1176 name: "myjavalib",
1177 srcs: ["Test.java"],
1178 sdk_version: "none",
1179 system_modules: "none",
1180 }
1181 `)
1182
Paul Duffin36474d32021-03-12 12:19:43 +00001183 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001184 checkAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001185// This is auto-generated. DO NOT EDIT.
1186
1187java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001188 name: "myjavalib",
1189 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001190 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001191 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001192 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001193 public: {
1194 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001195 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001196 current_api: "sdk_library/public/myjavalib.txt",
1197 removed_api: "sdk_library/public/myjavalib-removed.txt",
1198 sdk_version: "none",
1199 },
1200}
Paul Duffine1381882021-04-16 17:05:10 +01001201`),
Paul Duffin780c5f42020-05-12 15:52:55 +01001202 checkAllCopyRules(`
1203.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001204.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1205.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 +01001206`),
1207 checkMergeZips(
1208 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1209 ),
1210 )
1211}
1212
Paul Duffin87a05a32020-05-12 11:50:28 +01001213func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001214 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001215 sdk {
1216 name: "mysdk",
1217 java_sdk_libs: ["myjavalib"],
1218 }
1219
1220 java_sdk_library {
1221 name: "myjavalib",
1222 srcs: ["Test.java"],
1223 sdk_version: "module_current",
1224 public: {
1225 enabled: true,
1226 sdk_version: "module_current",
1227 },
1228 }
1229 `)
1230
Paul Duffin36474d32021-03-12 12:19:43 +00001231 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001232 checkAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001233// This is auto-generated. DO NOT EDIT.
1234
1235java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001236 name: "myjavalib",
1237 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001238 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001239 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001240 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001241 public: {
1242 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001243 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001244 current_api: "sdk_library/public/myjavalib.txt",
1245 removed_api: "sdk_library/public/myjavalib-removed.txt",
1246 sdk_version: "module_current",
1247 },
1248}
Paul Duffine1381882021-04-16 17:05:10 +01001249`),
Paul Duffin87a05a32020-05-12 11:50:28 +01001250 checkAllCopyRules(`
1251.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001252.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1253.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 +01001254`),
1255 checkMergeZips(
1256 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1257 ),
1258 )
1259}
1260
1261func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001262 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001263 sdk {
1264 name: "mysdk",
1265 java_sdk_libs: ["myjavalib"],
1266 }
1267
1268 java_sdk_library {
1269 name: "myjavalib",
1270 apex_available: ["//apex_available:anyapex"],
1271 srcs: ["Test.java"],
1272 sdk_version: "current",
1273 public: {
1274 enabled: true,
1275 },
1276 system: {
1277 enabled: true,
1278 },
1279 }
1280 `)
1281
Paul Duffin36474d32021-03-12 12:19:43 +00001282 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001283 checkAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001284// This is auto-generated. DO NOT EDIT.
1285
1286java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001287 name: "myjavalib",
1288 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001289 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001290 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001291 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001292 public: {
1293 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001294 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001295 current_api: "sdk_library/public/myjavalib.txt",
1296 removed_api: "sdk_library/public/myjavalib-removed.txt",
1297 sdk_version: "current",
1298 },
1299 system: {
1300 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001301 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001302 current_api: "sdk_library/system/myjavalib.txt",
1303 removed_api: "sdk_library/system/myjavalib-removed.txt",
1304 sdk_version: "system_current",
1305 },
1306}
Paul Duffine1381882021-04-16 17:05:10 +01001307`),
Paul Duffin3375e352020-04-28 10:44:03 +01001308 checkAllCopyRules(`
1309.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001310.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1311.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 +01001312.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001313.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1314.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 +01001315`),
1316 checkMergeZips(
1317 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1318 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1319 ),
1320 )
1321}
Paul Duffin8f265b92020-04-28 14:13:56 +01001322
1323func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001324 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001325 sdk {
1326 name: "mysdk",
1327 java_sdk_libs: ["myjavalib"],
1328 }
1329
1330 java_sdk_library {
1331 name: "myjavalib",
1332 apex_available: ["//apex_available:anyapex"],
1333 srcs: ["Test.java"],
1334 sdk_version: "current",
1335 public: {
1336 enabled: true,
1337 },
1338 system: {
1339 enabled: true,
1340 },
1341 module_lib: {
1342 enabled: true,
1343 },
1344 }
1345 `)
1346
Paul Duffin36474d32021-03-12 12:19:43 +00001347 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001348 checkAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001349// This is auto-generated. DO NOT EDIT.
1350
1351java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001352 name: "myjavalib",
1353 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001354 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001355 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001356 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001357 public: {
1358 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001359 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001360 current_api: "sdk_library/public/myjavalib.txt",
1361 removed_api: "sdk_library/public/myjavalib-removed.txt",
1362 sdk_version: "current",
1363 },
1364 system: {
1365 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001366 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001367 current_api: "sdk_library/system/myjavalib.txt",
1368 removed_api: "sdk_library/system/myjavalib-removed.txt",
1369 sdk_version: "system_current",
1370 },
1371 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001372 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001373 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001374 current_api: "sdk_library/module-lib/myjavalib.txt",
1375 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001376 sdk_version: "module_current",
1377 },
1378}
Paul Duffine1381882021-04-16 17:05:10 +01001379`),
Paul Duffin8f265b92020-04-28 14:13:56 +01001380 checkAllCopyRules(`
1381.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001382.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1383.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 +01001384.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001385.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1386.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 +01001387.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 -07001388.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1389.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 +01001390`),
1391 checkMergeZips(
Paul Duffin74f1dcd2022-07-18 13:18:23 +00001392 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001393 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1394 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001395 ),
1396 )
1397}
Paul Duffinf7a64332020-05-13 16:54:55 +01001398
Paul Duffin0c5bae52020-06-02 13:00:08 +01001399func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001400 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001401 sdk {
1402 name: "mysdk",
1403 java_sdk_libs: ["myjavalib"],
1404 }
1405
1406 java_sdk_library {
1407 name: "myjavalib",
1408 apex_available: ["//apex_available:anyapex"],
1409 srcs: ["Test.java"],
1410 sdk_version: "current",
1411 public: {
1412 enabled: true,
1413 },
1414 system_server: {
1415 enabled: true,
1416 },
1417 }
1418 `)
1419
Paul Duffin36474d32021-03-12 12:19:43 +00001420 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001421 checkAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001422// This is auto-generated. DO NOT EDIT.
1423
1424java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001425 name: "myjavalib",
1426 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001427 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001428 apex_available: ["//apex_available:anyapex"],
1429 shared_library: true,
1430 public: {
1431 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001432 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001433 current_api: "sdk_library/public/myjavalib.txt",
1434 removed_api: "sdk_library/public/myjavalib-removed.txt",
1435 sdk_version: "current",
1436 },
1437 system_server: {
1438 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001439 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001440 current_api: "sdk_library/system-server/myjavalib.txt",
1441 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1442 sdk_version: "system_server_current",
1443 },
1444}
Paul Duffine1381882021-04-16 17:05:10 +01001445`),
Paul Duffin0c5bae52020-06-02 13:00:08 +01001446 checkAllCopyRules(`
1447.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001448.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1449.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 +01001450.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 -07001451.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1452.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 +01001453`),
1454 checkMergeZips(
1455 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1456 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1457 ),
1458 )
1459}
1460
Paul Duffinf7a64332020-05-13 16:54:55 +01001461func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001462 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001463 sdk {
1464 name: "mysdk",
1465 java_sdk_libs: ["myjavalib"],
1466 }
1467
1468 java_sdk_library {
1469 name: "myjavalib",
1470 apex_available: ["//apex_available:anyapex"],
1471 srcs: ["Test.java"],
1472 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001473 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001474 public: {
1475 enabled: true,
1476 },
1477 }
1478 `)
1479
Paul Duffin36474d32021-03-12 12:19:43 +00001480 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001481 checkAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001482// This is auto-generated. DO NOT EDIT.
1483
1484java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001485 name: "myjavalib",
1486 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001487 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001488 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001489 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001490 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001491 public: {
1492 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001493 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001494 current_api: "sdk_library/public/myjavalib.txt",
1495 removed_api: "sdk_library/public/myjavalib-removed.txt",
1496 sdk_version: "current",
1497 },
1498}
Paul Duffine1381882021-04-16 17:05:10 +01001499`),
Paul Duffinf7a64332020-05-13 16:54:55 +01001500 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001501.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001502.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1503.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 +01001504`),
1505 checkMergeZips(
1506 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1507 ),
1508 )
1509}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001510
1511func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001512 result := android.GroupFixturePreparers(
1513 prepareForSdkTestWithJavaSdkLibrary,
1514 android.FixtureAddFile("docs/known_doctags", nil),
1515 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001516 sdk {
1517 name: "mysdk",
1518 java_sdk_libs: ["myjavalib"],
1519 }
1520
1521 java_sdk_library {
1522 name: "myjavalib",
1523 srcs: ["Test.java"],
1524 sdk_version: "current",
1525 public: {
1526 enabled: true,
1527 },
1528 doctag_files: ["docs/known_doctags"],
1529 }
1530
1531 filegroup {
1532 name: "mygroup",
1533 srcs: [":myjavalib{.doctags}"],
1534 }
1535 `)
1536
Paul Duffin36474d32021-03-12 12:19:43 +00001537 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001538 checkAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001539// This is auto-generated. DO NOT EDIT.
1540
1541java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001542 name: "myjavalib",
1543 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001544 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001545 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001546 shared_library: true,
1547 doctag_files: ["doctags/docs/known_doctags"],
1548 public: {
1549 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001550 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001551 current_api: "sdk_library/public/myjavalib.txt",
1552 removed_api: "sdk_library/public/myjavalib-removed.txt",
1553 sdk_version: "current",
1554 },
1555}
Paul Duffine1381882021-04-16 17:05:10 +01001556`),
Paul Duffina2ae7e02020-09-11 11:55:00 +01001557 checkAllCopyRules(`
1558.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001559.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1560.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 +01001561docs/known_doctags -> doctags/docs/known_doctags
1562`),
1563 )
1564}