blob: d25138f5b0ad1b6e8f730e93fbb655a1a5415cf8 [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 (
18 "testing"
Paul Duffincee7e662020-07-09 17:32:57 +010019
Paul Duffin4a2a29c2021-03-09 22:27:13 +000020 "android/soong/android"
Paul Duffincee7e662020-07-09 17:32:57 +010021 "android/soong/java"
Paul Duffina80fdec2019-12-03 15:25:00 +000022)
23
Paul Duffind14cbc12021-03-18 09:14:23 +000024var prepareForSdkTestWithJava = android.GroupFixturePreparers(
25 java.PrepareForTestWithJavaBuildComponents,
26 PrepareForTestWithSdkBuildComponents,
Paul Duffindb462dd2021-03-21 22:01:55 +000027
28 // Ensure that all source paths are provided. This helps ensure that the snapshot generation is
29 // consistent and all files referenced from the snapshot's Android.bp file have actually been
30 // copied into the snapshot.
31 android.PrepareForTestDisallowNonExistentPaths,
32
33 // Files needs by most of the tests.
34 android.MockFS{
35 "Test.java": nil,
36 }.AddToFixture(),
Paul Duffind14cbc12021-03-18 09:14:23 +000037)
38
Paul Duffin9ec86b12021-03-15 11:17:52 +000039var prepareForSdkTestWithJavaSdkLibrary = android.GroupFixturePreparers(
40 prepareForSdkTestWithJava,
41 java.PrepareForTestWithJavaDefaultModules,
42 java.PrepareForTestWithJavaSdkLibraryFiles,
43 java.FixtureWithLastReleaseApis("myjavalib"),
44)
45
Paul Duffina80fdec2019-12-03 15:25:00 +000046// Contains tests for SDK members provided by the java package.
47
Paul Duffincee7e662020-07-09 17:32:57 +010048func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000049 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +010050 sdk {
51 name: "mysdk",
52 java_header_libs: ["sdkmember"],
53 }
54
55 java_library {
56 name: "sdkmember",
57 srcs: ["Test.java"],
58 system_modules: "none",
59 sdk_version: "none",
60 }
Paul Duffincee7e662020-07-09 17:32:57 +010061 `)
62
63 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin1822a0a2021-03-21 12:56:33 +000064 sdkChecker := func(t *testing.T, result *android.TestResult) {
65 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
66 }
Paul Duffincee7e662020-07-09 17:32:57 +010067
Paul Duffin36474d32021-03-12 12:19:43 +000068 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin1822a0a2021-03-21 12:56:33 +000069 snapshotTestChecker(checkSnapshotWithSourcePreferred, sdkChecker),
70 snapshotTestChecker(checkSnapshotPreferredWithSource, sdkChecker),
71 )
Paul Duffincee7e662020-07-09 17:32:57 +010072}
73
Paul Duffina0dbf432019-12-05 11:25:53 +000074func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000075 result := android.GroupFixturePreparers(
76 prepareForSdkTestWithJava,
77 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
78 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +000079 sdk {
80 name: "mysdk",
81 java_header_libs: ["myjavalib"],
82 }
83
84 java_library {
85 name: "myjavalib",
86 srcs: ["Test.java"],
87 aidl: {
88 export_include_dirs: ["aidl"],
89 },
90 system_modules: "none",
91 sdk_version: "none",
92 compile_dex: true,
93 host_supported: true,
Paul Duffin869de142021-07-15 14:14:41 +010094 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +000095 }
96 `)
97
Paul Duffin36474d32021-03-12 12:19:43 +000098 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +000099 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100100// This is auto-generated. DO NOT EDIT.
101
102java_import {
103 name: "myjavalib",
104 prefer: false,
105 visibility: ["//visibility:public"],
106 apex_available: ["//apex_available:platform"],
107 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100108 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100109}
110`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000111 checkAllCopyRules(`
112.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
113aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
114`),
115 )
116}
117
118func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000119 result := android.GroupFixturePreparers(
120 prepareForSdkTestWithJava,
121 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
122 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000123 sdk {
124 name: "mysdk",
125 device_supported: false,
126 host_supported: true,
127 java_header_libs: ["myjavalib"],
128 }
129
130 java_library {
131 name: "myjavalib",
132 device_supported: false,
133 host_supported: true,
134 srcs: ["Test.java"],
135 aidl: {
136 export_include_dirs: ["aidl"],
137 },
138 system_modules: "none",
139 sdk_version: "none",
140 compile_dex: true,
141 }
142 `)
143
Paul Duffin36474d32021-03-12 12:19:43 +0000144 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000145 checkAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000146// This is auto-generated. DO NOT EDIT.
147
148java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100149 name: "myjavalib",
150 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100151 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000152 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000153 device_supported: false,
154 host_supported: true,
155 jars: ["java/myjavalib.jar"],
156}
Paul Duffine1381882021-04-16 17:05:10 +0100157`),
Paul Duffina0dbf432019-12-05 11:25:53 +0000158 checkAllCopyRules(`
159.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
160aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
161`),
162 )
163}
164
Paul Duffina04c1072020-03-02 10:16:35 +0000165func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000166 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000167 sdk {
168 name: "mysdk",
169 host_supported: true,
170 java_header_libs: ["myjavalib"],
171 }
172
173 java_library {
174 name: "myjavalib",
175 host_supported: true,
176 srcs: ["Test.java"],
177 system_modules: "none",
178 sdk_version: "none",
179 compile_dex: true,
180 }
181 `)
182
Paul Duffin36474d32021-03-12 12:19:43 +0000183 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000184 checkAndroidBpContents(`
Paul Duffina04c1072020-03-02 10:16:35 +0000185// This is auto-generated. DO NOT EDIT.
186
187java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100188 name: "myjavalib",
189 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100190 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000191 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000192 host_supported: true,
193 target: {
194 android: {
195 jars: ["java/android/myjavalib.jar"],
196 },
197 linux_glibc: {
198 jars: ["java/linux_glibc/myjavalib.jar"],
199 },
200 },
201}
Paul Duffine1381882021-04-16 17:05:10 +0100202`),
Paul Duffina04c1072020-03-02 10:16:35 +0000203 checkAllCopyRules(`
204.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
205.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
206`),
207 )
208}
209
Paul Duffina0dbf432019-12-05 11:25:53 +0000210func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000211 result := android.GroupFixturePreparers(
212 prepareForSdkTestWithJava,
213 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000214 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000215 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000216 module_exports {
217 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000218 java_libs: ["myjavalib"],
219 }
220
221 java_library {
222 name: "myjavalib",
223 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100224 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000225 aidl: {
226 export_include_dirs: ["aidl"],
227 },
228 system_modules: "none",
229 sdk_version: "none",
230 compile_dex: true,
231 host_supported: true,
232 }
233 `)
234
Paul Duffin36474d32021-03-12 12:19:43 +0000235 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000236 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100237// This is auto-generated. DO NOT EDIT.
238
239java_import {
240 name: "myjavalib",
241 prefer: false,
242 visibility: ["//visibility:public"],
243 apex_available: ["//apex_available:platform"],
244 jars: ["java/myjavalib.jar"],
245}
246`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000247 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100248.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000249aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
250`),
251 )
252}
253
Paul Duffindb170e42020-12-08 17:48:25 +0000254func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +0000255 result := android.GroupFixturePreparers(
256 prepareForSdkTestWithJava,
257 android.FixtureAddFile("aidl", nil),
258 android.FixtureAddFile("resource.txt", nil),
259 ).RunTestWithBp(t, `
Paul Duffindb170e42020-12-08 17:48:25 +0000260 module_exports {
261 name: "myexports",
262 java_boot_libs: ["myjavalib"],
263 }
264
265 java_library {
266 name: "myjavalib",
267 srcs: ["Test.java"],
268 java_resources: ["resource.txt"],
269 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
270 // intended to be used for compiling Java, only for accessing the dex implementation jar.
271 aidl: {
272 export_include_dirs: ["aidl"],
273 },
274 system_modules: "none",
275 sdk_version: "none",
276 compile_dex: true,
Paul Duffin869de142021-07-15 14:14:41 +0100277 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000278 }
279 `)
280
Paul Duffin36474d32021-03-12 12:19:43 +0000281 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000282 checkAndroidBpContents(`
Paul Duffine1381882021-04-16 17:05:10 +0100283// This is auto-generated. DO NOT EDIT.
284
285java_import {
286 name: "myjavalib",
287 prefer: false,
288 visibility: ["//visibility:public"],
289 apex_available: ["//apex_available:platform"],
Paul Duffin5c211452021-07-15 12:42:44 +0100290 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100291 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100292}
293`),
Paul Duffindb170e42020-12-08 17:48:25 +0000294 checkAllCopyRules(`
Paul Duffin5c211452021-07-15 12:42:44 +0100295.intermediates/myexports/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000296`),
297 )
298}
299
Jiakai Zhangea180332021-09-26 08:58:02 +0000300func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
301 result := android.GroupFixturePreparers(
302 prepareForSdkTestWithJava,
303 android.FixtureAddFile("aidl", nil),
304 android.FixtureAddFile("resource.txt", nil),
305 ).RunTestWithBp(t, `
306 module_exports {
307 name: "myexports",
308 java_systemserver_libs: ["myjavalib"],
309 }
310
311 java_library {
312 name: "myjavalib",
313 srcs: ["Test.java"],
314 java_resources: ["resource.txt"],
315 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
316 // is not intended to be used for compiling Java, only for accessing the dex implementation
317 // jar.
318 aidl: {
319 export_include_dirs: ["aidl"],
320 },
321 system_modules: "none",
322 sdk_version: "none",
323 compile_dex: true,
324 permitted_packages: ["pkg.myjavalib"],
325 }
326 `)
327
328 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000329 checkAndroidBpContents(`
Jiakai Zhangea180332021-09-26 08:58:02 +0000330// This is auto-generated. DO NOT EDIT.
331
332java_import {
333 name: "myjavalib",
334 prefer: false,
335 visibility: ["//visibility:public"],
336 apex_available: ["//apex_available:platform"],
337 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
338 permitted_packages: ["pkg.myjavalib"],
339}
340`),
Jiakai Zhangea180332021-09-26 08:58:02 +0000341 checkAllCopyRules(`
342.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
343`),
344 )
345}
346
Paul Duffina0dbf432019-12-05 11:25:53 +0000347func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000348 result := android.GroupFixturePreparers(
349 prepareForSdkTestWithJava,
350 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
351 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000352 module_exports {
353 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000354 device_supported: false,
355 host_supported: true,
356 java_libs: ["myjavalib"],
357 }
358
359 java_library {
360 name: "myjavalib",
361 device_supported: false,
362 host_supported: true,
363 srcs: ["Test.java"],
364 aidl: {
365 export_include_dirs: ["aidl"],
366 },
367 system_modules: "none",
368 sdk_version: "none",
369 compile_dex: true,
370 }
371 `)
372
Paul Duffin36474d32021-03-12 12:19:43 +0000373 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000374 checkAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000375// This is auto-generated. DO NOT EDIT.
376
377java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100378 name: "myjavalib",
379 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100380 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000381 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000382 device_supported: false,
383 host_supported: true,
384 jars: ["java/myjavalib.jar"],
385}
Paul Duffine1381882021-04-16 17:05:10 +0100386`),
Paul Duffina80fdec2019-12-03 15:25:00 +0000387 checkAllCopyRules(`
388.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
389aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
390`),
391 )
392}
393
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000394func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000395 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000396 module_exports {
397 name: "myexports",
398 java_tests: ["myjavatests"],
399 }
400
401 java_test {
402 name: "myjavatests",
403 srcs: ["Test.java"],
404 system_modules: "none",
405 sdk_version: "none",
406 compile_dex: true,
407 host_supported: true,
408 }
409 `)
410
Paul Duffin36474d32021-03-12 12:19:43 +0000411 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000412 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000413// This is auto-generated. DO NOT EDIT.
414
415java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100416 name: "myjavatests",
417 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100418 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000419 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000420 jars: ["java/myjavatests.jar"],
421 test_config: "java/myjavatests-AndroidTest.xml",
422}
Paul Duffine1381882021-04-16 17:05:10 +0100423`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000424 checkAllCopyRules(`
425.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
426.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
427`),
428 )
429}
430
431func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000432 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000433 module_exports {
434 name: "myexports",
435 device_supported: false,
436 host_supported: true,
437 java_tests: ["myjavatests"],
438 }
439
440 java_test {
441 name: "myjavatests",
442 device_supported: false,
443 host_supported: true,
444 srcs: ["Test.java"],
445 system_modules: "none",
446 sdk_version: "none",
447 compile_dex: true,
448 }
449 `)
450
Paul Duffin36474d32021-03-12 12:19:43 +0000451 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000452 checkAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000453// This is auto-generated. DO NOT EDIT.
454
455java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100456 name: "myjavatests",
457 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100458 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000459 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000460 device_supported: false,
461 host_supported: true,
462 jars: ["java/myjavatests.jar"],
463 test_config: "java/myjavatests-AndroidTest.xml",
464}
Paul Duffine1381882021-04-16 17:05:10 +0100465`),
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000466 checkAllCopyRules(`
467.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
468.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
469`),
470 )
471}
472
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000473func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin958806b2022-05-16 13:10:47 +0000474 result := android.GroupFixturePreparers(
475 prepareForSdkTestWithJava,
476 java.PrepareForTestWithJavaDefaultModules,
477 java.PrepareForTestWithJavaSdkLibraryFiles,
478 java.FixtureWithPrebuiltApisAndExtensions(map[string][]string{
479 "31": {"myjavalib"},
480 "32": {"myjavalib"},
481 "current": {"myjavalib"},
482 }, map[string][]string{
483 "1": {"myjavalib"},
484 "2": {"myjavalib"},
485 }),
486 ).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000487 sdk {
488 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000489 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100490 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000491 java_system_modules: ["my-system-modules"],
492 }
493
Paul Duffin33028712021-06-22 11:00:07 +0100494 java_sdk_library {
495 name: "myjavalib",
496 apex_available: ["//apex_available:anyapex"],
497 srcs: ["Test.java"],
498 sdk_version: "current",
499 shared_library: false,
500 public: {
501 enabled: true,
502 },
503 }
504
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000505 java_system_modules {
506 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100507 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000508 }
509
510 java_library {
511 name: "system-module",
512 srcs: ["Test.java"],
513 sdk_version: "none",
514 system_modules: "none",
515 }
Paul Duffin72910952020-01-20 18:16:30 +0000516
517 java_library {
518 name: "exported-system-module",
519 srcs: ["Test.java"],
520 sdk_version: "none",
521 system_modules: "none",
522 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000523 `)
524
Paul Duffin36474d32021-03-12 12:19:43 +0000525 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000526 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000527// This is auto-generated. DO NOT EDIT.
528
529java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100530 name: "exported-system-module",
531 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100532 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000533 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000534 jars: ["java/exported-system-module.jar"],
535}
536
537java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100538 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000539 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100540 visibility: ["//visibility:private"],
541 apex_available: ["//apex_available:platform"],
542 jars: ["java/system-module.jar"],
543}
544
Paul Duffin33028712021-06-22 11:00:07 +0100545java_sdk_library_import {
546 name: "myjavalib",
547 prefer: false,
548 visibility: ["//visibility:public"],
549 apex_available: ["//apex_available:anyapex"],
550 shared_library: false,
551 public: {
552 jars: ["sdk_library/public/myjavalib-stubs.jar"],
553 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
554 current_api: "sdk_library/public/myjavalib.txt",
555 removed_api: "sdk_library/public/myjavalib-removed.txt",
556 sdk_version: "current",
557 },
558}
559
Paul Duffine1381882021-04-16 17:05:10 +0100560java_system_modules_import {
561 name: "my-system-modules",
562 prefer: false,
563 visibility: ["//visibility:public"],
564 libs: [
565 "mysdk_system-module",
566 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100567 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100568 ],
569}
570`),
Paul Duffin72910952020-01-20 18:16:30 +0000571 checkAllCopyRules(`
572.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
573.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100574.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
575.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
576.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 +0000577`),
Paul Duffin958806b2022-05-16 13:10:47 +0000578 checkInfoContents(result.Config, `
Paul Duffinc6ba1822022-05-06 09:38:02 +0000579[
580 {
581 "@type": "sdk",
582 "@name": "mysdk",
583 "java_header_libs": [
584 "exported-system-module",
585 "system-module"
586 ],
587 "java_sdk_libs": [
588 "myjavalib"
589 ],
590 "java_system_modules": [
591 "my-system-modules"
592 ]
593 },
594 {
595 "@type": "java_library",
596 "@name": "exported-system-module"
597 },
598 {
599 "@type": "java_system_modules",
600 "@name": "my-system-modules",
601 "@deps": [
602 "exported-system-module",
603 "system-module"
604 ]
605 },
606 {
607 "@type": "java_sdk_library",
Paul Duffin958806b2022-05-16 13:10:47 +0000608 "@name": "myjavalib",
609 "dist_stem": "myjavalib",
610 "scopes": {
611 "public": {
612 "current_api": "sdk_library/public/myjavalib.txt",
613 "latest_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib.api.public.latest/gen/myjavalib.api.public.latest",
614 "latest_removed_api": "out/soong/.intermediates/prebuilts/sdk/myjavalib-removed.api.public.latest/gen/myjavalib-removed.api.public.latest",
615 "removed_api": "sdk_library/public/myjavalib-removed.txt"
616 }
617 }
Paul Duffinc6ba1822022-05-06 09:38:02 +0000618 },
619 {
620 "@type": "java_library",
621 "@name": "system-module"
622 }
623]
624`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000625 )
626}
627
628func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000629 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000630 sdk {
631 name: "mysdk",
632 device_supported: false,
633 host_supported: true,
634 java_system_modules: ["my-system-modules"],
635 }
636
637 java_system_modules {
638 name: "my-system-modules",
639 device_supported: false,
640 host_supported: true,
641 libs: ["system-module"],
642 }
643
644 java_library {
645 name: "system-module",
646 device_supported: false,
647 host_supported: true,
648 srcs: ["Test.java"],
649 sdk_version: "none",
650 system_modules: "none",
651 }
652 `)
653
Paul Duffin36474d32021-03-12 12:19:43 +0000654 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000655 checkAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000656// This is auto-generated. DO NOT EDIT.
657
658java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100659 name: "mysdk_system-module",
660 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000661 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000662 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000663 device_supported: false,
664 host_supported: true,
665 jars: ["java/system-module.jar"],
666}
667
Paul Duffine1381882021-04-16 17:05:10 +0100668java_system_modules_import {
669 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000670 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100671 visibility: ["//visibility:public"],
672 device_supported: false,
673 host_supported: true,
674 libs: ["mysdk_system-module"],
675}
676`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000677 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
678 )
679}
Paul Duffin865171e2020-03-02 18:38:15 +0000680
681func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000682 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000683 module_exports {
684 name: "myexports",
685 host_supported: true,
686 java_libs: ["myjavalib"],
687 target: {
688 android: {
689 java_header_libs: ["androidjavalib"],
690 },
691 host: {
692 java_header_libs: ["hostjavalib"],
693 },
694 },
695 }
696
697 java_library {
698 name: "myjavalib",
699 host_supported: true,
700 srcs: ["Test.java"],
701 system_modules: "none",
702 sdk_version: "none",
703 }
704
705 java_library {
706 name: "androidjavalib",
707 srcs: ["Test.java"],
708 system_modules: "none",
709 sdk_version: "none",
710 }
711
712 java_library_host {
713 name: "hostjavalib",
714 srcs: ["Test.java"],
715 }
716 `)
717
Paul Duffin36474d32021-03-12 12:19:43 +0000718 CheckSnapshot(t, result, "myexports", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000719 checkAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000720// This is auto-generated. DO NOT EDIT.
721
722java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100723 name: "hostjavalib",
724 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100725 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000726 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000727 device_supported: false,
728 host_supported: true,
729 jars: ["java/hostjavalib.jar"],
730}
731
732java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100733 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000734 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100735 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000736 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100737 jars: ["java/androidjavalib.jar"],
738}
739
740java_import {
741 name: "myjavalib",
742 prefer: false,
743 visibility: ["//visibility:public"],
744 apex_available: ["//apex_available:platform"],
745 host_supported: true,
746 target: {
747 android: {
748 jars: ["java/android/myjavalib.jar"],
749 },
750 linux_glibc: {
751 jars: ["java/linux_glibc/myjavalib.jar"],
752 },
753 },
754}
755`),
Paul Duffin865171e2020-03-02 18:38:15 +0000756 checkAllCopyRules(`
757.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
758.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
759.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
760.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
761`),
762 )
763}
Paul Duffindd46f712020-02-10 13:37:10 +0000764
765func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000766 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +0000767 sdk {
768 name: "mysdk",
769 java_sdk_libs: ["myjavalib"],
770 }
771
772 java_sdk_library {
773 name: "myjavalib",
774 apex_available: ["//apex_available:anyapex"],
775 srcs: ["Test.java"],
776 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +0100777 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +0100778 stubs_library_visibility: ["//other"],
779 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +0100780 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000781 }
782 `)
783
Paul Duffin36474d32021-03-12 12:19:43 +0000784 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000785 checkAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +0000786// This is auto-generated. DO NOT EDIT.
787
788java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +0100789 name: "myjavalib",
790 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100791 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +0000792 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +0100793 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +0100794 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +0000795 public: {
796 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000797 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100798 current_api: "sdk_library/public/myjavalib.txt",
799 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000800 sdk_version: "current",
801 },
802 system: {
803 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000804 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100805 current_api: "sdk_library/system/myjavalib.txt",
806 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000807 sdk_version: "system_current",
808 },
809 test: {
810 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +0000811 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +0100812 current_api: "sdk_library/test/myjavalib.txt",
813 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +0000814 sdk_version: "test_current",
815 },
816}
Paul Duffine1381882021-04-16 17:05:10 +0100817`),
Paul Duffindd46f712020-02-10 13:37:10 +0000818 checkAllCopyRules(`
819.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700820.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
821.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 +0000822.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700823.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
824.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 +0000825.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -0700826.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
827.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 +0000828`),
Paul Duffin3d1248c2020-04-09 00:10:17 +0100829 checkMergeZips(
830 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
831 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +0100832 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
833 ),
Paul Duffindd46f712020-02-10 13:37:10 +0000834 )
835}
Paul Duffin3375e352020-04-28 10:44:03 +0100836
Paul Duffin22628d52021-05-12 23:13:22 +0100837func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
838 result := android.GroupFixturePreparers(
839 prepareForSdkTestWithJavaSdkLibrary,
840 android.FixtureMergeEnv(map[string]string{
841 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
842 }),
843 ).RunTestWithBp(t, `
844 sdk {
845 name: "mysdk",
846 java_sdk_libs: ["myjavalib"],
847 }
848
849 java_sdk_library {
850 name: "myjavalib",
851 srcs: ["Test.java"],
852 sdk_version: "current",
853 shared_library: false,
854 public: {
855 enabled: true,
856 },
857 }
858 `)
859
860 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000861 checkAndroidBpContents(`
Paul Duffin22628d52021-05-12 23:13:22 +0100862// This is auto-generated. DO NOT EDIT.
863
864java_sdk_library_import {
865 name: "myjavalib",
866 prefer: false,
867 visibility: ["//visibility:public"],
868 apex_available: ["//apex_available:platform"],
869 shared_library: false,
870 public: {
871 jars: ["sdk_library/public/myjavalib-stubs.jar"],
872 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
873 current_api: "sdk_library/public/myjavalib.txt",
874 removed_api: "sdk_library/public/myjavalib-removed.txt",
875 sdk_version: "current",
876 },
877}
878 `),
879 checkAllCopyRules(`
880.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
881.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
882.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
883.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
884 `),
885 )
886}
887
Anton Hanssond78eb762021-09-21 15:25:12 +0100888func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
889 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
890 sdk {
891 name: "mysdk",
892 java_sdk_libs: ["myjavalib"],
893 }
894
895 java_sdk_library {
896 name: "myjavalib",
897 srcs: ["Test.java"],
898 sdk_version: "current",
899 shared_library: false,
900 annotations_enabled: true,
901 public: {
902 enabled: true,
903 },
904 }
905 `)
906
907 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000908 checkAndroidBpContents(`
Anton Hanssond78eb762021-09-21 15:25:12 +0100909// This is auto-generated. DO NOT EDIT.
910
911java_sdk_library_import {
912 name: "myjavalib",
913 prefer: false,
914 visibility: ["//visibility:public"],
915 apex_available: ["//apex_available:platform"],
916 shared_library: false,
917 public: {
918 jars: ["sdk_library/public/myjavalib-stubs.jar"],
919 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
920 current_api: "sdk_library/public/myjavalib.txt",
921 removed_api: "sdk_library/public/myjavalib-removed.txt",
922 annotations: "sdk_library/public/myjavalib_annotations.zip",
923 sdk_version: "current",
924 },
925}
926 `),
927 checkAllCopyRules(`
928.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
929.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
930.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
931.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
932 `),
933 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
934 )
935}
936
Paul Duffina54016c2022-01-27 16:39:47 +0000937func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
938 result := android.GroupFixturePreparers(
939 prepareForSdkTestWithJavaSdkLibrary,
940 android.FixtureMergeEnv(map[string]string{
941 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
942 }),
943 ).RunTestWithBp(t, `
944 sdk {
945 name: "mysdk",
946 java_sdk_libs: ["myjavalib"],
947 }
948
949 java_sdk_library {
950 name: "myjavalib",
951 srcs: ["Test.java"],
952 sdk_version: "current",
953 shared_library: false,
954 annotations_enabled: true,
955 public: {
956 enabled: true,
957 },
958 }
959 `)
960
961 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000962 checkAndroidBpContents(`
Paul Duffina54016c2022-01-27 16:39:47 +0000963// This is auto-generated. DO NOT EDIT.
964
965java_sdk_library_import {
966 name: "myjavalib",
967 prefer: false,
968 visibility: ["//visibility:public"],
969 apex_available: ["//apex_available:platform"],
970 shared_library: false,
971 public: {
972 jars: ["sdk_library/public/myjavalib-stubs.jar"],
973 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
974 current_api: "sdk_library/public/myjavalib.txt",
975 removed_api: "sdk_library/public/myjavalib-removed.txt",
976 sdk_version: "current",
977 },
978}
979 `),
980 checkAllCopyRules(`
981.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
982.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
983.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
984 `),
985 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
986 )
987}
988
Paul Duffin1267d872021-04-16 17:21:36 +0100989func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
990 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
991 sdk {
992 name: "mysdk",
993 java_sdk_libs: ["myjavalib"],
994 }
995
996 java_sdk_library {
997 name: "myjavalib",
998 srcs: ["Test.java"],
999 sdk_version: "current",
1000 shared_library: false,
1001 compile_dex: true,
1002 public: {
1003 enabled: true,
1004 },
1005 system: {
1006 enabled: true,
1007 },
1008 }
1009 `)
1010
1011 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001012 checkAndroidBpContents(`
Paul Duffin1267d872021-04-16 17:21:36 +01001013// This is auto-generated. DO NOT EDIT.
1014
1015java_sdk_library_import {
1016 name: "myjavalib",
1017 prefer: false,
1018 visibility: ["//visibility:public"],
1019 apex_available: ["//apex_available:platform"],
1020 shared_library: false,
1021 compile_dex: true,
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 sdk_version: "current",
1028 },
1029 system: {
1030 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1031 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1032 current_api: "sdk_library/system/myjavalib.txt",
1033 removed_api: "sdk_library/system/myjavalib-removed.txt",
1034 sdk_version: "system_current",
1035 },
1036}
1037`),
1038 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1039 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1040 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1041 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001042 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001043 return path.RelativeToTop().String()
1044 }
1045
1046 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1047 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1048
1049 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1050 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1051 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1052
1053 // This should fall back to system as module is not available.
1054 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1055 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1056
1057 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1058 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1059 }),
1060 )
1061}
1062
Paul Duffin780c5f42020-05-12 15:52:55 +01001063func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001064 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001065 sdk {
1066 name: "mysdk",
1067 java_sdk_libs: ["myjavalib"],
1068 }
1069
1070 java_sdk_library {
1071 name: "myjavalib",
1072 srcs: ["Test.java"],
1073 sdk_version: "none",
1074 system_modules: "none",
1075 }
1076 `)
1077
Paul Duffin36474d32021-03-12 12:19:43 +00001078 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001079 checkAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001080// This is auto-generated. DO NOT EDIT.
1081
1082java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001083 name: "myjavalib",
1084 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001085 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001086 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001087 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001088 public: {
1089 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001090 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001091 current_api: "sdk_library/public/myjavalib.txt",
1092 removed_api: "sdk_library/public/myjavalib-removed.txt",
1093 sdk_version: "none",
1094 },
1095}
Paul Duffine1381882021-04-16 17:05:10 +01001096`),
Paul Duffin780c5f42020-05-12 15:52:55 +01001097 checkAllCopyRules(`
1098.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001099.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1100.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 +01001101`),
1102 checkMergeZips(
1103 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1104 ),
1105 )
1106}
1107
Paul Duffin87a05a32020-05-12 11:50:28 +01001108func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001109 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001110 sdk {
1111 name: "mysdk",
1112 java_sdk_libs: ["myjavalib"],
1113 }
1114
1115 java_sdk_library {
1116 name: "myjavalib",
1117 srcs: ["Test.java"],
1118 sdk_version: "module_current",
1119 public: {
1120 enabled: true,
1121 sdk_version: "module_current",
1122 },
1123 }
1124 `)
1125
Paul Duffin36474d32021-03-12 12:19:43 +00001126 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001127 checkAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001128// This is auto-generated. DO NOT EDIT.
1129
1130java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001131 name: "myjavalib",
1132 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001133 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001134 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001135 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001136 public: {
1137 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001138 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001139 current_api: "sdk_library/public/myjavalib.txt",
1140 removed_api: "sdk_library/public/myjavalib-removed.txt",
1141 sdk_version: "module_current",
1142 },
1143}
Paul Duffine1381882021-04-16 17:05:10 +01001144`),
Paul Duffin87a05a32020-05-12 11:50:28 +01001145 checkAllCopyRules(`
1146.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001147.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1148.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 +01001149`),
1150 checkMergeZips(
1151 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1152 ),
1153 )
1154}
1155
1156func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001157 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001158 sdk {
1159 name: "mysdk",
1160 java_sdk_libs: ["myjavalib"],
1161 }
1162
1163 java_sdk_library {
1164 name: "myjavalib",
1165 apex_available: ["//apex_available:anyapex"],
1166 srcs: ["Test.java"],
1167 sdk_version: "current",
1168 public: {
1169 enabled: true,
1170 },
1171 system: {
1172 enabled: true,
1173 },
1174 }
1175 `)
1176
Paul Duffin36474d32021-03-12 12:19:43 +00001177 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001178 checkAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001179// This is auto-generated. DO NOT EDIT.
1180
1181java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001182 name: "myjavalib",
1183 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001184 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001185 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001186 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001187 public: {
1188 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001189 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001190 current_api: "sdk_library/public/myjavalib.txt",
1191 removed_api: "sdk_library/public/myjavalib-removed.txt",
1192 sdk_version: "current",
1193 },
1194 system: {
1195 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001196 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001197 current_api: "sdk_library/system/myjavalib.txt",
1198 removed_api: "sdk_library/system/myjavalib-removed.txt",
1199 sdk_version: "system_current",
1200 },
1201}
Paul Duffine1381882021-04-16 17:05:10 +01001202`),
Paul Duffin3375e352020-04-28 10:44:03 +01001203 checkAllCopyRules(`
1204.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001205.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1206.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 +01001207.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001208.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1209.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 +01001210`),
1211 checkMergeZips(
1212 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1213 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1214 ),
1215 )
1216}
Paul Duffin8f265b92020-04-28 14:13:56 +01001217
1218func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001219 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001220 sdk {
1221 name: "mysdk",
1222 java_sdk_libs: ["myjavalib"],
1223 }
1224
1225 java_sdk_library {
1226 name: "myjavalib",
1227 apex_available: ["//apex_available:anyapex"],
1228 srcs: ["Test.java"],
1229 sdk_version: "current",
1230 public: {
1231 enabled: true,
1232 },
1233 system: {
1234 enabled: true,
1235 },
1236 module_lib: {
1237 enabled: true,
1238 },
1239 }
1240 `)
1241
Paul Duffin36474d32021-03-12 12:19:43 +00001242 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001243 checkAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001244// This is auto-generated. DO NOT EDIT.
1245
1246java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001247 name: "myjavalib",
1248 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001249 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001250 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001251 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001252 public: {
1253 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001254 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001255 current_api: "sdk_library/public/myjavalib.txt",
1256 removed_api: "sdk_library/public/myjavalib-removed.txt",
1257 sdk_version: "current",
1258 },
1259 system: {
1260 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001261 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001262 current_api: "sdk_library/system/myjavalib.txt",
1263 removed_api: "sdk_library/system/myjavalib-removed.txt",
1264 sdk_version: "system_current",
1265 },
1266 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001267 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001268 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001269 current_api: "sdk_library/module-lib/myjavalib.txt",
1270 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001271 sdk_version: "module_current",
1272 },
1273}
Paul Duffine1381882021-04-16 17:05:10 +01001274`),
Paul Duffin8f265b92020-04-28 14:13:56 +01001275 checkAllCopyRules(`
1276.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001277.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1278.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 +01001279.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001280.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1281.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 +01001282.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 -07001283.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1284.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 +01001285`),
1286 checkMergeZips(
1287 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1288 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001289 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001290 ),
1291 )
1292}
Paul Duffinf7a64332020-05-13 16:54:55 +01001293
Paul Duffin0c5bae52020-06-02 13:00:08 +01001294func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001295 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001296 sdk {
1297 name: "mysdk",
1298 java_sdk_libs: ["myjavalib"],
1299 }
1300
1301 java_sdk_library {
1302 name: "myjavalib",
1303 apex_available: ["//apex_available:anyapex"],
1304 srcs: ["Test.java"],
1305 sdk_version: "current",
1306 public: {
1307 enabled: true,
1308 },
1309 system_server: {
1310 enabled: true,
1311 },
1312 }
1313 `)
1314
Paul Duffin36474d32021-03-12 12:19:43 +00001315 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001316 checkAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001317// This is auto-generated. DO NOT EDIT.
1318
1319java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001320 name: "myjavalib",
1321 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001322 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001323 apex_available: ["//apex_available:anyapex"],
1324 shared_library: true,
1325 public: {
1326 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001327 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001328 current_api: "sdk_library/public/myjavalib.txt",
1329 removed_api: "sdk_library/public/myjavalib-removed.txt",
1330 sdk_version: "current",
1331 },
1332 system_server: {
1333 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001334 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001335 current_api: "sdk_library/system-server/myjavalib.txt",
1336 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1337 sdk_version: "system_server_current",
1338 },
1339}
Paul Duffine1381882021-04-16 17:05:10 +01001340`),
Paul Duffin0c5bae52020-06-02 13:00:08 +01001341 checkAllCopyRules(`
1342.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001343.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1344.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 +01001345.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 -07001346.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1347.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 +01001348`),
1349 checkMergeZips(
1350 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1351 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1352 ),
1353 )
1354}
1355
Paul Duffinf7a64332020-05-13 16:54:55 +01001356func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001357 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001358 sdk {
1359 name: "mysdk",
1360 java_sdk_libs: ["myjavalib"],
1361 }
1362
1363 java_sdk_library {
1364 name: "myjavalib",
1365 apex_available: ["//apex_available:anyapex"],
1366 srcs: ["Test.java"],
1367 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001368 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001369 public: {
1370 enabled: true,
1371 },
1372 }
1373 `)
1374
Paul Duffin36474d32021-03-12 12:19:43 +00001375 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001376 checkAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001377// This is auto-generated. DO NOT EDIT.
1378
1379java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001380 name: "myjavalib",
1381 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001382 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001383 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001384 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001385 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001386 public: {
1387 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001388 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001389 current_api: "sdk_library/public/myjavalib.txt",
1390 removed_api: "sdk_library/public/myjavalib-removed.txt",
1391 sdk_version: "current",
1392 },
1393}
Paul Duffine1381882021-04-16 17:05:10 +01001394`),
Paul Duffinf7a64332020-05-13 16:54:55 +01001395 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001396.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001397.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1398.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 +01001399`),
1400 checkMergeZips(
1401 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1402 ),
1403 )
1404}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001405
1406func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001407 result := android.GroupFixturePreparers(
1408 prepareForSdkTestWithJavaSdkLibrary,
1409 android.FixtureAddFile("docs/known_doctags", nil),
1410 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001411 sdk {
1412 name: "mysdk",
1413 java_sdk_libs: ["myjavalib"],
1414 }
1415
1416 java_sdk_library {
1417 name: "myjavalib",
1418 srcs: ["Test.java"],
1419 sdk_version: "current",
1420 public: {
1421 enabled: true,
1422 },
1423 doctag_files: ["docs/known_doctags"],
1424 }
1425
1426 filegroup {
1427 name: "mygroup",
1428 srcs: [":myjavalib{.doctags}"],
1429 }
1430 `)
1431
Paul Duffin36474d32021-03-12 12:19:43 +00001432 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +00001433 checkAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001434// This is auto-generated. DO NOT EDIT.
1435
1436java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001437 name: "myjavalib",
1438 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001439 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001440 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001441 shared_library: true,
1442 doctag_files: ["doctags/docs/known_doctags"],
1443 public: {
1444 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001445 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001446 current_api: "sdk_library/public/myjavalib.txt",
1447 removed_api: "sdk_library/public/myjavalib-removed.txt",
1448 sdk_version: "current",
1449 },
1450}
Paul Duffine1381882021-04-16 17:05:10 +01001451`),
Paul Duffina2ae7e02020-09-11 11:55:00 +01001452 checkAllCopyRules(`
1453.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001454.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1455.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 +01001456docs/known_doctags -> doctags/docs/known_doctags
1457`),
1458 )
1459}