blob: f0d3b35d7ef2440fc30f3118b4e520378210d45b [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 Duffina80fdec2019-12-03 15:25:00 +000074func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +000075 result := android.GroupFixturePreparers(
76 prepareForSdkTestWithJava,
77 prepareForSdkTestWithApex,
78 ).RunTestWithBp(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +000079 sdk {
80 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +090081 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +000082 }
83
84 sdk_snapshot {
85 name: "mysdk@1",
Paul Duffin525a5902021-05-06 16:33:52 +010086 java_header_libs: ["sdkmember_mysdk@1"],
Paul Duffina80fdec2019-12-03 15:25:00 +000087 }
88
89 sdk_snapshot {
90 name: "mysdk@2",
Paul Duffin525a5902021-05-06 16:33:52 +010091 java_header_libs: ["sdkmember_mysdk@2"],
Paul Duffina80fdec2019-12-03 15:25:00 +000092 }
93
Jiyong Park0f80c182020-01-31 02:49:53 +090094 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +000095 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +090096 srcs: ["Test.java"],
97 system_modules: "none",
98 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +000099 host_supported: true,
100 }
101
102 java_import {
Paul Duffin525a5902021-05-06 16:33:52 +0100103 name: "sdkmember_mysdk@1",
Paul Duffina80fdec2019-12-03 15:25:00 +0000104 sdk_member_name: "sdkmember",
105 host_supported: true,
106 }
107
108 java_import {
Paul Duffin525a5902021-05-06 16:33:52 +0100109 name: "sdkmember_mysdk@2",
Paul Duffina80fdec2019-12-03 15:25:00 +0000110 sdk_member_name: "sdkmember",
111 host_supported: true,
112 }
113
114 java_library {
115 name: "myjavalib",
116 srcs: ["Test.java"],
117 libs: ["sdkmember"],
118 system_modules: "none",
119 sdk_version: "none",
120 compile_dex: true,
121 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000122 apex_available: [
123 "myapex",
124 "myapex2",
125 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000126 }
127
128 apex {
129 name: "myapex",
130 java_libs: ["myjavalib"],
131 uses_sdks: ["mysdk@1"],
132 key: "myapex.key",
133 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000134 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000135 }
136
137 apex {
138 name: "myapex2",
139 java_libs: ["myjavalib"],
140 uses_sdks: ["mysdk@2"],
141 key: "myapex.key",
142 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000143 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000144 }
145 `)
146
Paul Duffin525a5902021-05-06 16:33:52 +0100147 sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk@1", "android_common").Rule("combineJar").Output
148 sdkMemberV2 := result.ModuleForTests("sdkmember_mysdk@2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000149
Paul Duffin8306f252021-03-11 12:18:24 +0000150 javalibForMyApex := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
151 javalibForMyApex2 := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000152
153 // Depending on the uses_sdks value, different libs are linked
154 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
155 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
156}
157
Paul Duffina0dbf432019-12-05 11:25:53 +0000158func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000159 result := android.GroupFixturePreparers(
160 prepareForSdkTestWithJava,
161 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
162 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000163 sdk {
164 name: "mysdk",
165 java_header_libs: ["myjavalib"],
166 }
167
168 java_library {
169 name: "myjavalib",
170 srcs: ["Test.java"],
171 aidl: {
172 export_include_dirs: ["aidl"],
173 },
174 system_modules: "none",
175 sdk_version: "none",
176 compile_dex: true,
177 host_supported: true,
Paul Duffin869de142021-07-15 14:14:41 +0100178 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000179 }
180 `)
181
Paul Duffin36474d32021-03-12 12:19:43 +0000182 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100183 checkUnversionedAndroidBpContents(`
184// This is auto-generated. DO NOT EDIT.
185
186java_import {
187 name: "myjavalib",
188 prefer: false,
189 visibility: ["//visibility:public"],
190 apex_available: ["//apex_available:platform"],
191 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100192 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100193}
194`),
195 checkVersionedAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000196// This is auto-generated. DO NOT EDIT.
197
198java_import {
199 name: "mysdk_myjavalib@current",
200 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100201 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000202 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000203 jars: ["java/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100204 permitted_packages: ["pkg.myjavalib"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000205}
206
Paul Duffina0dbf432019-12-05 11:25:53 +0000207sdk_snapshot {
208 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100209 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000210 java_header_libs: ["mysdk_myjavalib@current"],
211}
Paul Duffina0dbf432019-12-05 11:25:53 +0000212`),
213 checkAllCopyRules(`
214.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
215aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
216`),
217 )
218}
219
220func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000221 result := android.GroupFixturePreparers(
222 prepareForSdkTestWithJava,
223 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
224 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000225 sdk {
226 name: "mysdk",
227 device_supported: false,
228 host_supported: true,
229 java_header_libs: ["myjavalib"],
230 }
231
232 java_library {
233 name: "myjavalib",
234 device_supported: false,
235 host_supported: true,
236 srcs: ["Test.java"],
237 aidl: {
238 export_include_dirs: ["aidl"],
239 },
240 system_modules: "none",
241 sdk_version: "none",
242 compile_dex: true,
243 }
244 `)
245
Paul Duffin36474d32021-03-12 12:19:43 +0000246 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100247 checkUnversionedAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000248// This is auto-generated. DO NOT EDIT.
249
250java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100251 name: "myjavalib",
252 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100253 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000254 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000255 device_supported: false,
256 host_supported: true,
257 jars: ["java/myjavalib.jar"],
258}
Paul Duffine1381882021-04-16 17:05:10 +0100259`),
260 checkVersionedAndroidBpContents(`
261// This is auto-generated. DO NOT EDIT.
Paul Duffina0dbf432019-12-05 11:25:53 +0000262
263java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100264 name: "mysdk_myjavalib@current",
265 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100266 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000267 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000268 device_supported: false,
269 host_supported: true,
270 jars: ["java/myjavalib.jar"],
271}
272
273sdk_snapshot {
274 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100275 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000276 device_supported: false,
277 host_supported: true,
278 java_header_libs: ["mysdk_myjavalib@current"],
279}
280`),
281 checkAllCopyRules(`
282.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
283aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
284`),
285 )
286}
287
Paul Duffina04c1072020-03-02 10:16:35 +0000288func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000289 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000290 sdk {
291 name: "mysdk",
292 host_supported: true,
293 java_header_libs: ["myjavalib"],
294 }
295
296 java_library {
297 name: "myjavalib",
298 host_supported: true,
299 srcs: ["Test.java"],
300 system_modules: "none",
301 sdk_version: "none",
302 compile_dex: true,
303 }
304 `)
305
Paul Duffin36474d32021-03-12 12:19:43 +0000306 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100307 checkUnversionedAndroidBpContents(`
Paul Duffina04c1072020-03-02 10:16:35 +0000308// This is auto-generated. DO NOT EDIT.
309
310java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100311 name: "myjavalib",
312 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100313 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000314 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000315 host_supported: true,
316 target: {
317 android: {
318 jars: ["java/android/myjavalib.jar"],
319 },
320 linux_glibc: {
321 jars: ["java/linux_glibc/myjavalib.jar"],
322 },
323 },
324}
Paul Duffine1381882021-04-16 17:05:10 +0100325`),
326 checkVersionedAndroidBpContents(`
327// This is auto-generated. DO NOT EDIT.
Paul Duffina04c1072020-03-02 10:16:35 +0000328
329java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100330 name: "mysdk_myjavalib@current",
331 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100332 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000333 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000334 host_supported: true,
335 target: {
336 android: {
337 jars: ["java/android/myjavalib.jar"],
338 },
339 linux_glibc: {
340 jars: ["java/linux_glibc/myjavalib.jar"],
341 },
342 },
343}
344
345sdk_snapshot {
346 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100347 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000348 host_supported: true,
349 java_header_libs: ["mysdk_myjavalib@current"],
350}
351`),
352 checkAllCopyRules(`
353.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
354.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
355`),
356 )
357}
358
Paul Duffina0dbf432019-12-05 11:25:53 +0000359func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000360 result := android.GroupFixturePreparers(
361 prepareForSdkTestWithJava,
362 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000363 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000364 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000365 module_exports {
366 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000367 java_libs: ["myjavalib"],
368 }
369
370 java_library {
371 name: "myjavalib",
372 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100373 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000374 aidl: {
375 export_include_dirs: ["aidl"],
376 },
377 system_modules: "none",
378 sdk_version: "none",
379 compile_dex: true,
380 host_supported: true,
381 }
382 `)
383
Paul Duffin36474d32021-03-12 12:19:43 +0000384 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100385 checkUnversionedAndroidBpContents(`
386// This is auto-generated. DO NOT EDIT.
387
388java_import {
389 name: "myjavalib",
390 prefer: false,
391 visibility: ["//visibility:public"],
392 apex_available: ["//apex_available:platform"],
393 jars: ["java/myjavalib.jar"],
394}
395`),
396 checkVersionedAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000397// This is auto-generated. DO NOT EDIT.
398
399java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000400 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000401 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100402 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000403 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000404 jars: ["java/myjavalib.jar"],
405}
406
Paul Duffine6029182019-12-16 17:43:48 +0000407module_exports_snapshot {
408 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100409 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000410 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000411}
Paul Duffina80fdec2019-12-03 15:25:00 +0000412`),
413 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100414.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000415aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
416`),
417 )
418}
419
Paul Duffindb170e42020-12-08 17:48:25 +0000420func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +0000421 result := android.GroupFixturePreparers(
422 prepareForSdkTestWithJava,
423 android.FixtureAddFile("aidl", nil),
424 android.FixtureAddFile("resource.txt", nil),
425 ).RunTestWithBp(t, `
Paul Duffindb170e42020-12-08 17:48:25 +0000426 module_exports {
427 name: "myexports",
428 java_boot_libs: ["myjavalib"],
429 }
430
431 java_library {
432 name: "myjavalib",
433 srcs: ["Test.java"],
434 java_resources: ["resource.txt"],
435 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
436 // intended to be used for compiling Java, only for accessing the dex implementation jar.
437 aidl: {
438 export_include_dirs: ["aidl"],
439 },
440 system_modules: "none",
441 sdk_version: "none",
442 compile_dex: true,
Paul Duffin869de142021-07-15 14:14:41 +0100443 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000444 }
445 `)
446
Paul Duffin36474d32021-03-12 12:19:43 +0000447 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100448 checkUnversionedAndroidBpContents(`
449// This is auto-generated. DO NOT EDIT.
450
451java_import {
452 name: "myjavalib",
453 prefer: false,
454 visibility: ["//visibility:public"],
455 apex_available: ["//apex_available:platform"],
Paul Duffin5c211452021-07-15 12:42:44 +0100456 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100457 permitted_packages: ["pkg.myjavalib"],
Paul Duffine1381882021-04-16 17:05:10 +0100458}
459`),
460 checkVersionedAndroidBpContents(`
Paul Duffindb170e42020-12-08 17:48:25 +0000461// This is auto-generated. DO NOT EDIT.
462
463java_import {
464 name: "myexports_myjavalib@current",
465 sdk_member_name: "myjavalib",
466 visibility: ["//visibility:public"],
467 apex_available: ["//apex_available:platform"],
Paul Duffin5c211452021-07-15 12:42:44 +0100468 jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
Paul Duffin869de142021-07-15 14:14:41 +0100469 permitted_packages: ["pkg.myjavalib"],
Paul Duffindb170e42020-12-08 17:48:25 +0000470}
471
Paul Duffindb170e42020-12-08 17:48:25 +0000472module_exports_snapshot {
473 name: "myexports@current",
474 visibility: ["//visibility:public"],
475 java_boot_libs: ["myexports_myjavalib@current"],
476}
Paul Duffin5c211452021-07-15 12:42:44 +0100477
Paul Duffindb170e42020-12-08 17:48:25 +0000478`),
479 checkAllCopyRules(`
Paul Duffin5c211452021-07-15 12:42:44 +0100480.intermediates/myexports/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000481`),
482 )
483}
484
Jiakai Zhangea180332021-09-26 08:58:02 +0000485func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
486 result := android.GroupFixturePreparers(
487 prepareForSdkTestWithJava,
488 android.FixtureAddFile("aidl", nil),
489 android.FixtureAddFile("resource.txt", nil),
490 ).RunTestWithBp(t, `
491 module_exports {
492 name: "myexports",
493 java_systemserver_libs: ["myjavalib"],
494 }
495
496 java_library {
497 name: "myjavalib",
498 srcs: ["Test.java"],
499 java_resources: ["resource.txt"],
500 // The aidl files should not be copied to the snapshot because a java_systemserver_libs member
501 // is not intended to be used for compiling Java, only for accessing the dex implementation
502 // jar.
503 aidl: {
504 export_include_dirs: ["aidl"],
505 },
506 system_modules: "none",
507 sdk_version: "none",
508 compile_dex: true,
509 permitted_packages: ["pkg.myjavalib"],
510 }
511 `)
512
513 CheckSnapshot(t, result, "myexports", "",
514 checkUnversionedAndroidBpContents(`
515// This is auto-generated. DO NOT EDIT.
516
517java_import {
518 name: "myjavalib",
519 prefer: false,
520 visibility: ["//visibility:public"],
521 apex_available: ["//apex_available:platform"],
522 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
523 permitted_packages: ["pkg.myjavalib"],
524}
525`),
526 checkVersionedAndroidBpContents(`
527// This is auto-generated. DO NOT EDIT.
528
529java_import {
530 name: "myexports_myjavalib@current",
531 sdk_member_name: "myjavalib",
532 visibility: ["//visibility:public"],
533 apex_available: ["//apex_available:platform"],
534 jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
535 permitted_packages: ["pkg.myjavalib"],
536}
537
538module_exports_snapshot {
539 name: "myexports@current",
540 visibility: ["//visibility:public"],
541 java_systemserver_libs: ["myexports_myjavalib@current"],
542}
543`),
544 checkAllCopyRules(`
545.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
546`),
547 )
548}
549
Paul Duffina0dbf432019-12-05 11:25:53 +0000550func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000551 result := android.GroupFixturePreparers(
552 prepareForSdkTestWithJava,
553 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
554 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000555 module_exports {
556 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000557 device_supported: false,
558 host_supported: true,
559 java_libs: ["myjavalib"],
560 }
561
562 java_library {
563 name: "myjavalib",
564 device_supported: false,
565 host_supported: true,
566 srcs: ["Test.java"],
567 aidl: {
568 export_include_dirs: ["aidl"],
569 },
570 system_modules: "none",
571 sdk_version: "none",
572 compile_dex: true,
573 }
574 `)
575
Paul Duffin36474d32021-03-12 12:19:43 +0000576 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100577 checkUnversionedAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000578// This is auto-generated. DO NOT EDIT.
579
580java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100581 name: "myjavalib",
582 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100583 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000584 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000585 device_supported: false,
586 host_supported: true,
587 jars: ["java/myjavalib.jar"],
588}
Paul Duffine1381882021-04-16 17:05:10 +0100589`),
590 checkVersionedAndroidBpContents(`
591// This is auto-generated. DO NOT EDIT.
Paul Duffina80fdec2019-12-03 15:25:00 +0000592
593java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100594 name: "myexports_myjavalib@current",
595 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100596 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000597 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000598 device_supported: false,
599 host_supported: true,
600 jars: ["java/myjavalib.jar"],
601}
602
Paul Duffine6029182019-12-16 17:43:48 +0000603module_exports_snapshot {
604 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100605 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000606 device_supported: false,
607 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000608 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000609}
610`),
611 checkAllCopyRules(`
612.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
613aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
614`),
615 )
616}
617
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000618func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000619 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000620 module_exports {
621 name: "myexports",
622 java_tests: ["myjavatests"],
623 }
624
625 java_test {
626 name: "myjavatests",
627 srcs: ["Test.java"],
628 system_modules: "none",
629 sdk_version: "none",
630 compile_dex: true,
631 host_supported: true,
632 }
633 `)
634
Paul Duffin36474d32021-03-12 12:19:43 +0000635 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100636 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000637// This is auto-generated. DO NOT EDIT.
638
639java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100640 name: "myjavatests",
641 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100642 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000643 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000644 jars: ["java/myjavatests.jar"],
645 test_config: "java/myjavatests-AndroidTest.xml",
646}
Paul Duffine1381882021-04-16 17:05:10 +0100647`),
648 checkVersionedAndroidBpContents(`
649// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000650
651java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100652 name: "myexports_myjavatests@current",
653 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100654 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000655 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000656 jars: ["java/myjavatests.jar"],
657 test_config: "java/myjavatests-AndroidTest.xml",
658}
659
660module_exports_snapshot {
661 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100662 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000663 java_tests: ["myexports_myjavatests@current"],
664}
665`),
666 checkAllCopyRules(`
667.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
668.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
669`),
670 )
671}
672
673func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000674 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000675 module_exports {
676 name: "myexports",
677 device_supported: false,
678 host_supported: true,
679 java_tests: ["myjavatests"],
680 }
681
682 java_test {
683 name: "myjavatests",
684 device_supported: false,
685 host_supported: true,
686 srcs: ["Test.java"],
687 system_modules: "none",
688 sdk_version: "none",
689 compile_dex: true,
690 }
691 `)
692
Paul Duffin36474d32021-03-12 12:19:43 +0000693 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100694 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000695// This is auto-generated. DO NOT EDIT.
696
697java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100698 name: "myjavatests",
699 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100700 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000701 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000702 device_supported: false,
703 host_supported: true,
704 jars: ["java/myjavatests.jar"],
705 test_config: "java/myjavatests-AndroidTest.xml",
706}
Paul Duffine1381882021-04-16 17:05:10 +0100707`),
708 checkVersionedAndroidBpContents(`
709// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000710
711java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100712 name: "myexports_myjavatests@current",
713 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100714 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000715 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000716 device_supported: false,
717 host_supported: true,
718 jars: ["java/myjavatests.jar"],
719 test_config: "java/myjavatests-AndroidTest.xml",
720}
721
722module_exports_snapshot {
723 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100724 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000725 device_supported: false,
726 host_supported: true,
727 java_tests: ["myexports_myjavatests@current"],
728}
729`),
730 checkAllCopyRules(`
731.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
732.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
733`),
734 )
735}
736
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000737func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin33028712021-06-22 11:00:07 +0100738 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000739 sdk {
740 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000741 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100742 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000743 java_system_modules: ["my-system-modules"],
744 }
745
Paul Duffin33028712021-06-22 11:00:07 +0100746 java_sdk_library {
747 name: "myjavalib",
748 apex_available: ["//apex_available:anyapex"],
749 srcs: ["Test.java"],
750 sdk_version: "current",
751 shared_library: false,
752 public: {
753 enabled: true,
754 },
755 }
756
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000757 java_system_modules {
758 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100759 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000760 }
761
762 java_library {
763 name: "system-module",
764 srcs: ["Test.java"],
765 sdk_version: "none",
766 system_modules: "none",
767 }
Paul Duffin72910952020-01-20 18:16:30 +0000768
769 java_library {
770 name: "exported-system-module",
771 srcs: ["Test.java"],
772 sdk_version: "none",
773 system_modules: "none",
774 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000775 `)
776
Paul Duffin36474d32021-03-12 12:19:43 +0000777 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100778 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000779// This is auto-generated. DO NOT EDIT.
780
781java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100782 name: "exported-system-module",
783 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100784 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000785 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000786 jars: ["java/exported-system-module.jar"],
787}
788
789java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100790 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000791 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100792 visibility: ["//visibility:private"],
793 apex_available: ["//apex_available:platform"],
794 jars: ["java/system-module.jar"],
795}
796
Paul Duffin33028712021-06-22 11:00:07 +0100797java_sdk_library_import {
798 name: "myjavalib",
799 prefer: false,
800 visibility: ["//visibility:public"],
801 apex_available: ["//apex_available:anyapex"],
802 shared_library: false,
803 public: {
804 jars: ["sdk_library/public/myjavalib-stubs.jar"],
805 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
806 current_api: "sdk_library/public/myjavalib.txt",
807 removed_api: "sdk_library/public/myjavalib-removed.txt",
808 sdk_version: "current",
809 },
810}
811
Paul Duffine1381882021-04-16 17:05:10 +0100812java_system_modules_import {
813 name: "my-system-modules",
814 prefer: false,
815 visibility: ["//visibility:public"],
816 libs: [
817 "mysdk_system-module",
818 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100819 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100820 ],
821}
822`),
823 checkVersionedAndroidBpContents(`
824// This is auto-generated. DO NOT EDIT.
825
826java_import {
827 name: "mysdk_exported-system-module@current",
828 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100829 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000830 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000831 jars: ["java/exported-system-module.jar"],
832}
833
834java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000835 name: "mysdk_system-module@current",
836 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000837 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000838 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000839 jars: ["java/system-module.jar"],
840}
841
Paul Duffin33028712021-06-22 11:00:07 +0100842java_sdk_library_import {
843 name: "mysdk_myjavalib@current",
844 sdk_member_name: "myjavalib",
845 visibility: ["//visibility:public"],
846 apex_available: ["//apex_available:anyapex"],
847 shared_library: false,
848 public: {
849 jars: ["sdk_library/public/myjavalib-stubs.jar"],
850 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
851 current_api: "sdk_library/public/myjavalib.txt",
852 removed_api: "sdk_library/public/myjavalib-removed.txt",
853 sdk_version: "current",
854 },
855}
856
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000857java_system_modules_import {
858 name: "mysdk_my-system-modules@current",
859 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100860 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000861 libs: [
862 "mysdk_system-module@current",
863 "mysdk_exported-system-module@current",
Paul Duffin33028712021-06-22 11:00:07 +0100864 "mysdk_myjavalib.stubs@current",
Paul Duffin72910952020-01-20 18:16:30 +0000865 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000866}
867
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000868sdk_snapshot {
869 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100870 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000871 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin33028712021-06-22 11:00:07 +0100872 java_sdk_libs: ["mysdk_myjavalib@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000873 java_system_modules: ["mysdk_my-system-modules@current"],
874}
875`),
Paul Duffin72910952020-01-20 18:16:30 +0000876 checkAllCopyRules(`
877.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
878.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100879.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
880.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
881.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 +0000882`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000883 )
884}
885
886func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000887 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000888 sdk {
889 name: "mysdk",
890 device_supported: false,
891 host_supported: true,
892 java_system_modules: ["my-system-modules"],
893 }
894
895 java_system_modules {
896 name: "my-system-modules",
897 device_supported: false,
898 host_supported: true,
899 libs: ["system-module"],
900 }
901
902 java_library {
903 name: "system-module",
904 device_supported: false,
905 host_supported: true,
906 srcs: ["Test.java"],
907 sdk_version: "none",
908 system_modules: "none",
909 }
910 `)
911
Paul Duffin36474d32021-03-12 12:19:43 +0000912 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100913 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000914// This is auto-generated. DO NOT EDIT.
915
916java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100917 name: "mysdk_system-module",
918 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000919 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000920 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000921 device_supported: false,
922 host_supported: true,
923 jars: ["java/system-module.jar"],
924}
925
Paul Duffine1381882021-04-16 17:05:10 +0100926java_system_modules_import {
927 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000928 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100929 visibility: ["//visibility:public"],
930 device_supported: false,
931 host_supported: true,
932 libs: ["mysdk_system-module"],
933}
934`),
935 checkVersionedAndroidBpContents(`
936// This is auto-generated. DO NOT EDIT.
937
938java_import {
939 name: "mysdk_system-module@current",
940 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000941 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000942 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000943 device_supported: false,
944 host_supported: true,
945 jars: ["java/system-module.jar"],
946}
947
948java_system_modules_import {
949 name: "mysdk_my-system-modules@current",
950 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100951 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000952 device_supported: false,
953 host_supported: true,
954 libs: ["mysdk_system-module@current"],
955}
956
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000957sdk_snapshot {
958 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100959 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000960 device_supported: false,
961 host_supported: true,
962 java_system_modules: ["mysdk_my-system-modules@current"],
963}
964`),
965 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
966 )
967}
Paul Duffin865171e2020-03-02 18:38:15 +0000968
969func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000970 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000971 module_exports {
972 name: "myexports",
973 host_supported: true,
974 java_libs: ["myjavalib"],
975 target: {
976 android: {
977 java_header_libs: ["androidjavalib"],
978 },
979 host: {
980 java_header_libs: ["hostjavalib"],
981 },
982 },
983 }
984
985 java_library {
986 name: "myjavalib",
987 host_supported: true,
988 srcs: ["Test.java"],
989 system_modules: "none",
990 sdk_version: "none",
991 }
992
993 java_library {
994 name: "androidjavalib",
995 srcs: ["Test.java"],
996 system_modules: "none",
997 sdk_version: "none",
998 }
999
1000 java_library_host {
1001 name: "hostjavalib",
1002 srcs: ["Test.java"],
1003 }
1004 `)
1005
Paul Duffin36474d32021-03-12 12:19:43 +00001006 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +01001007 checkUnversionedAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +00001008// This is auto-generated. DO NOT EDIT.
1009
1010java_import {
Paul Duffine1381882021-04-16 17:05:10 +01001011 name: "hostjavalib",
1012 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001013 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001014 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001015 device_supported: false,
1016 host_supported: true,
1017 jars: ["java/hostjavalib.jar"],
1018}
1019
1020java_import {
Paul Duffine1381882021-04-16 17:05:10 +01001021 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +00001022 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001023 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001024 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +01001025 jars: ["java/androidjavalib.jar"],
1026}
1027
1028java_import {
1029 name: "myjavalib",
1030 prefer: false,
1031 visibility: ["//visibility:public"],
1032 apex_available: ["//apex_available:platform"],
1033 host_supported: true,
1034 target: {
1035 android: {
1036 jars: ["java/android/myjavalib.jar"],
1037 },
1038 linux_glibc: {
1039 jars: ["java/linux_glibc/myjavalib.jar"],
1040 },
1041 },
1042}
1043`),
1044 checkVersionedAndroidBpContents(`
1045// This is auto-generated. DO NOT EDIT.
1046
1047java_import {
1048 name: "myexports_hostjavalib@current",
1049 sdk_member_name: "hostjavalib",
1050 visibility: ["//visibility:public"],
1051 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001052 device_supported: false,
1053 host_supported: true,
1054 jars: ["java/hostjavalib.jar"],
1055}
1056
1057java_import {
1058 name: "myexports_androidjavalib@current",
1059 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001060 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001061 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001062 jars: ["java/androidjavalib.jar"],
1063}
1064
1065java_import {
Paul Duffin865171e2020-03-02 18:38:15 +00001066 name: "myexports_myjavalib@current",
1067 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001068 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001069 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001070 host_supported: true,
1071 target: {
1072 android: {
1073 jars: ["java/android/myjavalib.jar"],
1074 },
1075 linux_glibc: {
1076 jars: ["java/linux_glibc/myjavalib.jar"],
1077 },
1078 },
1079}
1080
Paul Duffin865171e2020-03-02 18:38:15 +00001081module_exports_snapshot {
1082 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001083 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001084 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001085 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001086 target: {
1087 android: {
1088 java_header_libs: ["myexports_androidjavalib@current"],
1089 },
1090 linux_glibc: {
1091 java_header_libs: ["myexports_hostjavalib@current"],
1092 },
1093 },
Paul Duffin865171e2020-03-02 18:38:15 +00001094}
1095`),
1096 checkAllCopyRules(`
1097.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1098.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1099.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1100.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1101`),
1102 )
1103}
Paul Duffindd46f712020-02-10 13:37:10 +00001104
1105func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001106 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001107 sdk {
1108 name: "mysdk",
1109 java_sdk_libs: ["myjavalib"],
1110 }
1111
1112 java_sdk_library {
1113 name: "myjavalib",
1114 apex_available: ["//apex_available:anyapex"],
1115 srcs: ["Test.java"],
1116 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001117 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001118 stubs_library_visibility: ["//other"],
1119 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +01001120 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001121 }
1122 `)
1123
Paul Duffin36474d32021-03-12 12:19:43 +00001124 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001125 checkUnversionedAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001126// This is auto-generated. DO NOT EDIT.
1127
1128java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001129 name: "myjavalib",
1130 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001131 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001132 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001133 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001134 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001135 public: {
1136 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001137 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001138 current_api: "sdk_library/public/myjavalib.txt",
1139 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001140 sdk_version: "current",
1141 },
1142 system: {
1143 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001144 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001145 current_api: "sdk_library/system/myjavalib.txt",
1146 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001147 sdk_version: "system_current",
1148 },
1149 test: {
1150 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001151 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001152 current_api: "sdk_library/test/myjavalib.txt",
1153 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001154 sdk_version: "test_current",
1155 },
1156}
Paul Duffine1381882021-04-16 17:05:10 +01001157`),
1158 checkVersionedAndroidBpContents(`
1159// This is auto-generated. DO NOT EDIT.
Paul Duffindd46f712020-02-10 13:37:10 +00001160
1161java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001162 name: "mysdk_myjavalib@current",
1163 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001164 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001165 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001166 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001167 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001168 public: {
1169 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001170 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001171 current_api: "sdk_library/public/myjavalib.txt",
1172 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001173 sdk_version: "current",
1174 },
1175 system: {
1176 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001177 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001178 current_api: "sdk_library/system/myjavalib.txt",
1179 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001180 sdk_version: "system_current",
1181 },
1182 test: {
1183 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001184 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001185 current_api: "sdk_library/test/myjavalib.txt",
1186 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001187 sdk_version: "test_current",
1188 },
1189}
1190
1191sdk_snapshot {
1192 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001193 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001194 java_sdk_libs: ["mysdk_myjavalib@current"],
1195}
1196`),
1197 checkAllCopyRules(`
1198.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001199.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1200.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 +00001201.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001202.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1203.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 +00001204.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001205.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1206.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 +00001207`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001208 checkMergeZips(
1209 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1210 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +01001211 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1212 ),
1213 snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) {
Paul Duffinb97b1572021-04-29 21:50:40 +01001214 // Make sure that the name of the child modules created by a versioned java_sdk_library_import
1215 // module is correct, i.e. the suffix is added before the version and not after.
1216 result.Module("mysdk_myjavalib.stubs@current", "android_common")
1217 result.Module("mysdk_myjavalib.stubs.source@current", "android_common")
Paul Duffin33028712021-06-22 11:00:07 +01001218 }),
Paul Duffindd46f712020-02-10 13:37:10 +00001219 )
1220}
Paul Duffin3375e352020-04-28 10:44:03 +01001221
Paul Duffin22628d52021-05-12 23:13:22 +01001222func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1223 result := android.GroupFixturePreparers(
1224 prepareForSdkTestWithJavaSdkLibrary,
1225 android.FixtureMergeEnv(map[string]string{
1226 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1227 }),
1228 ).RunTestWithBp(t, `
1229 sdk {
1230 name: "mysdk",
1231 java_sdk_libs: ["myjavalib"],
1232 }
1233
1234 java_sdk_library {
1235 name: "myjavalib",
1236 srcs: ["Test.java"],
1237 sdk_version: "current",
1238 shared_library: false,
1239 public: {
1240 enabled: true,
1241 },
1242 }
1243 `)
1244
1245 CheckSnapshot(t, result, "mysdk", "",
1246 checkUnversionedAndroidBpContents(`
1247// This is auto-generated. DO NOT EDIT.
1248
1249java_sdk_library_import {
1250 name: "myjavalib",
1251 prefer: false,
1252 visibility: ["//visibility:public"],
1253 apex_available: ["//apex_available:platform"],
1254 shared_library: false,
1255 public: {
1256 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1257 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1258 current_api: "sdk_library/public/myjavalib.txt",
1259 removed_api: "sdk_library/public/myjavalib-removed.txt",
1260 sdk_version: "current",
1261 },
1262}
1263 `),
1264 checkAllCopyRules(`
1265.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1266.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1267.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1268.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1269 `),
1270 )
1271}
1272
Anton Hanssond78eb762021-09-21 15:25:12 +01001273func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1274 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1275 sdk {
1276 name: "mysdk",
1277 java_sdk_libs: ["myjavalib"],
1278 }
1279
1280 java_sdk_library {
1281 name: "myjavalib",
1282 srcs: ["Test.java"],
1283 sdk_version: "current",
1284 shared_library: false,
1285 annotations_enabled: true,
1286 public: {
1287 enabled: true,
1288 },
1289 }
1290 `)
1291
1292 CheckSnapshot(t, result, "mysdk", "",
1293 checkUnversionedAndroidBpContents(`
1294// This is auto-generated. DO NOT EDIT.
1295
1296java_sdk_library_import {
1297 name: "myjavalib",
1298 prefer: false,
1299 visibility: ["//visibility:public"],
1300 apex_available: ["//apex_available:platform"],
1301 shared_library: false,
1302 public: {
1303 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1304 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1305 current_api: "sdk_library/public/myjavalib.txt",
1306 removed_api: "sdk_library/public/myjavalib-removed.txt",
1307 annotations: "sdk_library/public/myjavalib_annotations.zip",
1308 sdk_version: "current",
1309 },
1310}
1311 `),
1312 checkAllCopyRules(`
1313.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1314.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1315.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1316.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
1317 `),
1318 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1319 )
1320}
1321
Paul Duffina54016c2022-01-27 16:39:47 +00001322func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
1323 result := android.GroupFixturePreparers(
1324 prepareForSdkTestWithJavaSdkLibrary,
1325 android.FixtureMergeEnv(map[string]string{
1326 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1327 }),
1328 ).RunTestWithBp(t, `
1329 sdk {
1330 name: "mysdk",
1331 java_sdk_libs: ["myjavalib"],
1332 }
1333
1334 java_sdk_library {
1335 name: "myjavalib",
1336 srcs: ["Test.java"],
1337 sdk_version: "current",
1338 shared_library: false,
1339 annotations_enabled: true,
1340 public: {
1341 enabled: true,
1342 },
1343 }
1344 `)
1345
1346 CheckSnapshot(t, result, "mysdk", "",
1347 checkUnversionedAndroidBpContents(`
1348// This is auto-generated. DO NOT EDIT.
1349
1350java_sdk_library_import {
1351 name: "myjavalib",
1352 prefer: false,
1353 visibility: ["//visibility:public"],
1354 apex_available: ["//apex_available:platform"],
1355 shared_library: false,
1356 public: {
1357 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1358 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1359 current_api: "sdk_library/public/myjavalib.txt",
1360 removed_api: "sdk_library/public/myjavalib-removed.txt",
1361 sdk_version: "current",
1362 },
1363}
1364 `),
1365 checkAllCopyRules(`
1366.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1367.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1368.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1369 `),
1370 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1371 )
1372}
1373
Paul Duffin1267d872021-04-16 17:21:36 +01001374func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1375 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1376 sdk {
1377 name: "mysdk",
1378 java_sdk_libs: ["myjavalib"],
1379 }
1380
1381 java_sdk_library {
1382 name: "myjavalib",
1383 srcs: ["Test.java"],
1384 sdk_version: "current",
1385 shared_library: false,
1386 compile_dex: true,
1387 public: {
1388 enabled: true,
1389 },
1390 system: {
1391 enabled: true,
1392 },
1393 }
1394 `)
1395
1396 CheckSnapshot(t, result, "mysdk", "",
1397 checkUnversionedAndroidBpContents(`
1398// This is auto-generated. DO NOT EDIT.
1399
1400java_sdk_library_import {
1401 name: "myjavalib",
1402 prefer: false,
1403 visibility: ["//visibility:public"],
1404 apex_available: ["//apex_available:platform"],
1405 shared_library: false,
1406 compile_dex: true,
1407 public: {
1408 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1409 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1410 current_api: "sdk_library/public/myjavalib.txt",
1411 removed_api: "sdk_library/public/myjavalib-removed.txt",
1412 sdk_version: "current",
1413 },
1414 system: {
1415 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1416 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1417 current_api: "sdk_library/system/myjavalib.txt",
1418 removed_api: "sdk_library/system/myjavalib-removed.txt",
1419 sdk_version: "system_current",
1420 },
1421}
1422`),
1423 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1424 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1425 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1426 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001427 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001428 return path.RelativeToTop().String()
1429 }
1430
1431 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1432 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1433
1434 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1435 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1436 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1437
1438 // This should fall back to system as module is not available.
1439 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1440 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1441
1442 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1443 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1444 }),
1445 )
1446}
1447
Paul Duffin780c5f42020-05-12 15:52:55 +01001448func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001449 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001450 sdk {
1451 name: "mysdk",
1452 java_sdk_libs: ["myjavalib"],
1453 }
1454
1455 java_sdk_library {
1456 name: "myjavalib",
1457 srcs: ["Test.java"],
1458 sdk_version: "none",
1459 system_modules: "none",
1460 }
1461 `)
1462
Paul Duffin36474d32021-03-12 12:19:43 +00001463 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001464 checkUnversionedAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001465// This is auto-generated. DO NOT EDIT.
1466
1467java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001468 name: "myjavalib",
1469 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001470 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001471 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001472 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001473 public: {
1474 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001475 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001476 current_api: "sdk_library/public/myjavalib.txt",
1477 removed_api: "sdk_library/public/myjavalib-removed.txt",
1478 sdk_version: "none",
1479 },
1480}
Paul Duffine1381882021-04-16 17:05:10 +01001481`),
1482 checkVersionedAndroidBpContents(`
1483// This is auto-generated. DO NOT EDIT.
Paul Duffin780c5f42020-05-12 15:52:55 +01001484
1485java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001486 name: "mysdk_myjavalib@current",
1487 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001488 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001489 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001490 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52: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 Duffin780c5f42020-05-12 15:52:55 +01001494 current_api: "sdk_library/public/myjavalib.txt",
1495 removed_api: "sdk_library/public/myjavalib-removed.txt",
1496 sdk_version: "none",
1497 },
1498}
1499
1500sdk_snapshot {
1501 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001502 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001503 java_sdk_libs: ["mysdk_myjavalib@current"],
1504}
1505`),
1506 checkAllCopyRules(`
1507.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001508.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1509.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 +01001510`),
1511 checkMergeZips(
1512 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1513 ),
1514 )
1515}
1516
Paul Duffin87a05a32020-05-12 11:50:28 +01001517func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001518 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001519 sdk {
1520 name: "mysdk",
1521 java_sdk_libs: ["myjavalib"],
1522 }
1523
1524 java_sdk_library {
1525 name: "myjavalib",
1526 srcs: ["Test.java"],
1527 sdk_version: "module_current",
1528 public: {
1529 enabled: true,
1530 sdk_version: "module_current",
1531 },
1532 }
1533 `)
1534
Paul Duffin36474d32021-03-12 12:19:43 +00001535 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001536 checkUnversionedAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001537// This is auto-generated. DO NOT EDIT.
1538
1539java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001540 name: "myjavalib",
1541 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001542 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001543 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001544 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001545 public: {
1546 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001547 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001548 current_api: "sdk_library/public/myjavalib.txt",
1549 removed_api: "sdk_library/public/myjavalib-removed.txt",
1550 sdk_version: "module_current",
1551 },
1552}
Paul Duffine1381882021-04-16 17:05:10 +01001553`),
1554 checkVersionedAndroidBpContents(`
1555// This is auto-generated. DO NOT EDIT.
Paul Duffin87a05a32020-05-12 11:50:28 +01001556
1557java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001558 name: "mysdk_myjavalib@current",
1559 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001560 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001561 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001562 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001563 public: {
1564 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001565 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001566 current_api: "sdk_library/public/myjavalib.txt",
1567 removed_api: "sdk_library/public/myjavalib-removed.txt",
1568 sdk_version: "module_current",
1569 },
1570}
1571
1572sdk_snapshot {
1573 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001574 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001575 java_sdk_libs: ["mysdk_myjavalib@current"],
1576}
1577`),
1578 checkAllCopyRules(`
1579.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001580.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1581.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 +01001582`),
1583 checkMergeZips(
1584 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1585 ),
1586 )
1587}
1588
1589func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001590 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001591 sdk {
1592 name: "mysdk",
1593 java_sdk_libs: ["myjavalib"],
1594 }
1595
1596 java_sdk_library {
1597 name: "myjavalib",
1598 apex_available: ["//apex_available:anyapex"],
1599 srcs: ["Test.java"],
1600 sdk_version: "current",
1601 public: {
1602 enabled: true,
1603 },
1604 system: {
1605 enabled: true,
1606 },
1607 }
1608 `)
1609
Paul Duffin36474d32021-03-12 12:19:43 +00001610 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001611 checkUnversionedAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001612// This is auto-generated. DO NOT EDIT.
1613
1614java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001615 name: "myjavalib",
1616 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001617 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001618 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001619 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001620 public: {
1621 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001622 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001623 current_api: "sdk_library/public/myjavalib.txt",
1624 removed_api: "sdk_library/public/myjavalib-removed.txt",
1625 sdk_version: "current",
1626 },
1627 system: {
1628 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001629 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001630 current_api: "sdk_library/system/myjavalib.txt",
1631 removed_api: "sdk_library/system/myjavalib-removed.txt",
1632 sdk_version: "system_current",
1633 },
1634}
Paul Duffine1381882021-04-16 17:05:10 +01001635`),
1636 checkVersionedAndroidBpContents(`
1637// This is auto-generated. DO NOT EDIT.
Paul Duffin3375e352020-04-28 10:44:03 +01001638
1639java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001640 name: "mysdk_myjavalib@current",
1641 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001642 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001643 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001644 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001645 public: {
1646 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001647 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001648 current_api: "sdk_library/public/myjavalib.txt",
1649 removed_api: "sdk_library/public/myjavalib-removed.txt",
1650 sdk_version: "current",
1651 },
1652 system: {
1653 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001654 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001655 current_api: "sdk_library/system/myjavalib.txt",
1656 removed_api: "sdk_library/system/myjavalib-removed.txt",
1657 sdk_version: "system_current",
1658 },
1659}
1660
1661sdk_snapshot {
1662 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001663 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001664 java_sdk_libs: ["mysdk_myjavalib@current"],
1665}
1666`),
1667 checkAllCopyRules(`
1668.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001669.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1670.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 +01001671.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001672.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1673.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 +01001674`),
1675 checkMergeZips(
1676 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1677 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1678 ),
1679 )
1680}
Paul Duffin8f265b92020-04-28 14:13:56 +01001681
1682func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001683 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001684 sdk {
1685 name: "mysdk",
1686 java_sdk_libs: ["myjavalib"],
1687 }
1688
1689 java_sdk_library {
1690 name: "myjavalib",
1691 apex_available: ["//apex_available:anyapex"],
1692 srcs: ["Test.java"],
1693 sdk_version: "current",
1694 public: {
1695 enabled: true,
1696 },
1697 system: {
1698 enabled: true,
1699 },
1700 module_lib: {
1701 enabled: true,
1702 },
1703 }
1704 `)
1705
Paul Duffin36474d32021-03-12 12:19:43 +00001706 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001707 checkUnversionedAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001708// This is auto-generated. DO NOT EDIT.
1709
1710java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001711 name: "myjavalib",
1712 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001713 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001714 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001715 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001716 public: {
1717 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001718 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001719 current_api: "sdk_library/public/myjavalib.txt",
1720 removed_api: "sdk_library/public/myjavalib-removed.txt",
1721 sdk_version: "current",
1722 },
1723 system: {
1724 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001725 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001726 current_api: "sdk_library/system/myjavalib.txt",
1727 removed_api: "sdk_library/system/myjavalib-removed.txt",
1728 sdk_version: "system_current",
1729 },
1730 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001731 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001732 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001733 current_api: "sdk_library/module-lib/myjavalib.txt",
1734 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001735 sdk_version: "module_current",
1736 },
1737}
Paul Duffine1381882021-04-16 17:05:10 +01001738`),
1739 checkVersionedAndroidBpContents(`
1740// This is auto-generated. DO NOT EDIT.
Paul Duffin8f265b92020-04-28 14:13:56 +01001741
1742java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001743 name: "mysdk_myjavalib@current",
1744 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001745 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001746 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001747 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001748 public: {
1749 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001750 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001751 current_api: "sdk_library/public/myjavalib.txt",
1752 removed_api: "sdk_library/public/myjavalib-removed.txt",
1753 sdk_version: "current",
1754 },
1755 system: {
1756 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001757 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001758 current_api: "sdk_library/system/myjavalib.txt",
1759 removed_api: "sdk_library/system/myjavalib-removed.txt",
1760 sdk_version: "system_current",
1761 },
1762 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001763 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001764 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001765 current_api: "sdk_library/module-lib/myjavalib.txt",
1766 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001767 sdk_version: "module_current",
1768 },
1769}
1770
1771sdk_snapshot {
1772 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001773 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001774 java_sdk_libs: ["mysdk_myjavalib@current"],
1775}
1776`),
1777 checkAllCopyRules(`
1778.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001779.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1780.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 +01001781.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001782.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1783.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 +01001784.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 -07001785.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1786.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 +01001787`),
1788 checkMergeZips(
1789 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1790 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001791 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001792 ),
1793 )
1794}
Paul Duffinf7a64332020-05-13 16:54:55 +01001795
Paul Duffin0c5bae52020-06-02 13:00:08 +01001796func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001797 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001798 sdk {
1799 name: "mysdk",
1800 java_sdk_libs: ["myjavalib"],
1801 }
1802
1803 java_sdk_library {
1804 name: "myjavalib",
1805 apex_available: ["//apex_available:anyapex"],
1806 srcs: ["Test.java"],
1807 sdk_version: "current",
1808 public: {
1809 enabled: true,
1810 },
1811 system_server: {
1812 enabled: true,
1813 },
1814 }
1815 `)
1816
Paul Duffin36474d32021-03-12 12:19:43 +00001817 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001818 checkUnversionedAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001819// This is auto-generated. DO NOT EDIT.
1820
1821java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001822 name: "myjavalib",
1823 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001824 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001825 apex_available: ["//apex_available:anyapex"],
1826 shared_library: true,
1827 public: {
1828 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001829 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001830 current_api: "sdk_library/public/myjavalib.txt",
1831 removed_api: "sdk_library/public/myjavalib-removed.txt",
1832 sdk_version: "current",
1833 },
1834 system_server: {
1835 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001836 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001837 current_api: "sdk_library/system-server/myjavalib.txt",
1838 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1839 sdk_version: "system_server_current",
1840 },
1841}
Paul Duffine1381882021-04-16 17:05:10 +01001842`),
1843 checkVersionedAndroidBpContents(`
1844// This is auto-generated. DO NOT EDIT.
Paul Duffin0c5bae52020-06-02 13:00:08 +01001845
1846java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001847 name: "mysdk_myjavalib@current",
1848 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001849 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001850 apex_available: ["//apex_available:anyapex"],
1851 shared_library: true,
1852 public: {
1853 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001854 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001855 current_api: "sdk_library/public/myjavalib.txt",
1856 removed_api: "sdk_library/public/myjavalib-removed.txt",
1857 sdk_version: "current",
1858 },
1859 system_server: {
1860 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001861 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001862 current_api: "sdk_library/system-server/myjavalib.txt",
1863 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1864 sdk_version: "system_server_current",
1865 },
1866}
1867
1868sdk_snapshot {
1869 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001870 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001871 java_sdk_libs: ["mysdk_myjavalib@current"],
1872}
1873`),
1874 checkAllCopyRules(`
1875.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001876.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1877.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 +01001878.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 -07001879.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1880.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 +01001881`),
1882 checkMergeZips(
1883 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1884 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1885 ),
1886 )
1887}
1888
Paul Duffinf7a64332020-05-13 16:54:55 +01001889func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001890 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001891 sdk {
1892 name: "mysdk",
1893 java_sdk_libs: ["myjavalib"],
1894 }
1895
1896 java_sdk_library {
1897 name: "myjavalib",
1898 apex_available: ["//apex_available:anyapex"],
1899 srcs: ["Test.java"],
1900 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001901 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001902 public: {
1903 enabled: true,
1904 },
1905 }
1906 `)
1907
Paul Duffin36474d32021-03-12 12:19:43 +00001908 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001909 checkUnversionedAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001910// This is auto-generated. DO NOT EDIT.
1911
1912java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001913 name: "myjavalib",
1914 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001915 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001916 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001917 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001918 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001919 public: {
1920 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001921 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001922 current_api: "sdk_library/public/myjavalib.txt",
1923 removed_api: "sdk_library/public/myjavalib-removed.txt",
1924 sdk_version: "current",
1925 },
1926}
Paul Duffine1381882021-04-16 17:05:10 +01001927`),
1928 checkVersionedAndroidBpContents(`
1929// This is auto-generated. DO NOT EDIT.
Paul Duffinf7a64332020-05-13 16:54:55 +01001930
1931java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001932 name: "mysdk_myjavalib@current",
1933 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001934 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001935 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001936 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001937 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001938 public: {
1939 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001940 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001941 current_api: "sdk_library/public/myjavalib.txt",
1942 removed_api: "sdk_library/public/myjavalib-removed.txt",
1943 sdk_version: "current",
1944 },
1945}
1946
1947sdk_snapshot {
1948 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001949 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001950 java_sdk_libs: ["mysdk_myjavalib@current"],
1951}
1952`),
1953 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001954.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001955.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1956.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 +01001957`),
1958 checkMergeZips(
1959 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1960 ),
1961 )
1962}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001963
1964func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001965 result := android.GroupFixturePreparers(
1966 prepareForSdkTestWithJavaSdkLibrary,
1967 android.FixtureAddFile("docs/known_doctags", nil),
1968 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001969 sdk {
1970 name: "mysdk",
1971 java_sdk_libs: ["myjavalib"],
1972 }
1973
1974 java_sdk_library {
1975 name: "myjavalib",
1976 srcs: ["Test.java"],
1977 sdk_version: "current",
1978 public: {
1979 enabled: true,
1980 },
1981 doctag_files: ["docs/known_doctags"],
1982 }
1983
1984 filegroup {
1985 name: "mygroup",
1986 srcs: [":myjavalib{.doctags}"],
1987 }
1988 `)
1989
Paul Duffin36474d32021-03-12 12:19:43 +00001990 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001991 checkUnversionedAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001992// This is auto-generated. DO NOT EDIT.
1993
1994java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001995 name: "myjavalib",
1996 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001997 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001998 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001999 shared_library: true,
2000 doctag_files: ["doctags/docs/known_doctags"],
2001 public: {
2002 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00002003 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01002004 current_api: "sdk_library/public/myjavalib.txt",
2005 removed_api: "sdk_library/public/myjavalib-removed.txt",
2006 sdk_version: "current",
2007 },
2008}
Paul Duffine1381882021-04-16 17:05:10 +01002009`),
2010 checkVersionedAndroidBpContents(`
2011// This is auto-generated. DO NOT EDIT.
Paul Duffina2ae7e02020-09-11 11:55:00 +01002012
2013java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01002014 name: "mysdk_myjavalib@current",
2015 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01002016 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00002017 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01002018 shared_library: true,
2019 doctag_files: ["doctags/docs/known_doctags"],
2020 public: {
2021 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00002022 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01002023 current_api: "sdk_library/public/myjavalib.txt",
2024 removed_api: "sdk_library/public/myjavalib-removed.txt",
2025 sdk_version: "current",
2026 },
2027}
2028
2029sdk_snapshot {
2030 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01002031 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01002032 java_sdk_libs: ["mysdk_myjavalib@current"],
2033}
2034`),
2035 checkAllCopyRules(`
2036.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07002037.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
2038.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 +01002039docs/known_doctags -> doctags/docs/known_doctags
2040`),
2041 )
2042}