blob: 2b537398a30cb516eeeed368712d515e7f8f6d65 [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
Paul Duffina0dbf432019-12-05 11:25:53 +0000485func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000486 result := android.GroupFixturePreparers(
487 prepareForSdkTestWithJava,
488 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
489 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000490 module_exports {
491 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000492 device_supported: false,
493 host_supported: true,
494 java_libs: ["myjavalib"],
495 }
496
497 java_library {
498 name: "myjavalib",
499 device_supported: false,
500 host_supported: true,
501 srcs: ["Test.java"],
502 aidl: {
503 export_include_dirs: ["aidl"],
504 },
505 system_modules: "none",
506 sdk_version: "none",
507 compile_dex: true,
508 }
509 `)
510
Paul Duffin36474d32021-03-12 12:19:43 +0000511 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100512 checkUnversionedAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000513// This is auto-generated. DO NOT EDIT.
514
515java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100516 name: "myjavalib",
517 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100518 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000519 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000520 device_supported: false,
521 host_supported: true,
522 jars: ["java/myjavalib.jar"],
523}
Paul Duffine1381882021-04-16 17:05:10 +0100524`),
525 checkVersionedAndroidBpContents(`
526// This is auto-generated. DO NOT EDIT.
Paul Duffina80fdec2019-12-03 15:25:00 +0000527
528java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100529 name: "myexports_myjavalib@current",
530 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100531 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000532 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000533 device_supported: false,
534 host_supported: true,
535 jars: ["java/myjavalib.jar"],
536}
537
Paul Duffine6029182019-12-16 17:43:48 +0000538module_exports_snapshot {
539 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100540 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000541 device_supported: false,
542 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000543 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000544}
545`),
546 checkAllCopyRules(`
547.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
548aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
549`),
550 )
551}
552
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000553func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000554 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000555 module_exports {
556 name: "myexports",
557 java_tests: ["myjavatests"],
558 }
559
560 java_test {
561 name: "myjavatests",
562 srcs: ["Test.java"],
563 system_modules: "none",
564 sdk_version: "none",
565 compile_dex: true,
566 host_supported: true,
567 }
568 `)
569
Paul Duffin36474d32021-03-12 12:19:43 +0000570 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100571 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000572// This is auto-generated. DO NOT EDIT.
573
574java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100575 name: "myjavatests",
576 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100577 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000578 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000579 jars: ["java/myjavatests.jar"],
580 test_config: "java/myjavatests-AndroidTest.xml",
581}
Paul Duffine1381882021-04-16 17:05:10 +0100582`),
583 checkVersionedAndroidBpContents(`
584// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000585
586java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100587 name: "myexports_myjavatests@current",
588 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100589 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000590 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000591 jars: ["java/myjavatests.jar"],
592 test_config: "java/myjavatests-AndroidTest.xml",
593}
594
595module_exports_snapshot {
596 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100597 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000598 java_tests: ["myexports_myjavatests@current"],
599}
600`),
601 checkAllCopyRules(`
602.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
603.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
604`),
605 )
606}
607
608func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000609 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000610 module_exports {
611 name: "myexports",
612 device_supported: false,
613 host_supported: true,
614 java_tests: ["myjavatests"],
615 }
616
617 java_test {
618 name: "myjavatests",
619 device_supported: false,
620 host_supported: true,
621 srcs: ["Test.java"],
622 system_modules: "none",
623 sdk_version: "none",
624 compile_dex: true,
625 }
626 `)
627
Paul Duffin36474d32021-03-12 12:19:43 +0000628 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100629 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000630// This is auto-generated. DO NOT EDIT.
631
632java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100633 name: "myjavatests",
634 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100635 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000636 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000637 device_supported: false,
638 host_supported: true,
639 jars: ["java/myjavatests.jar"],
640 test_config: "java/myjavatests-AndroidTest.xml",
641}
Paul Duffine1381882021-04-16 17:05:10 +0100642`),
643 checkVersionedAndroidBpContents(`
644// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000645
646java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100647 name: "myexports_myjavatests@current",
648 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100649 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000650 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000651 device_supported: false,
652 host_supported: true,
653 jars: ["java/myjavatests.jar"],
654 test_config: "java/myjavatests-AndroidTest.xml",
655}
656
657module_exports_snapshot {
658 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100659 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000660 device_supported: false,
661 host_supported: true,
662 java_tests: ["myexports_myjavatests@current"],
663}
664`),
665 checkAllCopyRules(`
666.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
667.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
668`),
669 )
670}
671
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000672func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin33028712021-06-22 11:00:07 +0100673 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000674 sdk {
675 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000676 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100677 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000678 java_system_modules: ["my-system-modules"],
679 }
680
Paul Duffin33028712021-06-22 11:00:07 +0100681 java_sdk_library {
682 name: "myjavalib",
683 apex_available: ["//apex_available:anyapex"],
684 srcs: ["Test.java"],
685 sdk_version: "current",
686 shared_library: false,
687 public: {
688 enabled: true,
689 },
690 }
691
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000692 java_system_modules {
693 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100694 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000695 }
696
697 java_library {
698 name: "system-module",
699 srcs: ["Test.java"],
700 sdk_version: "none",
701 system_modules: "none",
702 }
Paul Duffin72910952020-01-20 18:16:30 +0000703
704 java_library {
705 name: "exported-system-module",
706 srcs: ["Test.java"],
707 sdk_version: "none",
708 system_modules: "none",
709 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000710 `)
711
Paul Duffin36474d32021-03-12 12:19:43 +0000712 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100713 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000714// This is auto-generated. DO NOT EDIT.
715
716java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100717 name: "exported-system-module",
718 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100719 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000720 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000721 jars: ["java/exported-system-module.jar"],
722}
723
724java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100725 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000726 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100727 visibility: ["//visibility:private"],
728 apex_available: ["//apex_available:platform"],
729 jars: ["java/system-module.jar"],
730}
731
Paul Duffin33028712021-06-22 11:00:07 +0100732java_sdk_library_import {
733 name: "myjavalib",
734 prefer: false,
735 visibility: ["//visibility:public"],
736 apex_available: ["//apex_available:anyapex"],
737 shared_library: false,
738 public: {
739 jars: ["sdk_library/public/myjavalib-stubs.jar"],
740 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
741 current_api: "sdk_library/public/myjavalib.txt",
742 removed_api: "sdk_library/public/myjavalib-removed.txt",
743 sdk_version: "current",
744 },
745}
746
Paul Duffine1381882021-04-16 17:05:10 +0100747java_system_modules_import {
748 name: "my-system-modules",
749 prefer: false,
750 visibility: ["//visibility:public"],
751 libs: [
752 "mysdk_system-module",
753 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100754 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100755 ],
756}
757`),
758 checkVersionedAndroidBpContents(`
759// This is auto-generated. DO NOT EDIT.
760
761java_import {
762 name: "mysdk_exported-system-module@current",
763 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100764 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000765 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000766 jars: ["java/exported-system-module.jar"],
767}
768
769java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000770 name: "mysdk_system-module@current",
771 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000772 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000773 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000774 jars: ["java/system-module.jar"],
775}
776
Paul Duffin33028712021-06-22 11:00:07 +0100777java_sdk_library_import {
778 name: "mysdk_myjavalib@current",
779 sdk_member_name: "myjavalib",
780 visibility: ["//visibility:public"],
781 apex_available: ["//apex_available:anyapex"],
782 shared_library: false,
783 public: {
784 jars: ["sdk_library/public/myjavalib-stubs.jar"],
785 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
786 current_api: "sdk_library/public/myjavalib.txt",
787 removed_api: "sdk_library/public/myjavalib-removed.txt",
788 sdk_version: "current",
789 },
790}
791
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000792java_system_modules_import {
793 name: "mysdk_my-system-modules@current",
794 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100795 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000796 libs: [
797 "mysdk_system-module@current",
798 "mysdk_exported-system-module@current",
Paul Duffin33028712021-06-22 11:00:07 +0100799 "mysdk_myjavalib.stubs@current",
Paul Duffin72910952020-01-20 18:16:30 +0000800 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000801}
802
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000803sdk_snapshot {
804 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100805 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000806 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin33028712021-06-22 11:00:07 +0100807 java_sdk_libs: ["mysdk_myjavalib@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000808 java_system_modules: ["mysdk_my-system-modules@current"],
809}
810`),
Paul Duffin72910952020-01-20 18:16:30 +0000811 checkAllCopyRules(`
812.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
813.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100814.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
815.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
816.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 +0000817`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000818 )
819}
820
821func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000822 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000823 sdk {
824 name: "mysdk",
825 device_supported: false,
826 host_supported: true,
827 java_system_modules: ["my-system-modules"],
828 }
829
830 java_system_modules {
831 name: "my-system-modules",
832 device_supported: false,
833 host_supported: true,
834 libs: ["system-module"],
835 }
836
837 java_library {
838 name: "system-module",
839 device_supported: false,
840 host_supported: true,
841 srcs: ["Test.java"],
842 sdk_version: "none",
843 system_modules: "none",
844 }
845 `)
846
Paul Duffin36474d32021-03-12 12:19:43 +0000847 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100848 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000849// This is auto-generated. DO NOT EDIT.
850
851java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100852 name: "mysdk_system-module",
853 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000854 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000855 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000856 device_supported: false,
857 host_supported: true,
858 jars: ["java/system-module.jar"],
859}
860
Paul Duffine1381882021-04-16 17:05:10 +0100861java_system_modules_import {
862 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000863 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100864 visibility: ["//visibility:public"],
865 device_supported: false,
866 host_supported: true,
867 libs: ["mysdk_system-module"],
868}
869`),
870 checkVersionedAndroidBpContents(`
871// This is auto-generated. DO NOT EDIT.
872
873java_import {
874 name: "mysdk_system-module@current",
875 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000876 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000877 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000878 device_supported: false,
879 host_supported: true,
880 jars: ["java/system-module.jar"],
881}
882
883java_system_modules_import {
884 name: "mysdk_my-system-modules@current",
885 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100886 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000887 device_supported: false,
888 host_supported: true,
889 libs: ["mysdk_system-module@current"],
890}
891
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000892sdk_snapshot {
893 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100894 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000895 device_supported: false,
896 host_supported: true,
897 java_system_modules: ["mysdk_my-system-modules@current"],
898}
899`),
900 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
901 )
902}
Paul Duffin865171e2020-03-02 18:38:15 +0000903
904func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000905 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000906 module_exports {
907 name: "myexports",
908 host_supported: true,
909 java_libs: ["myjavalib"],
910 target: {
911 android: {
912 java_header_libs: ["androidjavalib"],
913 },
914 host: {
915 java_header_libs: ["hostjavalib"],
916 },
917 },
918 }
919
920 java_library {
921 name: "myjavalib",
922 host_supported: true,
923 srcs: ["Test.java"],
924 system_modules: "none",
925 sdk_version: "none",
926 }
927
928 java_library {
929 name: "androidjavalib",
930 srcs: ["Test.java"],
931 system_modules: "none",
932 sdk_version: "none",
933 }
934
935 java_library_host {
936 name: "hostjavalib",
937 srcs: ["Test.java"],
938 }
939 `)
940
Paul Duffin36474d32021-03-12 12:19:43 +0000941 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100942 checkUnversionedAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000943// This is auto-generated. DO NOT EDIT.
944
945java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100946 name: "hostjavalib",
947 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100948 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000949 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000950 device_supported: false,
951 host_supported: true,
952 jars: ["java/hostjavalib.jar"],
953}
954
955java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100956 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000957 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100958 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000959 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100960 jars: ["java/androidjavalib.jar"],
961}
962
963java_import {
964 name: "myjavalib",
965 prefer: false,
966 visibility: ["//visibility:public"],
967 apex_available: ["//apex_available:platform"],
968 host_supported: true,
969 target: {
970 android: {
971 jars: ["java/android/myjavalib.jar"],
972 },
973 linux_glibc: {
974 jars: ["java/linux_glibc/myjavalib.jar"],
975 },
976 },
977}
978`),
979 checkVersionedAndroidBpContents(`
980// This is auto-generated. DO NOT EDIT.
981
982java_import {
983 name: "myexports_hostjavalib@current",
984 sdk_member_name: "hostjavalib",
985 visibility: ["//visibility:public"],
986 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000987 device_supported: false,
988 host_supported: true,
989 jars: ["java/hostjavalib.jar"],
990}
991
992java_import {
993 name: "myexports_androidjavalib@current",
994 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100995 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000996 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000997 jars: ["java/androidjavalib.jar"],
998}
999
1000java_import {
Paul Duffin865171e2020-03-02 18:38:15 +00001001 name: "myexports_myjavalib@current",
1002 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001003 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001004 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001005 host_supported: true,
1006 target: {
1007 android: {
1008 jars: ["java/android/myjavalib.jar"],
1009 },
1010 linux_glibc: {
1011 jars: ["java/linux_glibc/myjavalib.jar"],
1012 },
1013 },
1014}
1015
Paul Duffin865171e2020-03-02 18:38:15 +00001016module_exports_snapshot {
1017 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001018 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001019 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001020 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001021 target: {
1022 android: {
1023 java_header_libs: ["myexports_androidjavalib@current"],
1024 },
1025 linux_glibc: {
1026 java_header_libs: ["myexports_hostjavalib@current"],
1027 },
1028 },
Paul Duffin865171e2020-03-02 18:38:15 +00001029}
1030`),
1031 checkAllCopyRules(`
1032.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1033.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1034.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1035.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1036`),
1037 )
1038}
Paul Duffindd46f712020-02-10 13:37:10 +00001039
1040func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001041 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001042 sdk {
1043 name: "mysdk",
1044 java_sdk_libs: ["myjavalib"],
1045 }
1046
1047 java_sdk_library {
1048 name: "myjavalib",
1049 apex_available: ["//apex_available:anyapex"],
1050 srcs: ["Test.java"],
1051 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001052 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001053 stubs_library_visibility: ["//other"],
1054 stubs_source_visibility: ["//another"],
Paul Duffin869de142021-07-15 14:14:41 +01001055 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001056 }
1057 `)
1058
Paul Duffin36474d32021-03-12 12:19:43 +00001059 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001060 checkUnversionedAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001061// This is auto-generated. DO NOT EDIT.
1062
1063java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001064 name: "myjavalib",
1065 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001066 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001067 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001068 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001069 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001070 public: {
1071 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001072 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001073 current_api: "sdk_library/public/myjavalib.txt",
1074 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001075 sdk_version: "current",
1076 },
1077 system: {
1078 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001079 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001080 current_api: "sdk_library/system/myjavalib.txt",
1081 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001082 sdk_version: "system_current",
1083 },
1084 test: {
1085 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001086 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001087 current_api: "sdk_library/test/myjavalib.txt",
1088 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001089 sdk_version: "test_current",
1090 },
1091}
Paul Duffine1381882021-04-16 17:05:10 +01001092`),
1093 checkVersionedAndroidBpContents(`
1094// This is auto-generated. DO NOT EDIT.
Paul Duffindd46f712020-02-10 13:37:10 +00001095
1096java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001097 name: "mysdk_myjavalib@current",
1098 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001099 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001100 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001101 shared_library: false,
Paul Duffin869de142021-07-15 14:14:41 +01001102 permitted_packages: ["pkg.myjavalib"],
Paul Duffindd46f712020-02-10 13:37:10 +00001103 public: {
1104 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001105 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001106 current_api: "sdk_library/public/myjavalib.txt",
1107 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001108 sdk_version: "current",
1109 },
1110 system: {
1111 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001112 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001113 current_api: "sdk_library/system/myjavalib.txt",
1114 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001115 sdk_version: "system_current",
1116 },
1117 test: {
1118 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001119 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001120 current_api: "sdk_library/test/myjavalib.txt",
1121 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001122 sdk_version: "test_current",
1123 },
1124}
1125
1126sdk_snapshot {
1127 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001128 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001129 java_sdk_libs: ["mysdk_myjavalib@current"],
1130}
1131`),
1132 checkAllCopyRules(`
1133.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001134.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1135.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 +00001136.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001137.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1138.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 +00001139.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001140.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1141.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 +00001142`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001143 checkMergeZips(
1144 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1145 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +01001146 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1147 ),
1148 snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) {
Paul Duffinb97b1572021-04-29 21:50:40 +01001149 // Make sure that the name of the child modules created by a versioned java_sdk_library_import
1150 // module is correct, i.e. the suffix is added before the version and not after.
1151 result.Module("mysdk_myjavalib.stubs@current", "android_common")
1152 result.Module("mysdk_myjavalib.stubs.source@current", "android_common")
Paul Duffin33028712021-06-22 11:00:07 +01001153 }),
Paul Duffindd46f712020-02-10 13:37:10 +00001154 )
1155}
Paul Duffin3375e352020-04-28 10:44:03 +01001156
Paul Duffin22628d52021-05-12 23:13:22 +01001157func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1158 result := android.GroupFixturePreparers(
1159 prepareForSdkTestWithJavaSdkLibrary,
1160 android.FixtureMergeEnv(map[string]string{
1161 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1162 }),
1163 ).RunTestWithBp(t, `
1164 sdk {
1165 name: "mysdk",
1166 java_sdk_libs: ["myjavalib"],
1167 }
1168
1169 java_sdk_library {
1170 name: "myjavalib",
1171 srcs: ["Test.java"],
1172 sdk_version: "current",
1173 shared_library: false,
1174 public: {
1175 enabled: true,
1176 },
1177 }
1178 `)
1179
1180 CheckSnapshot(t, result, "mysdk", "",
1181 checkUnversionedAndroidBpContents(`
1182// This is auto-generated. DO NOT EDIT.
1183
1184java_sdk_library_import {
1185 name: "myjavalib",
1186 prefer: false,
1187 visibility: ["//visibility:public"],
1188 apex_available: ["//apex_available:platform"],
1189 shared_library: false,
1190 public: {
1191 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1192 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1193 current_api: "sdk_library/public/myjavalib.txt",
1194 removed_api: "sdk_library/public/myjavalib-removed.txt",
1195 sdk_version: "current",
1196 },
1197}
1198 `),
1199 checkAllCopyRules(`
1200.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1201.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1202.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1203.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1204 `),
1205 )
1206}
1207
Anton Hanssond78eb762021-09-21 15:25:12 +01001208func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
1209 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1210 sdk {
1211 name: "mysdk",
1212 java_sdk_libs: ["myjavalib"],
1213 }
1214
1215 java_sdk_library {
1216 name: "myjavalib",
1217 srcs: ["Test.java"],
1218 sdk_version: "current",
1219 shared_library: false,
1220 annotations_enabled: true,
1221 public: {
1222 enabled: true,
1223 },
1224 }
1225 `)
1226
1227 CheckSnapshot(t, result, "mysdk", "",
1228 checkUnversionedAndroidBpContents(`
1229// This is auto-generated. DO NOT EDIT.
1230
1231java_sdk_library_import {
1232 name: "myjavalib",
1233 prefer: false,
1234 visibility: ["//visibility:public"],
1235 apex_available: ["//apex_available:platform"],
1236 shared_library: false,
1237 public: {
1238 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1239 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1240 current_api: "sdk_library/public/myjavalib.txt",
1241 removed_api: "sdk_library/public/myjavalib-removed.txt",
1242 annotations: "sdk_library/public/myjavalib_annotations.zip",
1243 sdk_version: "current",
1244 },
1245}
1246 `),
1247 checkAllCopyRules(`
1248.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1249.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1250.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1251.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_annotations.zip -> sdk_library/public/myjavalib_annotations.zip
1252 `),
1253 checkMergeZips(".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip"),
1254 )
1255}
1256
Paul Duffin1267d872021-04-16 17:21:36 +01001257func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1258 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1259 sdk {
1260 name: "mysdk",
1261 java_sdk_libs: ["myjavalib"],
1262 }
1263
1264 java_sdk_library {
1265 name: "myjavalib",
1266 srcs: ["Test.java"],
1267 sdk_version: "current",
1268 shared_library: false,
1269 compile_dex: true,
1270 public: {
1271 enabled: true,
1272 },
1273 system: {
1274 enabled: true,
1275 },
1276 }
1277 `)
1278
1279 CheckSnapshot(t, result, "mysdk", "",
1280 checkUnversionedAndroidBpContents(`
1281// This is auto-generated. DO NOT EDIT.
1282
1283java_sdk_library_import {
1284 name: "myjavalib",
1285 prefer: false,
1286 visibility: ["//visibility:public"],
1287 apex_available: ["//apex_available:platform"],
1288 shared_library: false,
1289 compile_dex: true,
1290 public: {
1291 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1292 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1293 current_api: "sdk_library/public/myjavalib.txt",
1294 removed_api: "sdk_library/public/myjavalib-removed.txt",
1295 sdk_version: "current",
1296 },
1297 system: {
1298 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1299 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1300 current_api: "sdk_library/system/myjavalib.txt",
1301 removed_api: "sdk_library/system/myjavalib-removed.txt",
1302 sdk_version: "system_current",
1303 },
1304}
1305`),
1306 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1307 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1308 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1309 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
Martin Stjernholm8be1e6d2021-09-15 03:34:04 +01001310 path := dep.SdkApiStubDexJar(ctx, kind).Path()
Paul Duffin1267d872021-04-16 17:21:36 +01001311 return path.RelativeToTop().String()
1312 }
1313
1314 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1315 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1316
1317 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1318 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1319 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1320
1321 // This should fall back to system as module is not available.
1322 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1323 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1324
1325 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1326 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1327 }),
1328 )
1329}
1330
Paul Duffin780c5f42020-05-12 15:52:55 +01001331func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001332 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001333 sdk {
1334 name: "mysdk",
1335 java_sdk_libs: ["myjavalib"],
1336 }
1337
1338 java_sdk_library {
1339 name: "myjavalib",
1340 srcs: ["Test.java"],
1341 sdk_version: "none",
1342 system_modules: "none",
1343 }
1344 `)
1345
Paul Duffin36474d32021-03-12 12:19:43 +00001346 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001347 checkUnversionedAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001348// This is auto-generated. DO NOT EDIT.
1349
1350java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001351 name: "myjavalib",
1352 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001353 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001354 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001355 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001356 public: {
1357 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001358 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001359 current_api: "sdk_library/public/myjavalib.txt",
1360 removed_api: "sdk_library/public/myjavalib-removed.txt",
1361 sdk_version: "none",
1362 },
1363}
Paul Duffine1381882021-04-16 17:05:10 +01001364`),
1365 checkVersionedAndroidBpContents(`
1366// This is auto-generated. DO NOT EDIT.
Paul Duffin780c5f42020-05-12 15:52:55 +01001367
1368java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001369 name: "mysdk_myjavalib@current",
1370 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001371 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001372 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001373 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001374 public: {
1375 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001376 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001377 current_api: "sdk_library/public/myjavalib.txt",
1378 removed_api: "sdk_library/public/myjavalib-removed.txt",
1379 sdk_version: "none",
1380 },
1381}
1382
1383sdk_snapshot {
1384 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001385 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001386 java_sdk_libs: ["mysdk_myjavalib@current"],
1387}
1388`),
1389 checkAllCopyRules(`
1390.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001391.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1392.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 +01001393`),
1394 checkMergeZips(
1395 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1396 ),
1397 )
1398}
1399
Paul Duffin87a05a32020-05-12 11:50:28 +01001400func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001401 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001402 sdk {
1403 name: "mysdk",
1404 java_sdk_libs: ["myjavalib"],
1405 }
1406
1407 java_sdk_library {
1408 name: "myjavalib",
1409 srcs: ["Test.java"],
1410 sdk_version: "module_current",
1411 public: {
1412 enabled: true,
1413 sdk_version: "module_current",
1414 },
1415 }
1416 `)
1417
Paul Duffin36474d32021-03-12 12:19:43 +00001418 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001419 checkUnversionedAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001420// This is auto-generated. DO NOT EDIT.
1421
1422java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001423 name: "myjavalib",
1424 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001425 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001426 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001427 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001428 public: {
1429 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001430 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001431 current_api: "sdk_library/public/myjavalib.txt",
1432 removed_api: "sdk_library/public/myjavalib-removed.txt",
1433 sdk_version: "module_current",
1434 },
1435}
Paul Duffine1381882021-04-16 17:05:10 +01001436`),
1437 checkVersionedAndroidBpContents(`
1438// This is auto-generated. DO NOT EDIT.
Paul Duffin87a05a32020-05-12 11:50:28 +01001439
1440java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001441 name: "mysdk_myjavalib@current",
1442 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001443 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001444 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001445 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001446 public: {
1447 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001448 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001449 current_api: "sdk_library/public/myjavalib.txt",
1450 removed_api: "sdk_library/public/myjavalib-removed.txt",
1451 sdk_version: "module_current",
1452 },
1453}
1454
1455sdk_snapshot {
1456 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001457 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001458 java_sdk_libs: ["mysdk_myjavalib@current"],
1459}
1460`),
1461 checkAllCopyRules(`
1462.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001463.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1464.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 +01001465`),
1466 checkMergeZips(
1467 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1468 ),
1469 )
1470}
1471
1472func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001473 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001474 sdk {
1475 name: "mysdk",
1476 java_sdk_libs: ["myjavalib"],
1477 }
1478
1479 java_sdk_library {
1480 name: "myjavalib",
1481 apex_available: ["//apex_available:anyapex"],
1482 srcs: ["Test.java"],
1483 sdk_version: "current",
1484 public: {
1485 enabled: true,
1486 },
1487 system: {
1488 enabled: true,
1489 },
1490 }
1491 `)
1492
Paul Duffin36474d32021-03-12 12:19:43 +00001493 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001494 checkUnversionedAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001495// This is auto-generated. DO NOT EDIT.
1496
1497java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001498 name: "myjavalib",
1499 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001500 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001501 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001502 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001503 public: {
1504 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001505 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001506 current_api: "sdk_library/public/myjavalib.txt",
1507 removed_api: "sdk_library/public/myjavalib-removed.txt",
1508 sdk_version: "current",
1509 },
1510 system: {
1511 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001512 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001513 current_api: "sdk_library/system/myjavalib.txt",
1514 removed_api: "sdk_library/system/myjavalib-removed.txt",
1515 sdk_version: "system_current",
1516 },
1517}
Paul Duffine1381882021-04-16 17:05:10 +01001518`),
1519 checkVersionedAndroidBpContents(`
1520// This is auto-generated. DO NOT EDIT.
Paul Duffin3375e352020-04-28 10:44:03 +01001521
1522java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001523 name: "mysdk_myjavalib@current",
1524 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001525 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001526 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001527 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001528 public: {
1529 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001530 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001531 current_api: "sdk_library/public/myjavalib.txt",
1532 removed_api: "sdk_library/public/myjavalib-removed.txt",
1533 sdk_version: "current",
1534 },
1535 system: {
1536 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001537 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001538 current_api: "sdk_library/system/myjavalib.txt",
1539 removed_api: "sdk_library/system/myjavalib-removed.txt",
1540 sdk_version: "system_current",
1541 },
1542}
1543
1544sdk_snapshot {
1545 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001546 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001547 java_sdk_libs: ["mysdk_myjavalib@current"],
1548}
1549`),
1550 checkAllCopyRules(`
1551.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001552.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1553.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 +01001554.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001555.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1556.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 +01001557`),
1558 checkMergeZips(
1559 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1560 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1561 ),
1562 )
1563}
Paul Duffin8f265b92020-04-28 14:13:56 +01001564
1565func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001566 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001567 sdk {
1568 name: "mysdk",
1569 java_sdk_libs: ["myjavalib"],
1570 }
1571
1572 java_sdk_library {
1573 name: "myjavalib",
1574 apex_available: ["//apex_available:anyapex"],
1575 srcs: ["Test.java"],
1576 sdk_version: "current",
1577 public: {
1578 enabled: true,
1579 },
1580 system: {
1581 enabled: true,
1582 },
1583 module_lib: {
1584 enabled: true,
1585 },
1586 }
1587 `)
1588
Paul Duffin36474d32021-03-12 12:19:43 +00001589 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001590 checkUnversionedAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001591// This is auto-generated. DO NOT EDIT.
1592
1593java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001594 name: "myjavalib",
1595 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001596 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001597 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001598 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001599 public: {
1600 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001601 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001602 current_api: "sdk_library/public/myjavalib.txt",
1603 removed_api: "sdk_library/public/myjavalib-removed.txt",
1604 sdk_version: "current",
1605 },
1606 system: {
1607 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001608 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001609 current_api: "sdk_library/system/myjavalib.txt",
1610 removed_api: "sdk_library/system/myjavalib-removed.txt",
1611 sdk_version: "system_current",
1612 },
1613 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001614 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001615 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001616 current_api: "sdk_library/module-lib/myjavalib.txt",
1617 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001618 sdk_version: "module_current",
1619 },
1620}
Paul Duffine1381882021-04-16 17:05:10 +01001621`),
1622 checkVersionedAndroidBpContents(`
1623// This is auto-generated. DO NOT EDIT.
Paul Duffin8f265b92020-04-28 14:13:56 +01001624
1625java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001626 name: "mysdk_myjavalib@current",
1627 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001628 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001629 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001630 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001631 public: {
1632 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001633 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001634 current_api: "sdk_library/public/myjavalib.txt",
1635 removed_api: "sdk_library/public/myjavalib-removed.txt",
1636 sdk_version: "current",
1637 },
1638 system: {
1639 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001640 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001641 current_api: "sdk_library/system/myjavalib.txt",
1642 removed_api: "sdk_library/system/myjavalib-removed.txt",
1643 sdk_version: "system_current",
1644 },
1645 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001646 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001647 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001648 current_api: "sdk_library/module-lib/myjavalib.txt",
1649 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001650 sdk_version: "module_current",
1651 },
1652}
1653
1654sdk_snapshot {
1655 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001656 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001657 java_sdk_libs: ["mysdk_myjavalib@current"],
1658}
1659`),
1660 checkAllCopyRules(`
1661.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001662.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1663.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 +01001664.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001665.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1666.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 +01001667.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 -07001668.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1669.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 +01001670`),
1671 checkMergeZips(
1672 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1673 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001674 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001675 ),
1676 )
1677}
Paul Duffinf7a64332020-05-13 16:54:55 +01001678
Paul Duffin0c5bae52020-06-02 13:00:08 +01001679func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001680 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001681 sdk {
1682 name: "mysdk",
1683 java_sdk_libs: ["myjavalib"],
1684 }
1685
1686 java_sdk_library {
1687 name: "myjavalib",
1688 apex_available: ["//apex_available:anyapex"],
1689 srcs: ["Test.java"],
1690 sdk_version: "current",
1691 public: {
1692 enabled: true,
1693 },
1694 system_server: {
1695 enabled: true,
1696 },
1697 }
1698 `)
1699
Paul Duffin36474d32021-03-12 12:19:43 +00001700 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001701 checkUnversionedAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001702// This is auto-generated. DO NOT EDIT.
1703
1704java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001705 name: "myjavalib",
1706 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001707 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001708 apex_available: ["//apex_available:anyapex"],
1709 shared_library: true,
1710 public: {
1711 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001712 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001713 current_api: "sdk_library/public/myjavalib.txt",
1714 removed_api: "sdk_library/public/myjavalib-removed.txt",
1715 sdk_version: "current",
1716 },
1717 system_server: {
1718 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001719 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001720 current_api: "sdk_library/system-server/myjavalib.txt",
1721 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1722 sdk_version: "system_server_current",
1723 },
1724}
Paul Duffine1381882021-04-16 17:05:10 +01001725`),
1726 checkVersionedAndroidBpContents(`
1727// This is auto-generated. DO NOT EDIT.
Paul Duffin0c5bae52020-06-02 13:00:08 +01001728
1729java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001730 name: "mysdk_myjavalib@current",
1731 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001732 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001733 apex_available: ["//apex_available:anyapex"],
1734 shared_library: true,
1735 public: {
1736 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001737 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001738 current_api: "sdk_library/public/myjavalib.txt",
1739 removed_api: "sdk_library/public/myjavalib-removed.txt",
1740 sdk_version: "current",
1741 },
1742 system_server: {
1743 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001744 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001745 current_api: "sdk_library/system-server/myjavalib.txt",
1746 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1747 sdk_version: "system_server_current",
1748 },
1749}
1750
1751sdk_snapshot {
1752 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001753 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001754 java_sdk_libs: ["mysdk_myjavalib@current"],
1755}
1756`),
1757 checkAllCopyRules(`
1758.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001759.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1760.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 +01001761.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 -07001762.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1763.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 +01001764`),
1765 checkMergeZips(
1766 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1767 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1768 ),
1769 )
1770}
1771
Paul Duffinf7a64332020-05-13 16:54:55 +01001772func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001773 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001774 sdk {
1775 name: "mysdk",
1776 java_sdk_libs: ["myjavalib"],
1777 }
1778
1779 java_sdk_library {
1780 name: "myjavalib",
1781 apex_available: ["//apex_available:anyapex"],
1782 srcs: ["Test.java"],
1783 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001784 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001785 public: {
1786 enabled: true,
1787 },
1788 }
1789 `)
1790
Paul Duffin36474d32021-03-12 12:19:43 +00001791 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001792 checkUnversionedAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001793// This is auto-generated. DO NOT EDIT.
1794
1795java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001796 name: "myjavalib",
1797 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001798 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001799 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001800 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001801 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001802 public: {
1803 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001804 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001805 current_api: "sdk_library/public/myjavalib.txt",
1806 removed_api: "sdk_library/public/myjavalib-removed.txt",
1807 sdk_version: "current",
1808 },
1809}
Paul Duffine1381882021-04-16 17:05:10 +01001810`),
1811 checkVersionedAndroidBpContents(`
1812// This is auto-generated. DO NOT EDIT.
Paul Duffinf7a64332020-05-13 16:54:55 +01001813
1814java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001815 name: "mysdk_myjavalib@current",
1816 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001817 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001818 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001819 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001820 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001821 public: {
1822 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001823 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001824 current_api: "sdk_library/public/myjavalib.txt",
1825 removed_api: "sdk_library/public/myjavalib-removed.txt",
1826 sdk_version: "current",
1827 },
1828}
1829
1830sdk_snapshot {
1831 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001832 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001833 java_sdk_libs: ["mysdk_myjavalib@current"],
1834}
1835`),
1836 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001837.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001838.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1839.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 +01001840`),
1841 checkMergeZips(
1842 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1843 ),
1844 )
1845}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001846
1847func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001848 result := android.GroupFixturePreparers(
1849 prepareForSdkTestWithJavaSdkLibrary,
1850 android.FixtureAddFile("docs/known_doctags", nil),
1851 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001852 sdk {
1853 name: "mysdk",
1854 java_sdk_libs: ["myjavalib"],
1855 }
1856
1857 java_sdk_library {
1858 name: "myjavalib",
1859 srcs: ["Test.java"],
1860 sdk_version: "current",
1861 public: {
1862 enabled: true,
1863 },
1864 doctag_files: ["docs/known_doctags"],
1865 }
1866
1867 filegroup {
1868 name: "mygroup",
1869 srcs: [":myjavalib{.doctags}"],
1870 }
1871 `)
1872
Paul Duffin36474d32021-03-12 12:19:43 +00001873 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001874 checkUnversionedAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001875// This is auto-generated. DO NOT EDIT.
1876
1877java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001878 name: "myjavalib",
1879 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001880 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001881 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001882 shared_library: true,
1883 doctag_files: ["doctags/docs/known_doctags"],
1884 public: {
1885 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001886 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001887 current_api: "sdk_library/public/myjavalib.txt",
1888 removed_api: "sdk_library/public/myjavalib-removed.txt",
1889 sdk_version: "current",
1890 },
1891}
Paul Duffine1381882021-04-16 17:05:10 +01001892`),
1893 checkVersionedAndroidBpContents(`
1894// This is auto-generated. DO NOT EDIT.
Paul Duffina2ae7e02020-09-11 11:55:00 +01001895
1896java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001897 name: "mysdk_myjavalib@current",
1898 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001899 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001900 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001901 shared_library: true,
1902 doctag_files: ["doctags/docs/known_doctags"],
1903 public: {
1904 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001905 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001906 current_api: "sdk_library/public/myjavalib.txt",
1907 removed_api: "sdk_library/public/myjavalib-removed.txt",
1908 sdk_version: "current",
1909 },
1910}
1911
1912sdk_snapshot {
1913 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001914 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001915 java_sdk_libs: ["mysdk_myjavalib@current"],
1916}
1917`),
1918 checkAllCopyRules(`
1919.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001920.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1921.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 +01001922docs/known_doctags -> doctags/docs/known_doctags
1923`),
1924 )
1925}