blob: e3e9a076301e6400d11f106a5ed7cfebb339bd3e [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 Duffin1a44a992022-05-06 09:38:02 +0000883 checkInfoContents(`
884[
885 {
886 "@type": "sdk",
887 "@name": "mysdk",
888 "java_header_libs": [
889 "exported-system-module",
890 "system-module"
891 ],
892 "java_sdk_libs": [
893 "myjavalib"
894 ],
895 "java_system_modules": [
896 "my-system-modules"
897 ]
898 },
899 {
900 "@type": "java_library",
901 "@name": "exported-system-module"
902 },
903 {
904 "@type": "java_system_modules",
905 "@name": "my-system-modules",
906 "@deps": [
907 "exported-system-module",
908 "system-module"
909 ]
910 },
911 {
912 "@type": "java_sdk_library",
913 "@name": "myjavalib"
914 },
915 {
916 "@type": "java_library",
917 "@name": "system-module"
918 }
919]
920`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000921 )
922}
923
924func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000925 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000926 sdk {
927 name: "mysdk",
928 device_supported: false,
929 host_supported: true,
930 java_system_modules: ["my-system-modules"],
931 }
932
933 java_system_modules {
934 name: "my-system-modules",
935 device_supported: false,
936 host_supported: true,
937 libs: ["system-module"],
938 }
939
940 java_library {
941 name: "system-module",
942 device_supported: false,
943 host_supported: true,
944 srcs: ["Test.java"],
945 sdk_version: "none",
946 system_modules: "none",
947 }
948 `)
949
Paul Duffin36474d32021-03-12 12:19:43 +0000950 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100951 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000952// This is auto-generated. DO NOT EDIT.
953
954java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100955 name: "mysdk_system-module",
956 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000957 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000958 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000959 device_supported: false,
960 host_supported: true,
961 jars: ["java/system-module.jar"],
962}
963
Paul Duffine1381882021-04-16 17:05:10 +0100964java_system_modules_import {
965 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000966 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100967 visibility: ["//visibility:public"],
968 device_supported: false,
969 host_supported: true,
970 libs: ["mysdk_system-module"],
971}
972`),
973 checkVersionedAndroidBpContents(`
974// This is auto-generated. DO NOT EDIT.
975
976java_import {
977 name: "mysdk_system-module@current",
978 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000979 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000980 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000981 device_supported: false,
982 host_supported: true,
983 jars: ["java/system-module.jar"],
984}
985
986java_system_modules_import {
987 name: "mysdk_my-system-modules@current",
988 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100989 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000990 device_supported: false,
991 host_supported: true,
992 libs: ["mysdk_system-module@current"],
993}
994
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000995sdk_snapshot {
996 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100997 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000998 device_supported: false,
999 host_supported: true,
1000 java_system_modules: ["mysdk_my-system-modules@current"],
1001}
1002`),
1003 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
1004 )
1005}
Paul Duffin865171e2020-03-02 18:38:15 +00001006
1007func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001008 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +00001009 module_exports {
1010 name: "myexports",
1011 host_supported: true,
1012 java_libs: ["myjavalib"],
1013 target: {
1014 android: {
1015 java_header_libs: ["androidjavalib"],
1016 },
1017 host: {
1018 java_header_libs: ["hostjavalib"],
1019 },
1020 },
1021 }
1022
1023 java_library {
1024 name: "myjavalib",
1025 host_supported: true,
1026 srcs: ["Test.java"],
1027 system_modules: "none",
1028 sdk_version: "none",
1029 }
1030
1031 java_library {
1032 name: "androidjavalib",
1033 srcs: ["Test.java"],
1034 system_modules: "none",
1035 sdk_version: "none",
1036 }
1037
1038 java_library_host {
1039 name: "hostjavalib",
1040 srcs: ["Test.java"],
1041 }
1042 `)
1043
Paul Duffin36474d32021-03-12 12:19:43 +00001044 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +01001045 checkUnversionedAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +00001046// This is auto-generated. DO NOT EDIT.
1047
1048java_import {
Paul Duffine1381882021-04-16 17:05:10 +01001049 name: "hostjavalib",
1050 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001051 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001052 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001053 device_supported: false,
1054 host_supported: true,
1055 jars: ["java/hostjavalib.jar"],
1056}
1057
1058java_import {
Paul Duffine1381882021-04-16 17:05:10 +01001059 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +00001060 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001061 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001062 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +01001063 jars: ["java/androidjavalib.jar"],
1064}
1065
1066java_import {
1067 name: "myjavalib",
1068 prefer: false,
1069 visibility: ["//visibility:public"],
1070 apex_available: ["//apex_available:platform"],
1071 host_supported: true,
1072 target: {
1073 android: {
1074 jars: ["java/android/myjavalib.jar"],
1075 },
1076 linux_glibc: {
1077 jars: ["java/linux_glibc/myjavalib.jar"],
1078 },
1079 },
1080}
1081`),
1082 checkVersionedAndroidBpContents(`
1083// This is auto-generated. DO NOT EDIT.
1084
1085java_import {
1086 name: "myexports_hostjavalib@current",
1087 sdk_member_name: "hostjavalib",
1088 visibility: ["//visibility:public"],
1089 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001090 device_supported: false,
1091 host_supported: true,
1092 jars: ["java/hostjavalib.jar"],
1093}
1094
1095java_import {
1096 name: "myexports_androidjavalib@current",
1097 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001098 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001099 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001100 jars: ["java/androidjavalib.jar"],
1101}
1102
1103java_import {
Paul Duffin865171e2020-03-02 18:38:15 +00001104 name: "myexports_myjavalib@current",
1105 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001106 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001107 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001108 host_supported: true,
1109 target: {
1110 android: {
1111 jars: ["java/android/myjavalib.jar"],
1112 },
1113 linux_glibc: {
1114 jars: ["java/linux_glibc/myjavalib.jar"],
1115 },
1116 },
1117}
1118
Paul Duffin865171e2020-03-02 18:38:15 +00001119module_exports_snapshot {
1120 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001121 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001122 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001123 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001124 target: {
1125 android: {
1126 java_header_libs: ["myexports_androidjavalib@current"],
1127 },
1128 linux_glibc: {
1129 java_header_libs: ["myexports_hostjavalib@current"],
1130 },
1131 },
Paul Duffin865171e2020-03-02 18:38:15 +00001132}
1133`),
1134 checkAllCopyRules(`
1135.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1136.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1137.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1138.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1139`),
1140 )
1141}
Paul Duffindd46f712020-02-10 13:37:10 +00001142
1143func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001144 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001145 sdk {
1146 name: "mysdk",
1147 java_sdk_libs: ["myjavalib"],
1148 }
1149
1150 java_sdk_library {
1151 name: "myjavalib",
1152 apex_available: ["//apex_available:anyapex"],
1153 srcs: ["Test.java"],
1154 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001155 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001156 stubs_library_visibility: ["//other"],
1157 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +01001158 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001159 }
1160 `)
1161
Paul Duffin36474d32021-03-12 12:19:43 +00001162 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001163 checkUnversionedAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001164// This is auto-generated. DO NOT EDIT.
1165
1166java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001167 name: "myjavalib",
1168 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001169 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001170 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001171 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001172 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001173 public: {
1174 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001175 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001176 current_api: "sdk_library/public/myjavalib.txt",
1177 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001178 sdk_version: "current",
1179 },
1180 system: {
1181 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001182 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001183 current_api: "sdk_library/system/myjavalib.txt",
1184 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001185 sdk_version: "system_current",
1186 },
1187 test: {
1188 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001189 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001190 current_api: "sdk_library/test/myjavalib.txt",
1191 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001192 sdk_version: "test_current",
1193 },
1194}
Paul Duffine1381882021-04-16 17:05:10 +01001195`),
1196 checkVersionedAndroidBpContents(`
1197// This is auto-generated. DO NOT EDIT.
Paul Duffindd46f712020-02-10 13:37:10 +00001198
1199java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001200 name: "mysdk_myjavalib@current",
1201 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001202 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001203 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001204 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001205 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001206 public: {
1207 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001208 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001209 current_api: "sdk_library/public/myjavalib.txt",
1210 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001211 sdk_version: "current",
1212 },
1213 system: {
1214 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001215 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001216 current_api: "sdk_library/system/myjavalib.txt",
1217 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001218 sdk_version: "system_current",
1219 },
1220 test: {
1221 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001222 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001223 current_api: "sdk_library/test/myjavalib.txt",
1224 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001225 sdk_version: "test_current",
1226 },
1227}
1228
1229sdk_snapshot {
1230 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001231 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001232 java_sdk_libs: ["mysdk_myjavalib@current"],
1233}
1234`),
1235 checkAllCopyRules(`
1236.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001237.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1238.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 +00001239.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001240.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1241.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 +00001242.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001243.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1244.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 +00001245`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001246 checkMergeZips(
1247 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1248 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +01001249 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1250 ),
1251 snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) {
Paul Duffinb97b1572021-04-29 21:50:40 +01001252 // Make sure that the name of the child modules created by a versioned java_sdk_library_import
1253 // module is correct, i.e. the suffix is added before the version and not after.
1254 result.Module("mysdk_myjavalib.stubs@current", "android_common")
1255 result.Module("mysdk_myjavalib.stubs.source@current", "android_common")
Paul Duffin33028712021-06-22 11:00:07 +01001256 }),
Paul Duffindd46f712020-02-10 13:37:10 +00001257 )
1258}
Paul Duffin3375e352020-04-28 10:44:03 +01001259
Paul Duffin22628d52021-05-12 23:13:22 +01001260func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1261 result := android.GroupFixturePreparers(
1262 prepareForSdkTestWithJavaSdkLibrary,
1263 android.FixtureMergeEnv(map[string]string{
1264 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1265 }),
1266 ).RunTestWithBp(t, `
1267 sdk {
1268 name: "mysdk",
1269 java_sdk_libs: ["myjavalib"],
1270 }
1271
1272 java_sdk_library {
1273 name: "myjavalib",
1274 srcs: ["Test.java"],
1275 sdk_version: "current",
1276 shared_library: false,
1277 public: {
1278 enabled: true,
1279 },
1280 }
1281 `)
1282
1283 CheckSnapshot(t, result, "mysdk", "",
1284 checkUnversionedAndroidBpContents(`
1285// This is auto-generated. DO NOT EDIT.
1286
1287java_sdk_library_import {
1288 name: "myjavalib",
1289 prefer: false,
1290 visibility: ["//visibility:public"],
1291 apex_available: ["//apex_available:platform"],
1292 shared_library: false,
1293 public: {
1294 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1295 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1296 current_api: "sdk_library/public/myjavalib.txt",
1297 removed_api: "sdk_library/public/myjavalib-removed.txt",
1298 sdk_version: "current",
1299 },
1300}
1301 `),
1302 checkAllCopyRules(`
1303.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1304.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1305.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1306.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1307 `),
1308 )
1309}
1310
Anton Hanssond78eb762021-09-21 15:25:12 +01001311func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1312 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1313 sdk {
1314 name: "mysdk",
1315 java_sdk_libs: ["myjavalib"],
1316 }
1317
1318 java_sdk_library {
1319 name: "myjavalib",
1320 srcs: ["Test.java"],
1321 sdk_version: "current",
1322 shared_library: false,
1323 annotations_enabled: true,
1324 public: {
1325 enabled: true,
1326 },
1327 }
1328 `)
1329
1330 CheckSnapshot(t, result, "mysdk", "",
1331 checkUnversionedAndroidBpContents(`
1332// This is auto-generated. DO NOT EDIT.
1333
1334java_sdk_library_import {
1335 name: "myjavalib",
1336 prefer: false,
1337 visibility: ["//visibility:public"],
1338 apex_available: ["//apex_available:platform"],
1339 shared_library: false,
1340 public: {
1341 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1342 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1343 current_api: "sdk_library/public/myjavalib.txt",
1344 removed_api: "sdk_library/public/myjavalib-removed.txt",
1345 annotations: "sdk_library/public/myjavalib_annotations.zip",
1346 sdk_version: "current",
1347 },
1348}
1349 `),
1350 checkAllCopyRules(`
1351.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1352.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1353.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1354.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
1355 `),
1356 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1357 )
1358}
1359
Paul Duffina54016c2022-01-27 16:39:47 +00001360func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
1361 result := android.GroupFixturePreparers(
1362 prepareForSdkTestWithJavaSdkLibrary,
1363 android.FixtureMergeEnv(map[string]string{
1364 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
1365 }),
1366 ).RunTestWithBp(t, `
1367 sdk {
1368 name: "mysdk",
1369 java_sdk_libs: ["myjavalib"],
1370 }
1371
1372 java_sdk_library {
1373 name: "myjavalib",
1374 srcs: ["Test.java"],
1375 sdk_version: "current",
1376 shared_library: false,
1377 annotations_enabled: true,
1378 public: {
1379 enabled: true,
1380 },
1381 }
1382 `)
1383
1384 CheckSnapshot(t, result, "mysdk", "",
1385 checkUnversionedAndroidBpContents(`
1386// This is auto-generated. DO NOT EDIT.
1387
1388java_sdk_library_import {
1389 name: "myjavalib",
1390 prefer: false,
1391 visibility: ["//visibility:public"],
1392 apex_available: ["//apex_available:platform"],
1393 shared_library: false,
1394 public: {
1395 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1396 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1397 current_api: "sdk_library/public/myjavalib.txt",
1398 removed_api: "sdk_library/public/myjavalib-removed.txt",
1399 sdk_version: "current",
1400 },
1401}
1402 `),
1403 checkAllCopyRules(`
1404.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1405.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1406.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1407 `),
1408 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1409 )
1410}
1411
Paul Duffin1267d872021-04-16 17:21:36 +01001412func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1413 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1414 sdk {
1415 name: "mysdk",
1416 java_sdk_libs: ["myjavalib"],
1417 }
1418
1419 java_sdk_library {
1420 name: "myjavalib",
1421 srcs: ["Test.java"],
1422 sdk_version: "current",
1423 shared_library: false,
1424 compile_dex: true,
1425 public: {
1426 enabled: true,
1427 },
1428 system: {
1429 enabled: true,
1430 },
1431 }
1432 `)
1433
1434 CheckSnapshot(t, result, "mysdk", "",
1435 checkUnversionedAndroidBpContents(`
1436// This is auto-generated. DO NOT EDIT.
1437
1438java_sdk_library_import {
1439 name: "myjavalib",
1440 prefer: false,
1441 visibility: ["//visibility:public"],
1442 apex_available: ["//apex_available:platform"],
1443 shared_library: false,
1444 compile_dex: true,
1445 public: {
1446 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1447 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1448 current_api: "sdk_library/public/myjavalib.txt",
1449 removed_api: "sdk_library/public/myjavalib-removed.txt",
1450 sdk_version: "current",
1451 },
1452 system: {
1453 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1454 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1455 current_api: "sdk_library/system/myjavalib.txt",
1456 removed_api: "sdk_library/system/myjavalib-removed.txt",
1457 sdk_version: "system_current",
1458 },
1459}
1460`),
1461 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1462 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1463 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1464 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001465 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001466 return path.RelativeToTop().String()
1467 }
1468
1469 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1470 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1471
1472 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1473 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1474 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1475
1476 // This should fall back to system as module is not available.
1477 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1478 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1479
1480 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1481 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1482 }),
1483 )
1484}
1485
Paul Duffin780c5f42020-05-12 15:52:55 +01001486func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001487 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001488 sdk {
1489 name: "mysdk",
1490 java_sdk_libs: ["myjavalib"],
1491 }
1492
1493 java_sdk_library {
1494 name: "myjavalib",
1495 srcs: ["Test.java"],
1496 sdk_version: "none",
1497 system_modules: "none",
1498 }
1499 `)
1500
Paul Duffin36474d32021-03-12 12:19:43 +00001501 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001502 checkUnversionedAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001503// This is auto-generated. DO NOT EDIT.
1504
1505java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001506 name: "myjavalib",
1507 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001508 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001509 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001510 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001511 public: {
1512 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001513 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001514 current_api: "sdk_library/public/myjavalib.txt",
1515 removed_api: "sdk_library/public/myjavalib-removed.txt",
1516 sdk_version: "none",
1517 },
1518}
Paul Duffine1381882021-04-16 17:05:10 +01001519`),
1520 checkVersionedAndroidBpContents(`
1521// This is auto-generated. DO NOT EDIT.
Paul Duffin780c5f42020-05-12 15:52:55 +01001522
1523java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001524 name: "mysdk_myjavalib@current",
1525 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001526 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001527 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001528 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001529 public: {
1530 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001531 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001532 current_api: "sdk_library/public/myjavalib.txt",
1533 removed_api: "sdk_library/public/myjavalib-removed.txt",
1534 sdk_version: "none",
1535 },
1536}
1537
1538sdk_snapshot {
1539 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001540 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001541 java_sdk_libs: ["mysdk_myjavalib@current"],
1542}
1543`),
1544 checkAllCopyRules(`
1545.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001546.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1547.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 +01001548`),
1549 checkMergeZips(
1550 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1551 ),
1552 )
1553}
1554
Paul Duffin87a05a32020-05-12 11:50:28 +01001555func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001556 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001557 sdk {
1558 name: "mysdk",
1559 java_sdk_libs: ["myjavalib"],
1560 }
1561
1562 java_sdk_library {
1563 name: "myjavalib",
1564 srcs: ["Test.java"],
1565 sdk_version: "module_current",
1566 public: {
1567 enabled: true,
1568 sdk_version: "module_current",
1569 },
1570 }
1571 `)
1572
Paul Duffin36474d32021-03-12 12:19:43 +00001573 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001574 checkUnversionedAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001575// This is auto-generated. DO NOT EDIT.
1576
1577java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001578 name: "myjavalib",
1579 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001580 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001581 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001582 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001583 public: {
1584 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001585 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001586 current_api: "sdk_library/public/myjavalib.txt",
1587 removed_api: "sdk_library/public/myjavalib-removed.txt",
1588 sdk_version: "module_current",
1589 },
1590}
Paul Duffine1381882021-04-16 17:05:10 +01001591`),
1592 checkVersionedAndroidBpContents(`
1593// This is auto-generated. DO NOT EDIT.
Paul Duffin87a05a32020-05-12 11:50:28 +01001594
1595java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001596 name: "mysdk_myjavalib@current",
1597 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001598 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001599 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001600 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001601 public: {
1602 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001603 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001604 current_api: "sdk_library/public/myjavalib.txt",
1605 removed_api: "sdk_library/public/myjavalib-removed.txt",
1606 sdk_version: "module_current",
1607 },
1608}
1609
1610sdk_snapshot {
1611 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001612 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001613 java_sdk_libs: ["mysdk_myjavalib@current"],
1614}
1615`),
1616 checkAllCopyRules(`
1617.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001618.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1619.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 +01001620`),
1621 checkMergeZips(
1622 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1623 ),
1624 )
1625}
1626
1627func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001628 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001629 sdk {
1630 name: "mysdk",
1631 java_sdk_libs: ["myjavalib"],
1632 }
1633
1634 java_sdk_library {
1635 name: "myjavalib",
1636 apex_available: ["//apex_available:anyapex"],
1637 srcs: ["Test.java"],
1638 sdk_version: "current",
1639 public: {
1640 enabled: true,
1641 },
1642 system: {
1643 enabled: true,
1644 },
1645 }
1646 `)
1647
Paul Duffin36474d32021-03-12 12:19:43 +00001648 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001649 checkUnversionedAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001650// This is auto-generated. DO NOT EDIT.
1651
1652java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001653 name: "myjavalib",
1654 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001655 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001656 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001657 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001658 public: {
1659 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001660 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001661 current_api: "sdk_library/public/myjavalib.txt",
1662 removed_api: "sdk_library/public/myjavalib-removed.txt",
1663 sdk_version: "current",
1664 },
1665 system: {
1666 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001667 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001668 current_api: "sdk_library/system/myjavalib.txt",
1669 removed_api: "sdk_library/system/myjavalib-removed.txt",
1670 sdk_version: "system_current",
1671 },
1672}
Paul Duffine1381882021-04-16 17:05:10 +01001673`),
1674 checkVersionedAndroidBpContents(`
1675// This is auto-generated. DO NOT EDIT.
Paul Duffin3375e352020-04-28 10:44:03 +01001676
1677java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001678 name: "mysdk_myjavalib@current",
1679 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001680 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001681 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001682 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001683 public: {
1684 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001685 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001686 current_api: "sdk_library/public/myjavalib.txt",
1687 removed_api: "sdk_library/public/myjavalib-removed.txt",
1688 sdk_version: "current",
1689 },
1690 system: {
1691 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001692 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001693 current_api: "sdk_library/system/myjavalib.txt",
1694 removed_api: "sdk_library/system/myjavalib-removed.txt",
1695 sdk_version: "system_current",
1696 },
1697}
1698
1699sdk_snapshot {
1700 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001701 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001702 java_sdk_libs: ["mysdk_myjavalib@current"],
1703}
1704`),
1705 checkAllCopyRules(`
1706.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001707.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1708.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 +01001709.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001710.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1711.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 +01001712`),
1713 checkMergeZips(
1714 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1715 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1716 ),
1717 )
1718}
Paul Duffin8f265b92020-04-28 14:13:56 +01001719
1720func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001721 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001722 sdk {
1723 name: "mysdk",
1724 java_sdk_libs: ["myjavalib"],
1725 }
1726
1727 java_sdk_library {
1728 name: "myjavalib",
1729 apex_available: ["//apex_available:anyapex"],
1730 srcs: ["Test.java"],
1731 sdk_version: "current",
1732 public: {
1733 enabled: true,
1734 },
1735 system: {
1736 enabled: true,
1737 },
1738 module_lib: {
1739 enabled: true,
1740 },
1741 }
1742 `)
1743
Paul Duffin36474d32021-03-12 12:19:43 +00001744 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001745 checkUnversionedAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001746// This is auto-generated. DO NOT EDIT.
1747
1748java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001749 name: "myjavalib",
1750 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001751 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001752 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001753 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001754 public: {
1755 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001756 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001757 current_api: "sdk_library/public/myjavalib.txt",
1758 removed_api: "sdk_library/public/myjavalib-removed.txt",
1759 sdk_version: "current",
1760 },
1761 system: {
1762 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001763 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001764 current_api: "sdk_library/system/myjavalib.txt",
1765 removed_api: "sdk_library/system/myjavalib-removed.txt",
1766 sdk_version: "system_current",
1767 },
1768 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001769 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001770 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001771 current_api: "sdk_library/module-lib/myjavalib.txt",
1772 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001773 sdk_version: "module_current",
1774 },
1775}
Paul Duffine1381882021-04-16 17:05:10 +01001776`),
1777 checkVersionedAndroidBpContents(`
1778// This is auto-generated. DO NOT EDIT.
Paul Duffin8f265b92020-04-28 14:13:56 +01001779
1780java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001781 name: "mysdk_myjavalib@current",
1782 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001783 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001784 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001785 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001786 public: {
1787 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001788 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001789 current_api: "sdk_library/public/myjavalib.txt",
1790 removed_api: "sdk_library/public/myjavalib-removed.txt",
1791 sdk_version: "current",
1792 },
1793 system: {
1794 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001795 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001796 current_api: "sdk_library/system/myjavalib.txt",
1797 removed_api: "sdk_library/system/myjavalib-removed.txt",
1798 sdk_version: "system_current",
1799 },
1800 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001801 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001802 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001803 current_api: "sdk_library/module-lib/myjavalib.txt",
1804 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001805 sdk_version: "module_current",
1806 },
1807}
1808
1809sdk_snapshot {
1810 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001811 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001812 java_sdk_libs: ["mysdk_myjavalib@current"],
1813}
1814`),
1815 checkAllCopyRules(`
1816.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001817.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1818.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 +01001819.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001820.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1821.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 +01001822.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 -07001823.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1824.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 +01001825`),
1826 checkMergeZips(
1827 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1828 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001829 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001830 ),
1831 )
1832}
Paul Duffinf7a64332020-05-13 16:54:55 +01001833
Paul Duffin0c5bae52020-06-02 13:00:08 +01001834func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001835 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001836 sdk {
1837 name: "mysdk",
1838 java_sdk_libs: ["myjavalib"],
1839 }
1840
1841 java_sdk_library {
1842 name: "myjavalib",
1843 apex_available: ["//apex_available:anyapex"],
1844 srcs: ["Test.java"],
1845 sdk_version: "current",
1846 public: {
1847 enabled: true,
1848 },
1849 system_server: {
1850 enabled: true,
1851 },
1852 }
1853 `)
1854
Paul Duffin36474d32021-03-12 12:19:43 +00001855 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001856 checkUnversionedAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001857// This is auto-generated. DO NOT EDIT.
1858
1859java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001860 name: "myjavalib",
1861 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001862 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001863 apex_available: ["//apex_available:anyapex"],
1864 shared_library: true,
1865 public: {
1866 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001867 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001868 current_api: "sdk_library/public/myjavalib.txt",
1869 removed_api: "sdk_library/public/myjavalib-removed.txt",
1870 sdk_version: "current",
1871 },
1872 system_server: {
1873 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001874 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001875 current_api: "sdk_library/system-server/myjavalib.txt",
1876 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1877 sdk_version: "system_server_current",
1878 },
1879}
Paul Duffine1381882021-04-16 17:05:10 +01001880`),
1881 checkVersionedAndroidBpContents(`
1882// This is auto-generated. DO NOT EDIT.
Paul Duffin0c5bae52020-06-02 13:00:08 +01001883
1884java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001885 name: "mysdk_myjavalib@current",
1886 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001887 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001888 apex_available: ["//apex_available:anyapex"],
1889 shared_library: true,
1890 public: {
1891 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001892 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001893 current_api: "sdk_library/public/myjavalib.txt",
1894 removed_api: "sdk_library/public/myjavalib-removed.txt",
1895 sdk_version: "current",
1896 },
1897 system_server: {
1898 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001899 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001900 current_api: "sdk_library/system-server/myjavalib.txt",
1901 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1902 sdk_version: "system_server_current",
1903 },
1904}
1905
1906sdk_snapshot {
1907 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001908 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001909 java_sdk_libs: ["mysdk_myjavalib@current"],
1910}
1911`),
1912 checkAllCopyRules(`
1913.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001914.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1915.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 +01001916.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 -07001917.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1918.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 +01001919`),
1920 checkMergeZips(
1921 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1922 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1923 ),
1924 )
1925}
1926
Paul Duffinf7a64332020-05-13 16:54:55 +01001927func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001928 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001929 sdk {
1930 name: "mysdk",
1931 java_sdk_libs: ["myjavalib"],
1932 }
1933
1934 java_sdk_library {
1935 name: "myjavalib",
1936 apex_available: ["//apex_available:anyapex"],
1937 srcs: ["Test.java"],
1938 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001939 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001940 public: {
1941 enabled: true,
1942 },
1943 }
1944 `)
1945
Paul Duffin36474d32021-03-12 12:19:43 +00001946 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001947 checkUnversionedAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001948// This is auto-generated. DO NOT EDIT.
1949
1950java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001951 name: "myjavalib",
1952 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001953 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001954 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001955 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001956 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001957 public: {
1958 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001959 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001960 current_api: "sdk_library/public/myjavalib.txt",
1961 removed_api: "sdk_library/public/myjavalib-removed.txt",
1962 sdk_version: "current",
1963 },
1964}
Paul Duffine1381882021-04-16 17:05:10 +01001965`),
1966 checkVersionedAndroidBpContents(`
1967// This is auto-generated. DO NOT EDIT.
Paul Duffinf7a64332020-05-13 16:54:55 +01001968
1969java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001970 name: "mysdk_myjavalib@current",
1971 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001972 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001973 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001974 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001975 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001976 public: {
1977 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001978 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001979 current_api: "sdk_library/public/myjavalib.txt",
1980 removed_api: "sdk_library/public/myjavalib-removed.txt",
1981 sdk_version: "current",
1982 },
1983}
1984
1985sdk_snapshot {
1986 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001987 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001988 java_sdk_libs: ["mysdk_myjavalib@current"],
1989}
1990`),
1991 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001992.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001993.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1994.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 +01001995`),
1996 checkMergeZips(
1997 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1998 ),
1999 )
2000}
Paul Duffina2ae7e02020-09-11 11:55:00 +01002001
2002func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00002003 result := android.GroupFixturePreparers(
2004 prepareForSdkTestWithJavaSdkLibrary,
2005 android.FixtureAddFile("docs/known_doctags", nil),
2006 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01002007 sdk {
2008 name: "mysdk",
2009 java_sdk_libs: ["myjavalib"],
2010 }
2011
2012 java_sdk_library {
2013 name: "myjavalib",
2014 srcs: ["Test.java"],
2015 sdk_version: "current",
2016 public: {
2017 enabled: true,
2018 },
2019 doctag_files: ["docs/known_doctags"],
2020 }
2021
2022 filegroup {
2023 name: "mygroup",
2024 srcs: [":myjavalib{.doctags}"],
2025 }
2026 `)
2027
Paul Duffin36474d32021-03-12 12:19:43 +00002028 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01002029 checkUnversionedAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01002030// This is auto-generated. DO NOT EDIT.
2031
2032java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01002033 name: "myjavalib",
2034 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01002035 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00002036 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01002037 shared_library: true,
2038 doctag_files: ["doctags/docs/known_doctags"],
2039 public: {
2040 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00002041 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01002042 current_api: "sdk_library/public/myjavalib.txt",
2043 removed_api: "sdk_library/public/myjavalib-removed.txt",
2044 sdk_version: "current",
2045 },
2046}
Paul Duffine1381882021-04-16 17:05:10 +01002047`),
2048 checkVersionedAndroidBpContents(`
2049// This is auto-generated. DO NOT EDIT.
Paul Duffina2ae7e02020-09-11 11:55:00 +01002050
2051java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01002052 name: "mysdk_myjavalib@current",
2053 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01002054 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00002055 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01002056 shared_library: true,
2057 doctag_files: ["doctags/docs/known_doctags"],
2058 public: {
2059 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00002060 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01002061 current_api: "sdk_library/public/myjavalib.txt",
2062 removed_api: "sdk_library/public/myjavalib-removed.txt",
2063 sdk_version: "current",
2064 },
2065}
2066
2067sdk_snapshot {
2068 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01002069 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01002070 java_sdk_libs: ["mysdk_myjavalib@current"],
2071}
2072`),
2073 checkAllCopyRules(`
2074.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07002075.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
2076.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 +01002077docs/known_doctags -> doctags/docs/known_doctags
2078`),
2079 )
2080}