blob: 42826b79e76323b5e00e62b3c73f4d89c6afaa4c [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 Duffin7b3e10a2021-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 Duffin7b3e10a2021-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 Duffin7b3e10a2021-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 Duffin7b3e10a2021-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"],
456 jars: ["java/myjavalib.jar"],
Paul Duffin7b3e10a2021-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 Duffin22ff0aa2021-02-04 11:15:34 +0000468 jars: ["java/myjavalib.jar"],
Paul Duffin7b3e10a2021-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 Duffindb170e42020-12-08 17:48:25 +0000477`),
478 checkAllCopyRules(`
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000479.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000480`),
481 )
482}
483
Paul Duffina0dbf432019-12-05 11:25:53 +0000484func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000485 result := android.GroupFixturePreparers(
486 prepareForSdkTestWithJava,
487 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
488 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000489 module_exports {
490 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000491 device_supported: false,
492 host_supported: true,
493 java_libs: ["myjavalib"],
494 }
495
496 java_library {
497 name: "myjavalib",
498 device_supported: false,
499 host_supported: true,
500 srcs: ["Test.java"],
501 aidl: {
502 export_include_dirs: ["aidl"],
503 },
504 system_modules: "none",
505 sdk_version: "none",
506 compile_dex: true,
507 }
508 `)
509
Paul Duffin36474d32021-03-12 12:19:43 +0000510 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100511 checkUnversionedAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000512// This is auto-generated. DO NOT EDIT.
513
514java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100515 name: "myjavalib",
516 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100517 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000518 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000519 device_supported: false,
520 host_supported: true,
521 jars: ["java/myjavalib.jar"],
522}
Paul Duffine1381882021-04-16 17:05:10 +0100523`),
524 checkVersionedAndroidBpContents(`
525// This is auto-generated. DO NOT EDIT.
Paul Duffina80fdec2019-12-03 15:25:00 +0000526
527java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100528 name: "myexports_myjavalib@current",
529 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100530 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000531 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000532 device_supported: false,
533 host_supported: true,
534 jars: ["java/myjavalib.jar"],
535}
536
Paul Duffine6029182019-12-16 17:43:48 +0000537module_exports_snapshot {
538 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100539 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000540 device_supported: false,
541 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000542 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000543}
544`),
545 checkAllCopyRules(`
546.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
547aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
548`),
549 )
550}
551
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000552func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000553 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000554 module_exports {
555 name: "myexports",
556 java_tests: ["myjavatests"],
557 }
558
559 java_test {
560 name: "myjavatests",
561 srcs: ["Test.java"],
562 system_modules: "none",
563 sdk_version: "none",
564 compile_dex: true,
565 host_supported: true,
566 }
567 `)
568
Paul Duffin36474d32021-03-12 12:19:43 +0000569 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100570 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000571// This is auto-generated. DO NOT EDIT.
572
573java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100574 name: "myjavatests",
575 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100576 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000577 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000578 jars: ["java/myjavatests.jar"],
579 test_config: "java/myjavatests-AndroidTest.xml",
580}
Paul Duffine1381882021-04-16 17:05:10 +0100581`),
582 checkVersionedAndroidBpContents(`
583// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000584
585java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100586 name: "myexports_myjavatests@current",
587 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100588 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000589 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000590 jars: ["java/myjavatests.jar"],
591 test_config: "java/myjavatests-AndroidTest.xml",
592}
593
594module_exports_snapshot {
595 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100596 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000597 java_tests: ["myexports_myjavatests@current"],
598}
599`),
600 checkAllCopyRules(`
601.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
602.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
603`),
604 )
605}
606
607func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000608 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000609 module_exports {
610 name: "myexports",
611 device_supported: false,
612 host_supported: true,
613 java_tests: ["myjavatests"],
614 }
615
616 java_test {
617 name: "myjavatests",
618 device_supported: false,
619 host_supported: true,
620 srcs: ["Test.java"],
621 system_modules: "none",
622 sdk_version: "none",
623 compile_dex: true,
624 }
625 `)
626
Paul Duffin36474d32021-03-12 12:19:43 +0000627 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100628 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000629// This is auto-generated. DO NOT EDIT.
630
631java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100632 name: "myjavatests",
633 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100634 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000635 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000636 device_supported: false,
637 host_supported: true,
638 jars: ["java/myjavatests.jar"],
639 test_config: "java/myjavatests-AndroidTest.xml",
640}
Paul Duffine1381882021-04-16 17:05:10 +0100641`),
642 checkVersionedAndroidBpContents(`
643// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000644
645java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100646 name: "myexports_myjavatests@current",
647 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100648 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000649 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000650 device_supported: false,
651 host_supported: true,
652 jars: ["java/myjavatests.jar"],
653 test_config: "java/myjavatests-AndroidTest.xml",
654}
655
656module_exports_snapshot {
657 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100658 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000659 device_supported: false,
660 host_supported: true,
661 java_tests: ["myexports_myjavatests@current"],
662}
663`),
664 checkAllCopyRules(`
665.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
666.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
667`),
668 )
669}
670
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000671func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin0e7bb0e2021-06-22 11:00:07 +0100672 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000673 sdk {
674 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000675 java_header_libs: ["exported-system-module"],
Paul Duffin0e7bb0e2021-06-22 11:00:07 +0100676 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000677 java_system_modules: ["my-system-modules"],
678 }
679
Paul Duffin0e7bb0e2021-06-22 11:00:07 +0100680 java_sdk_library {
681 name: "myjavalib",
682 apex_available: ["//apex_available:anyapex"],
683 srcs: ["Test.java"],
684 sdk_version: "current",
685 shared_library: false,
686 public: {
687 enabled: true,
688 },
689 }
690
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000691 java_system_modules {
692 name: "my-system-modules",
Paul Duffin0e7bb0e2021-06-22 11:00:07 +0100693 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000694 }
695
696 java_library {
697 name: "system-module",
698 srcs: ["Test.java"],
699 sdk_version: "none",
700 system_modules: "none",
701 }
Paul Duffin72910952020-01-20 18:16:30 +0000702
703 java_library {
704 name: "exported-system-module",
705 srcs: ["Test.java"],
706 sdk_version: "none",
707 system_modules: "none",
708 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000709 `)
710
Paul Duffin36474d32021-03-12 12:19:43 +0000711 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100712 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000713// This is auto-generated. DO NOT EDIT.
714
715java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100716 name: "exported-system-module",
717 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100718 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000719 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000720 jars: ["java/exported-system-module.jar"],
721}
722
723java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100724 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000725 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100726 visibility: ["//visibility:private"],
727 apex_available: ["//apex_available:platform"],
728 jars: ["java/system-module.jar"],
729}
730
Paul Duffin0e7bb0e2021-06-22 11:00:07 +0100731java_sdk_library_import {
732 name: "myjavalib",
733 prefer: false,
734 visibility: ["//visibility:public"],
735 apex_available: ["//apex_available:anyapex"],
736 shared_library: false,
737 public: {
738 jars: ["sdk_library/public/myjavalib-stubs.jar"],
739 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
740 current_api: "sdk_library/public/myjavalib.txt",
741 removed_api: "sdk_library/public/myjavalib-removed.txt",
742 sdk_version: "current",
743 },
744}
745
Paul Duffine1381882021-04-16 17:05:10 +0100746java_system_modules_import {
747 name: "my-system-modules",
748 prefer: false,
749 visibility: ["//visibility:public"],
750 libs: [
751 "mysdk_system-module",
752 "exported-system-module",
Paul Duffina1aa7382021-04-29 21:50:40 +0100753 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100754 ],
755}
756`),
757 checkVersionedAndroidBpContents(`
758// This is auto-generated. DO NOT EDIT.
759
760java_import {
761 name: "mysdk_exported-system-module@current",
762 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100763 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000764 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000765 jars: ["java/exported-system-module.jar"],
766}
767
768java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000769 name: "mysdk_system-module@current",
770 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000771 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000772 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000773 jars: ["java/system-module.jar"],
774}
775
Paul Duffin0e7bb0e2021-06-22 11:00:07 +0100776java_sdk_library_import {
777 name: "mysdk_myjavalib@current",
778 sdk_member_name: "myjavalib",
779 visibility: ["//visibility:public"],
780 apex_available: ["//apex_available:anyapex"],
781 shared_library: false,
782 public: {
783 jars: ["sdk_library/public/myjavalib-stubs.jar"],
784 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
785 current_api: "sdk_library/public/myjavalib.txt",
786 removed_api: "sdk_library/public/myjavalib-removed.txt",
787 sdk_version: "current",
788 },
789}
790
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000791java_system_modules_import {
792 name: "mysdk_my-system-modules@current",
793 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100794 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000795 libs: [
796 "mysdk_system-module@current",
797 "mysdk_exported-system-module@current",
Paul Duffin0e7bb0e2021-06-22 11:00:07 +0100798 "mysdk_myjavalib.stubs@current",
Paul Duffin72910952020-01-20 18:16:30 +0000799 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000800}
801
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000802sdk_snapshot {
803 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100804 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000805 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin0e7bb0e2021-06-22 11:00:07 +0100806 java_sdk_libs: ["mysdk_myjavalib@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000807 java_system_modules: ["mysdk_my-system-modules@current"],
808}
809`),
Paul Duffin72910952020-01-20 18:16:30 +0000810 checkAllCopyRules(`
811.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
812.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin0e7bb0e2021-06-22 11:00:07 +0100813.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
814.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
815.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 +0000816`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000817 )
818}
819
820func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000821 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000822 sdk {
823 name: "mysdk",
824 device_supported: false,
825 host_supported: true,
826 java_system_modules: ["my-system-modules"],
827 }
828
829 java_system_modules {
830 name: "my-system-modules",
831 device_supported: false,
832 host_supported: true,
833 libs: ["system-module"],
834 }
835
836 java_library {
837 name: "system-module",
838 device_supported: false,
839 host_supported: true,
840 srcs: ["Test.java"],
841 sdk_version: "none",
842 system_modules: "none",
843 }
844 `)
845
Paul Duffin36474d32021-03-12 12:19:43 +0000846 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100847 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000848// This is auto-generated. DO NOT EDIT.
849
850java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100851 name: "mysdk_system-module",
852 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000853 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000854 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000855 device_supported: false,
856 host_supported: true,
857 jars: ["java/system-module.jar"],
858}
859
Paul Duffine1381882021-04-16 17:05:10 +0100860java_system_modules_import {
861 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000862 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100863 visibility: ["//visibility:public"],
864 device_supported: false,
865 host_supported: true,
866 libs: ["mysdk_system-module"],
867}
868`),
869 checkVersionedAndroidBpContents(`
870// This is auto-generated. DO NOT EDIT.
871
872java_import {
873 name: "mysdk_system-module@current",
874 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000875 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000876 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000877 device_supported: false,
878 host_supported: true,
879 jars: ["java/system-module.jar"],
880}
881
882java_system_modules_import {
883 name: "mysdk_my-system-modules@current",
884 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100885 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000886 device_supported: false,
887 host_supported: true,
888 libs: ["mysdk_system-module@current"],
889}
890
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000891sdk_snapshot {
892 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100893 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000894 device_supported: false,
895 host_supported: true,
896 java_system_modules: ["mysdk_my-system-modules@current"],
897}
898`),
899 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
900 )
901}
Paul Duffin865171e2020-03-02 18:38:15 +0000902
903func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000904 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000905 module_exports {
906 name: "myexports",
907 host_supported: true,
908 java_libs: ["myjavalib"],
909 target: {
910 android: {
911 java_header_libs: ["androidjavalib"],
912 },
913 host: {
914 java_header_libs: ["hostjavalib"],
915 },
916 },
917 }
918
919 java_library {
920 name: "myjavalib",
921 host_supported: true,
922 srcs: ["Test.java"],
923 system_modules: "none",
924 sdk_version: "none",
925 }
926
927 java_library {
928 name: "androidjavalib",
929 srcs: ["Test.java"],
930 system_modules: "none",
931 sdk_version: "none",
932 }
933
934 java_library_host {
935 name: "hostjavalib",
936 srcs: ["Test.java"],
937 }
938 `)
939
Paul Duffin36474d32021-03-12 12:19:43 +0000940 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100941 checkUnversionedAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000942// This is auto-generated. DO NOT EDIT.
943
944java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100945 name: "hostjavalib",
946 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100947 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000948 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000949 device_supported: false,
950 host_supported: true,
951 jars: ["java/hostjavalib.jar"],
952}
953
954java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100955 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000956 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100957 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000958 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100959 jars: ["java/androidjavalib.jar"],
960}
961
962java_import {
963 name: "myjavalib",
964 prefer: false,
965 visibility: ["//visibility:public"],
966 apex_available: ["//apex_available:platform"],
967 host_supported: true,
968 target: {
969 android: {
970 jars: ["java/android/myjavalib.jar"],
971 },
972 linux_glibc: {
973 jars: ["java/linux_glibc/myjavalib.jar"],
974 },
975 },
976}
977`),
978 checkVersionedAndroidBpContents(`
979// This is auto-generated. DO NOT EDIT.
980
981java_import {
982 name: "myexports_hostjavalib@current",
983 sdk_member_name: "hostjavalib",
984 visibility: ["//visibility:public"],
985 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000986 device_supported: false,
987 host_supported: true,
988 jars: ["java/hostjavalib.jar"],
989}
990
991java_import {
992 name: "myexports_androidjavalib@current",
993 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100994 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000995 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000996 jars: ["java/androidjavalib.jar"],
997}
998
999java_import {
Paul Duffin865171e2020-03-02 18:38:15 +00001000 name: "myexports_myjavalib@current",
1001 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001002 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001003 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001004 host_supported: true,
1005 target: {
1006 android: {
1007 jars: ["java/android/myjavalib.jar"],
1008 },
1009 linux_glibc: {
1010 jars: ["java/linux_glibc/myjavalib.jar"],
1011 },
1012 },
1013}
1014
Paul Duffin865171e2020-03-02 18:38:15 +00001015module_exports_snapshot {
1016 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001017 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001018 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001019 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001020 target: {
1021 android: {
1022 java_header_libs: ["myexports_androidjavalib@current"],
1023 },
1024 linux_glibc: {
1025 java_header_libs: ["myexports_hostjavalib@current"],
1026 },
1027 },
Paul Duffin865171e2020-03-02 18:38:15 +00001028}
1029`),
1030 checkAllCopyRules(`
1031.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1032.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1033.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1034.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1035`),
1036 )
1037}
Paul Duffindd46f712020-02-10 13:37:10 +00001038
1039func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001040 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001041 sdk {
1042 name: "mysdk",
1043 java_sdk_libs: ["myjavalib"],
1044 }
1045
1046 java_sdk_library {
1047 name: "myjavalib",
1048 apex_available: ["//apex_available:anyapex"],
1049 srcs: ["Test.java"],
1050 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001051 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001052 stubs_library_visibility: ["//other"],
1053 stubs_source_visibility: ["//another"],
Paul Duffin7b3e10a2021-07-15 14:14:41 +01001054 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001055 }
1056 `)
1057
Paul Duffin36474d32021-03-12 12:19:43 +00001058 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001059 checkUnversionedAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001060// This is auto-generated. DO NOT EDIT.
1061
1062java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001063 name: "myjavalib",
1064 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001065 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001066 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001067 shared_library: false,
Paul Duffin7b3e10a2021-07-15 14:14:41 +01001068 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001069 public: {
1070 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001071 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001072 current_api: "sdk_library/public/myjavalib.txt",
1073 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001074 sdk_version: "current",
1075 },
1076 system: {
1077 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001078 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001079 current_api: "sdk_library/system/myjavalib.txt",
1080 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001081 sdk_version: "system_current",
1082 },
1083 test: {
1084 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001085 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001086 current_api: "sdk_library/test/myjavalib.txt",
1087 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001088 sdk_version: "test_current",
1089 },
1090}
Paul Duffine1381882021-04-16 17:05:10 +01001091`),
1092 checkVersionedAndroidBpContents(`
1093// This is auto-generated. DO NOT EDIT.
Paul Duffindd46f712020-02-10 13:37:10 +00001094
1095java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001096 name: "mysdk_myjavalib@current",
1097 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001098 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001099 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001100 shared_library: false,
Paul Duffin7b3e10a2021-07-15 14:14:41 +01001101 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001102 public: {
1103 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001104 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001105 current_api: "sdk_library/public/myjavalib.txt",
1106 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001107 sdk_version: "current",
1108 },
1109 system: {
1110 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001111 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001112 current_api: "sdk_library/system/myjavalib.txt",
1113 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001114 sdk_version: "system_current",
1115 },
1116 test: {
1117 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001118 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001119 current_api: "sdk_library/test/myjavalib.txt",
1120 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001121 sdk_version: "test_current",
1122 },
1123}
1124
1125sdk_snapshot {
1126 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001127 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001128 java_sdk_libs: ["mysdk_myjavalib@current"],
1129}
1130`),
1131 checkAllCopyRules(`
1132.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001133.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1134.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 +00001135.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001136.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1137.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 +00001138.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001139.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1140.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 +00001141`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001142 checkMergeZips(
1143 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1144 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin0e7bb0e2021-06-22 11:00:07 +01001145 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1146 ),
1147 snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) {
Paul Duffina1aa7382021-04-29 21:50:40 +01001148 // Make sure that the name of the child modules created by a versioned java_sdk_library_import
1149 // module is correct, i.e. the suffix is added before the version and not after.
1150 result.Module("mysdk_myjavalib.stubs@current", "android_common")
1151 result.Module("mysdk_myjavalib.stubs.source@current", "android_common")
Paul Duffin0e7bb0e2021-06-22 11:00:07 +01001152 }),
Paul Duffindd46f712020-02-10 13:37:10 +00001153 )
1154}
Paul Duffin3375e352020-04-28 10:44:03 +01001155
Paul Duffin22628d52021-05-12 23:13:22 +01001156func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1157 result := android.GroupFixturePreparers(
1158 prepareForSdkTestWithJavaSdkLibrary,
1159 android.FixtureMergeEnv(map[string]string{
1160 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1161 }),
1162 ).RunTestWithBp(t, `
1163 sdk {
1164 name: "mysdk",
1165 java_sdk_libs: ["myjavalib"],
1166 }
1167
1168 java_sdk_library {
1169 name: "myjavalib",
1170 srcs: ["Test.java"],
1171 sdk_version: "current",
1172 shared_library: false,
1173 public: {
1174 enabled: true,
1175 },
1176 }
1177 `)
1178
1179 CheckSnapshot(t, result, "mysdk", "",
1180 checkUnversionedAndroidBpContents(`
1181// This is auto-generated. DO NOT EDIT.
1182
1183java_sdk_library_import {
1184 name: "myjavalib",
1185 prefer: false,
1186 visibility: ["//visibility:public"],
1187 apex_available: ["//apex_available:platform"],
1188 shared_library: false,
1189 public: {
1190 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1191 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1192 current_api: "sdk_library/public/myjavalib.txt",
1193 removed_api: "sdk_library/public/myjavalib-removed.txt",
1194 sdk_version: "current",
1195 },
1196}
1197 `),
1198 checkAllCopyRules(`
1199.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1200.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1201.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1202.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1203 `),
1204 )
1205}
1206
Anton Hansson3adf3c52021-09-21 15:25:12 +01001207func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1208 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1209 sdk {
1210 name: "mysdk",
1211 java_sdk_libs: ["myjavalib"],
1212 }
1213
1214 java_sdk_library {
1215 name: "myjavalib",
1216 srcs: ["Test.java"],
1217 sdk_version: "current",
1218 shared_library: false,
1219 annotations_enabled: true,
1220 public: {
1221 enabled: true,
1222 },
1223 }
1224 `)
1225
1226 CheckSnapshot(t, result, "mysdk", "",
1227 checkUnversionedAndroidBpContents(`
1228// This is auto-generated. DO NOT EDIT.
1229
1230java_sdk_library_import {
1231 name: "myjavalib",
1232 prefer: false,
1233 visibility: ["//visibility:public"],
1234 apex_available: ["//apex_available:platform"],
1235 shared_library: false,
1236 public: {
1237 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1238 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1239 current_api: "sdk_library/public/myjavalib.txt",
1240 removed_api: "sdk_library/public/myjavalib-removed.txt",
1241 annotations: "sdk_library/public/myjavalib_annotations.zip",
1242 sdk_version: "current",
1243 },
1244}
1245 `),
1246 checkAllCopyRules(`
1247.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1248.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1249.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1250.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
1251 `),
1252 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1253 )
1254}
1255
Paul Duffin1267d872021-04-16 17:21:36 +01001256func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1257 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1258 sdk {
1259 name: "mysdk",
1260 java_sdk_libs: ["myjavalib"],
1261 }
1262
1263 java_sdk_library {
1264 name: "myjavalib",
1265 srcs: ["Test.java"],
1266 sdk_version: "current",
1267 shared_library: false,
1268 compile_dex: true,
1269 public: {
1270 enabled: true,
1271 },
1272 system: {
1273 enabled: true,
1274 },
1275 }
1276 `)
1277
1278 CheckSnapshot(t, result, "mysdk", "",
1279 checkUnversionedAndroidBpContents(`
1280// This is auto-generated. DO NOT EDIT.
1281
1282java_sdk_library_import {
1283 name: "myjavalib",
1284 prefer: false,
1285 visibility: ["//visibility:public"],
1286 apex_available: ["//apex_available:platform"],
1287 shared_library: false,
1288 compile_dex: true,
1289 public: {
1290 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1291 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1292 current_api: "sdk_library/public/myjavalib.txt",
1293 removed_api: "sdk_library/public/myjavalib-removed.txt",
1294 sdk_version: "current",
1295 },
1296 system: {
1297 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1298 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1299 current_api: "sdk_library/system/myjavalib.txt",
1300 removed_api: "sdk_library/system/myjavalib-removed.txt",
1301 sdk_version: "system_current",
1302 },
1303}
1304`),
1305 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1306 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1307 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1308 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
1309 path := dep.SdkApiStubDexJar(ctx, kind)
1310 return path.RelativeToTop().String()
1311 }
1312
1313 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1314 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1315
1316 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1317 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1318 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1319
1320 // This should fall back to system as module is not available.
1321 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1322 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1323
1324 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1325 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1326 }),
1327 )
1328}
1329
Paul Duffin780c5f42020-05-12 15:52:55 +01001330func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001331 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001332 sdk {
1333 name: "mysdk",
1334 java_sdk_libs: ["myjavalib"],
1335 }
1336
1337 java_sdk_library {
1338 name: "myjavalib",
1339 srcs: ["Test.java"],
1340 sdk_version: "none",
1341 system_modules: "none",
1342 }
1343 `)
1344
Paul Duffin36474d32021-03-12 12:19:43 +00001345 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001346 checkUnversionedAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001347// This is auto-generated. DO NOT EDIT.
1348
1349java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001350 name: "myjavalib",
1351 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001352 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001353 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001354 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001355 public: {
1356 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001357 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001358 current_api: "sdk_library/public/myjavalib.txt",
1359 removed_api: "sdk_library/public/myjavalib-removed.txt",
1360 sdk_version: "none",
1361 },
1362}
Paul Duffine1381882021-04-16 17:05:10 +01001363`),
1364 checkVersionedAndroidBpContents(`
1365// This is auto-generated. DO NOT EDIT.
Paul Duffin780c5f42020-05-12 15:52:55 +01001366
1367java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001368 name: "mysdk_myjavalib@current",
1369 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001370 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001371 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001372 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001373 public: {
1374 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001375 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001376 current_api: "sdk_library/public/myjavalib.txt",
1377 removed_api: "sdk_library/public/myjavalib-removed.txt",
1378 sdk_version: "none",
1379 },
1380}
1381
1382sdk_snapshot {
1383 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001384 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001385 java_sdk_libs: ["mysdk_myjavalib@current"],
1386}
1387`),
1388 checkAllCopyRules(`
1389.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001390.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1391.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 +01001392`),
1393 checkMergeZips(
1394 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1395 ),
1396 )
1397}
1398
Paul Duffin87a05a32020-05-12 11:50:28 +01001399func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001400 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001401 sdk {
1402 name: "mysdk",
1403 java_sdk_libs: ["myjavalib"],
1404 }
1405
1406 java_sdk_library {
1407 name: "myjavalib",
1408 srcs: ["Test.java"],
1409 sdk_version: "module_current",
1410 public: {
1411 enabled: true,
1412 sdk_version: "module_current",
1413 },
1414 }
1415 `)
1416
Paul Duffin36474d32021-03-12 12:19:43 +00001417 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001418 checkUnversionedAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001419// This is auto-generated. DO NOT EDIT.
1420
1421java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001422 name: "myjavalib",
1423 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001424 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001425 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001426 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001427 public: {
1428 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001429 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001430 current_api: "sdk_library/public/myjavalib.txt",
1431 removed_api: "sdk_library/public/myjavalib-removed.txt",
1432 sdk_version: "module_current",
1433 },
1434}
Paul Duffine1381882021-04-16 17:05:10 +01001435`),
1436 checkVersionedAndroidBpContents(`
1437// This is auto-generated. DO NOT EDIT.
Paul Duffin87a05a32020-05-12 11:50:28 +01001438
1439java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001440 name: "mysdk_myjavalib@current",
1441 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001442 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001443 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001444 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001445 public: {
1446 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001447 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001448 current_api: "sdk_library/public/myjavalib.txt",
1449 removed_api: "sdk_library/public/myjavalib-removed.txt",
1450 sdk_version: "module_current",
1451 },
1452}
1453
1454sdk_snapshot {
1455 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001456 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001457 java_sdk_libs: ["mysdk_myjavalib@current"],
1458}
1459`),
1460 checkAllCopyRules(`
1461.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001462.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1463.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 +01001464`),
1465 checkMergeZips(
1466 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1467 ),
1468 )
1469}
1470
1471func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001472 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001473 sdk {
1474 name: "mysdk",
1475 java_sdk_libs: ["myjavalib"],
1476 }
1477
1478 java_sdk_library {
1479 name: "myjavalib",
1480 apex_available: ["//apex_available:anyapex"],
1481 srcs: ["Test.java"],
1482 sdk_version: "current",
1483 public: {
1484 enabled: true,
1485 },
1486 system: {
1487 enabled: true,
1488 },
1489 }
1490 `)
1491
Paul Duffin36474d32021-03-12 12:19:43 +00001492 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001493 checkUnversionedAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001494// This is auto-generated. DO NOT EDIT.
1495
1496java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001497 name: "myjavalib",
1498 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001499 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001500 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001501 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001502 public: {
1503 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001504 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001505 current_api: "sdk_library/public/myjavalib.txt",
1506 removed_api: "sdk_library/public/myjavalib-removed.txt",
1507 sdk_version: "current",
1508 },
1509 system: {
1510 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001511 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001512 current_api: "sdk_library/system/myjavalib.txt",
1513 removed_api: "sdk_library/system/myjavalib-removed.txt",
1514 sdk_version: "system_current",
1515 },
1516}
Paul Duffine1381882021-04-16 17:05:10 +01001517`),
1518 checkVersionedAndroidBpContents(`
1519// This is auto-generated. DO NOT EDIT.
Paul Duffin3375e352020-04-28 10:44:03 +01001520
1521java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001522 name: "mysdk_myjavalib@current",
1523 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001524 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001525 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001526 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001527 public: {
1528 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001529 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001530 current_api: "sdk_library/public/myjavalib.txt",
1531 removed_api: "sdk_library/public/myjavalib-removed.txt",
1532 sdk_version: "current",
1533 },
1534 system: {
1535 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001536 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001537 current_api: "sdk_library/system/myjavalib.txt",
1538 removed_api: "sdk_library/system/myjavalib-removed.txt",
1539 sdk_version: "system_current",
1540 },
1541}
1542
1543sdk_snapshot {
1544 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001545 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001546 java_sdk_libs: ["mysdk_myjavalib@current"],
1547}
1548`),
1549 checkAllCopyRules(`
1550.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001551.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1552.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 +01001553.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001554.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1555.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 +01001556`),
1557 checkMergeZips(
1558 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1559 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1560 ),
1561 )
1562}
Paul Duffin8f265b92020-04-28 14:13:56 +01001563
1564func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001565 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001566 sdk {
1567 name: "mysdk",
1568 java_sdk_libs: ["myjavalib"],
1569 }
1570
1571 java_sdk_library {
1572 name: "myjavalib",
1573 apex_available: ["//apex_available:anyapex"],
1574 srcs: ["Test.java"],
1575 sdk_version: "current",
1576 public: {
1577 enabled: true,
1578 },
1579 system: {
1580 enabled: true,
1581 },
1582 module_lib: {
1583 enabled: true,
1584 },
1585 }
1586 `)
1587
Paul Duffin36474d32021-03-12 12:19:43 +00001588 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001589 checkUnversionedAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001590// This is auto-generated. DO NOT EDIT.
1591
1592java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001593 name: "myjavalib",
1594 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001595 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001596 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001597 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001598 public: {
1599 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001600 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001601 current_api: "sdk_library/public/myjavalib.txt",
1602 removed_api: "sdk_library/public/myjavalib-removed.txt",
1603 sdk_version: "current",
1604 },
1605 system: {
1606 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001607 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001608 current_api: "sdk_library/system/myjavalib.txt",
1609 removed_api: "sdk_library/system/myjavalib-removed.txt",
1610 sdk_version: "system_current",
1611 },
1612 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001613 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001614 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001615 current_api: "sdk_library/module-lib/myjavalib.txt",
1616 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001617 sdk_version: "module_current",
1618 },
1619}
Paul Duffine1381882021-04-16 17:05:10 +01001620`),
1621 checkVersionedAndroidBpContents(`
1622// This is auto-generated. DO NOT EDIT.
Paul Duffin8f265b92020-04-28 14:13:56 +01001623
1624java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001625 name: "mysdk_myjavalib@current",
1626 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001627 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001628 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001629 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001630 public: {
1631 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001632 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001633 current_api: "sdk_library/public/myjavalib.txt",
1634 removed_api: "sdk_library/public/myjavalib-removed.txt",
1635 sdk_version: "current",
1636 },
1637 system: {
1638 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001639 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001640 current_api: "sdk_library/system/myjavalib.txt",
1641 removed_api: "sdk_library/system/myjavalib-removed.txt",
1642 sdk_version: "system_current",
1643 },
1644 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001645 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001646 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001647 current_api: "sdk_library/module-lib/myjavalib.txt",
1648 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001649 sdk_version: "module_current",
1650 },
1651}
1652
1653sdk_snapshot {
1654 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001655 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001656 java_sdk_libs: ["mysdk_myjavalib@current"],
1657}
1658`),
1659 checkAllCopyRules(`
1660.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001661.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1662.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 +01001663.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001664.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1665.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 +01001666.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 -07001667.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1668.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 +01001669`),
1670 checkMergeZips(
1671 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1672 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001673 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001674 ),
1675 )
1676}
Paul Duffinf7a64332020-05-13 16:54:55 +01001677
Paul Duffin0c5bae52020-06-02 13:00:08 +01001678func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001679 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001680 sdk {
1681 name: "mysdk",
1682 java_sdk_libs: ["myjavalib"],
1683 }
1684
1685 java_sdk_library {
1686 name: "myjavalib",
1687 apex_available: ["//apex_available:anyapex"],
1688 srcs: ["Test.java"],
1689 sdk_version: "current",
1690 public: {
1691 enabled: true,
1692 },
1693 system_server: {
1694 enabled: true,
1695 },
1696 }
1697 `)
1698
Paul Duffin36474d32021-03-12 12:19:43 +00001699 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001700 checkUnversionedAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001701// This is auto-generated. DO NOT EDIT.
1702
1703java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001704 name: "myjavalib",
1705 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001706 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001707 apex_available: ["//apex_available:anyapex"],
1708 shared_library: true,
1709 public: {
1710 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001711 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001712 current_api: "sdk_library/public/myjavalib.txt",
1713 removed_api: "sdk_library/public/myjavalib-removed.txt",
1714 sdk_version: "current",
1715 },
1716 system_server: {
1717 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001718 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001719 current_api: "sdk_library/system-server/myjavalib.txt",
1720 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1721 sdk_version: "system_server_current",
1722 },
1723}
Paul Duffine1381882021-04-16 17:05:10 +01001724`),
1725 checkVersionedAndroidBpContents(`
1726// This is auto-generated. DO NOT EDIT.
Paul Duffin0c5bae52020-06-02 13:00:08 +01001727
1728java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001729 name: "mysdk_myjavalib@current",
1730 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001731 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001732 apex_available: ["//apex_available:anyapex"],
1733 shared_library: true,
1734 public: {
1735 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001736 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001737 current_api: "sdk_library/public/myjavalib.txt",
1738 removed_api: "sdk_library/public/myjavalib-removed.txt",
1739 sdk_version: "current",
1740 },
1741 system_server: {
1742 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001743 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001744 current_api: "sdk_library/system-server/myjavalib.txt",
1745 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1746 sdk_version: "system_server_current",
1747 },
1748}
1749
1750sdk_snapshot {
1751 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001752 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001753 java_sdk_libs: ["mysdk_myjavalib@current"],
1754}
1755`),
1756 checkAllCopyRules(`
1757.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001758.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1759.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 +01001760.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 -07001761.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1762.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 +01001763`),
1764 checkMergeZips(
1765 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1766 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1767 ),
1768 )
1769}
1770
Paul Duffinf7a64332020-05-13 16:54:55 +01001771func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001772 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001773 sdk {
1774 name: "mysdk",
1775 java_sdk_libs: ["myjavalib"],
1776 }
1777
1778 java_sdk_library {
1779 name: "myjavalib",
1780 apex_available: ["//apex_available:anyapex"],
1781 srcs: ["Test.java"],
1782 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001783 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001784 public: {
1785 enabled: true,
1786 },
1787 }
1788 `)
1789
Paul Duffin36474d32021-03-12 12:19:43 +00001790 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001791 checkUnversionedAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001792// This is auto-generated. DO NOT EDIT.
1793
1794java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001795 name: "myjavalib",
1796 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001797 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001798 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001799 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001800 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001801 public: {
1802 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001803 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001804 current_api: "sdk_library/public/myjavalib.txt",
1805 removed_api: "sdk_library/public/myjavalib-removed.txt",
1806 sdk_version: "current",
1807 },
1808}
Paul Duffine1381882021-04-16 17:05:10 +01001809`),
1810 checkVersionedAndroidBpContents(`
1811// This is auto-generated. DO NOT EDIT.
Paul Duffinf7a64332020-05-13 16:54:55 +01001812
1813java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001814 name: "mysdk_myjavalib@current",
1815 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001816 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001817 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001818 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001819 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001820 public: {
1821 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001822 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001823 current_api: "sdk_library/public/myjavalib.txt",
1824 removed_api: "sdk_library/public/myjavalib-removed.txt",
1825 sdk_version: "current",
1826 },
1827}
1828
1829sdk_snapshot {
1830 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001831 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001832 java_sdk_libs: ["mysdk_myjavalib@current"],
1833}
1834`),
1835 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001836.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001837.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1838.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 +01001839`),
1840 checkMergeZips(
1841 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1842 ),
1843 )
1844}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001845
1846func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001847 result := android.GroupFixturePreparers(
1848 prepareForSdkTestWithJavaSdkLibrary,
1849 android.FixtureAddFile("docs/known_doctags", nil),
1850 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001851 sdk {
1852 name: "mysdk",
1853 java_sdk_libs: ["myjavalib"],
1854 }
1855
1856 java_sdk_library {
1857 name: "myjavalib",
1858 srcs: ["Test.java"],
1859 sdk_version: "current",
1860 public: {
1861 enabled: true,
1862 },
1863 doctag_files: ["docs/known_doctags"],
1864 }
1865
1866 filegroup {
1867 name: "mygroup",
1868 srcs: [":myjavalib{.doctags}"],
1869 }
1870 `)
1871
Paul Duffin36474d32021-03-12 12:19:43 +00001872 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001873 checkUnversionedAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001874// This is auto-generated. DO NOT EDIT.
1875
1876java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001877 name: "myjavalib",
1878 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001879 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001880 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001881 shared_library: true,
1882 doctag_files: ["doctags/docs/known_doctags"],
1883 public: {
1884 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001885 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001886 current_api: "sdk_library/public/myjavalib.txt",
1887 removed_api: "sdk_library/public/myjavalib-removed.txt",
1888 sdk_version: "current",
1889 },
1890}
Paul Duffine1381882021-04-16 17:05:10 +01001891`),
1892 checkVersionedAndroidBpContents(`
1893// This is auto-generated. DO NOT EDIT.
Paul Duffina2ae7e02020-09-11 11:55:00 +01001894
1895java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001896 name: "mysdk_myjavalib@current",
1897 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001898 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001899 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001900 shared_library: true,
1901 doctag_files: ["doctags/docs/known_doctags"],
1902 public: {
1903 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001904 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001905 current_api: "sdk_library/public/myjavalib.txt",
1906 removed_api: "sdk_library/public/myjavalib-removed.txt",
1907 sdk_version: "current",
1908 },
1909}
1910
1911sdk_snapshot {
1912 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001913 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001914 java_sdk_libs: ["mysdk_myjavalib@current"],
1915}
1916`),
1917 checkAllCopyRules(`
1918.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001919.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1920.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 +01001921docs/known_doctags -> doctags/docs/known_doctags
1922`),
1923 )
1924}