blob: a2cfe6d167c4793ce4972a76dff34c5657a986bc [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,
178 }
179 `)
180
Paul Duffin36474d32021-03-12 12:19:43 +0000181 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100182 checkUnversionedAndroidBpContents(`
183// This is auto-generated. DO NOT EDIT.
184
185java_import {
186 name: "myjavalib",
187 prefer: false,
188 visibility: ["//visibility:public"],
189 apex_available: ["//apex_available:platform"],
190 jars: ["java/myjavalib.jar"],
191}
192`),
193 checkVersionedAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000194// This is auto-generated. DO NOT EDIT.
195
196java_import {
197 name: "mysdk_myjavalib@current",
198 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100199 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000200 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000201 jars: ["java/myjavalib.jar"],
202}
203
Paul Duffina0dbf432019-12-05 11:25:53 +0000204sdk_snapshot {
205 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100206 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000207 java_header_libs: ["mysdk_myjavalib@current"],
208}
Paul Duffina0dbf432019-12-05 11:25:53 +0000209`),
210 checkAllCopyRules(`
211.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
212aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
213`),
214 )
215}
216
217func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000218 result := android.GroupFixturePreparers(
219 prepareForSdkTestWithJava,
220 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
221 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000222 sdk {
223 name: "mysdk",
224 device_supported: false,
225 host_supported: true,
226 java_header_libs: ["myjavalib"],
227 }
228
229 java_library {
230 name: "myjavalib",
231 device_supported: false,
232 host_supported: true,
233 srcs: ["Test.java"],
234 aidl: {
235 export_include_dirs: ["aidl"],
236 },
237 system_modules: "none",
238 sdk_version: "none",
239 compile_dex: true,
240 }
241 `)
242
Paul Duffin36474d32021-03-12 12:19:43 +0000243 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100244 checkUnversionedAndroidBpContents(`
Paul Duffina0dbf432019-12-05 11:25:53 +0000245// This is auto-generated. DO NOT EDIT.
246
247java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100248 name: "myjavalib",
249 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100250 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000251 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000252 device_supported: false,
253 host_supported: true,
254 jars: ["java/myjavalib.jar"],
255}
Paul Duffine1381882021-04-16 17:05:10 +0100256`),
257 checkVersionedAndroidBpContents(`
258// This is auto-generated. DO NOT EDIT.
Paul Duffina0dbf432019-12-05 11:25:53 +0000259
260java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100261 name: "mysdk_myjavalib@current",
262 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100263 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000264 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000265 device_supported: false,
266 host_supported: true,
267 jars: ["java/myjavalib.jar"],
268}
269
270sdk_snapshot {
271 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100272 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000273 device_supported: false,
274 host_supported: true,
275 java_header_libs: ["mysdk_myjavalib@current"],
276}
277`),
278 checkAllCopyRules(`
279.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
280aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
281`),
282 )
283}
284
Paul Duffina04c1072020-03-02 10:16:35 +0000285func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000286 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000287 sdk {
288 name: "mysdk",
289 host_supported: true,
290 java_header_libs: ["myjavalib"],
291 }
292
293 java_library {
294 name: "myjavalib",
295 host_supported: true,
296 srcs: ["Test.java"],
297 system_modules: "none",
298 sdk_version: "none",
299 compile_dex: true,
300 }
301 `)
302
Paul Duffin36474d32021-03-12 12:19:43 +0000303 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100304 checkUnversionedAndroidBpContents(`
Paul Duffina04c1072020-03-02 10:16:35 +0000305// This is auto-generated. DO NOT EDIT.
306
307java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100308 name: "myjavalib",
309 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100310 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000311 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000312 host_supported: true,
313 target: {
314 android: {
315 jars: ["java/android/myjavalib.jar"],
316 },
317 linux_glibc: {
318 jars: ["java/linux_glibc/myjavalib.jar"],
319 },
320 },
321}
Paul Duffine1381882021-04-16 17:05:10 +0100322`),
323 checkVersionedAndroidBpContents(`
324// This is auto-generated. DO NOT EDIT.
Paul Duffina04c1072020-03-02 10:16:35 +0000325
326java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100327 name: "mysdk_myjavalib@current",
328 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100329 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000330 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000331 host_supported: true,
332 target: {
333 android: {
334 jars: ["java/android/myjavalib.jar"],
335 },
336 linux_glibc: {
337 jars: ["java/linux_glibc/myjavalib.jar"],
338 },
339 },
340}
341
342sdk_snapshot {
343 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100344 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000345 host_supported: true,
346 java_header_libs: ["mysdk_myjavalib@current"],
347}
348`),
349 checkAllCopyRules(`
350.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
351.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
352`),
353 )
354}
355
Paul Duffina0dbf432019-12-05 11:25:53 +0000356func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000357 result := android.GroupFixturePreparers(
358 prepareForSdkTestWithJava,
359 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
Paul Duffindb462dd2021-03-21 22:01:55 +0000360 android.FixtureAddFile("resource.txt", nil),
Paul Duffin9ec86b12021-03-15 11:17:52 +0000361 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000362 module_exports {
363 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000364 java_libs: ["myjavalib"],
365 }
366
367 java_library {
368 name: "myjavalib",
369 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100370 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000371 aidl: {
372 export_include_dirs: ["aidl"],
373 },
374 system_modules: "none",
375 sdk_version: "none",
376 compile_dex: true,
377 host_supported: true,
378 }
379 `)
380
Paul Duffin36474d32021-03-12 12:19:43 +0000381 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100382 checkUnversionedAndroidBpContents(`
383// This is auto-generated. DO NOT EDIT.
384
385java_import {
386 name: "myjavalib",
387 prefer: false,
388 visibility: ["//visibility:public"],
389 apex_available: ["//apex_available:platform"],
390 jars: ["java/myjavalib.jar"],
391}
392`),
393 checkVersionedAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000394// This is auto-generated. DO NOT EDIT.
395
396java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000397 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000398 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100399 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000400 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000401 jars: ["java/myjavalib.jar"],
402}
403
Paul Duffine6029182019-12-16 17:43:48 +0000404module_exports_snapshot {
405 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100406 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000407 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000408}
Paul Duffina80fdec2019-12-03 15:25:00 +0000409`),
410 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100411.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000412aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
413`),
414 )
415}
416
Paul Duffindb170e42020-12-08 17:48:25 +0000417func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +0000418 result := android.GroupFixturePreparers(
419 prepareForSdkTestWithJava,
420 android.FixtureAddFile("aidl", nil),
421 android.FixtureAddFile("resource.txt", nil),
422 ).RunTestWithBp(t, `
Paul Duffindb170e42020-12-08 17:48:25 +0000423 module_exports {
424 name: "myexports",
425 java_boot_libs: ["myjavalib"],
426 }
427
428 java_library {
429 name: "myjavalib",
430 srcs: ["Test.java"],
431 java_resources: ["resource.txt"],
432 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
433 // intended to be used for compiling Java, only for accessing the dex implementation jar.
434 aidl: {
435 export_include_dirs: ["aidl"],
436 },
437 system_modules: "none",
438 sdk_version: "none",
439 compile_dex: true,
440 }
441 `)
442
Paul Duffin36474d32021-03-12 12:19:43 +0000443 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100444 checkUnversionedAndroidBpContents(`
445// This is auto-generated. DO NOT EDIT.
446
447java_import {
448 name: "myjavalib",
449 prefer: false,
450 visibility: ["//visibility:public"],
451 apex_available: ["//apex_available:platform"],
452 jars: ["java/myjavalib.jar"],
453}
454`),
455 checkVersionedAndroidBpContents(`
Paul Duffindb170e42020-12-08 17:48:25 +0000456// This is auto-generated. DO NOT EDIT.
457
458java_import {
459 name: "myexports_myjavalib@current",
460 sdk_member_name: "myjavalib",
461 visibility: ["//visibility:public"],
462 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000463 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000464}
465
Paul Duffindb170e42020-12-08 17:48:25 +0000466module_exports_snapshot {
467 name: "myexports@current",
468 visibility: ["//visibility:public"],
469 java_boot_libs: ["myexports_myjavalib@current"],
470}
Paul Duffindb170e42020-12-08 17:48:25 +0000471`),
472 checkAllCopyRules(`
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000473.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000474`),
475 )
476}
477
Paul Duffina0dbf432019-12-05 11:25:53 +0000478func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000479 result := android.GroupFixturePreparers(
480 prepareForSdkTestWithJava,
481 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
482 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000483 module_exports {
484 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000485 device_supported: false,
486 host_supported: true,
487 java_libs: ["myjavalib"],
488 }
489
490 java_library {
491 name: "myjavalib",
492 device_supported: false,
493 host_supported: true,
494 srcs: ["Test.java"],
495 aidl: {
496 export_include_dirs: ["aidl"],
497 },
498 system_modules: "none",
499 sdk_version: "none",
500 compile_dex: true,
501 }
502 `)
503
Paul Duffin36474d32021-03-12 12:19:43 +0000504 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100505 checkUnversionedAndroidBpContents(`
Paul Duffina80fdec2019-12-03 15:25:00 +0000506// This is auto-generated. DO NOT EDIT.
507
508java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100509 name: "myjavalib",
510 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100511 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000512 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000513 device_supported: false,
514 host_supported: true,
515 jars: ["java/myjavalib.jar"],
516}
Paul Duffine1381882021-04-16 17:05:10 +0100517`),
518 checkVersionedAndroidBpContents(`
519// This is auto-generated. DO NOT EDIT.
Paul Duffina80fdec2019-12-03 15:25:00 +0000520
521java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100522 name: "myexports_myjavalib@current",
523 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100524 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000525 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000526 device_supported: false,
527 host_supported: true,
528 jars: ["java/myjavalib.jar"],
529}
530
Paul Duffine6029182019-12-16 17:43:48 +0000531module_exports_snapshot {
532 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100533 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000534 device_supported: false,
535 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000536 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000537}
538`),
539 checkAllCopyRules(`
540.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
541aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
542`),
543 )
544}
545
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000546func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000547 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000548 module_exports {
549 name: "myexports",
550 java_tests: ["myjavatests"],
551 }
552
553 java_test {
554 name: "myjavatests",
555 srcs: ["Test.java"],
556 system_modules: "none",
557 sdk_version: "none",
558 compile_dex: true,
559 host_supported: true,
560 }
561 `)
562
Paul Duffin36474d32021-03-12 12:19:43 +0000563 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100564 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000565// This is auto-generated. DO NOT EDIT.
566
567java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100568 name: "myjavatests",
569 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100570 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000571 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000572 jars: ["java/myjavatests.jar"],
573 test_config: "java/myjavatests-AndroidTest.xml",
574}
Paul Duffine1381882021-04-16 17:05:10 +0100575`),
576 checkVersionedAndroidBpContents(`
577// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000578
579java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100580 name: "myexports_myjavatests@current",
581 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100582 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000583 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000584 jars: ["java/myjavatests.jar"],
585 test_config: "java/myjavatests-AndroidTest.xml",
586}
587
588module_exports_snapshot {
589 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100590 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000591 java_tests: ["myexports_myjavatests@current"],
592}
593`),
594 checkAllCopyRules(`
595.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
596.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
597`),
598 )
599}
600
601func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000602 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000603 module_exports {
604 name: "myexports",
605 device_supported: false,
606 host_supported: true,
607 java_tests: ["myjavatests"],
608 }
609
610 java_test {
611 name: "myjavatests",
612 device_supported: false,
613 host_supported: true,
614 srcs: ["Test.java"],
615 system_modules: "none",
616 sdk_version: "none",
617 compile_dex: true,
618 }
619 `)
620
Paul Duffin36474d32021-03-12 12:19:43 +0000621 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100622 checkUnversionedAndroidBpContents(`
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000623// This is auto-generated. DO NOT EDIT.
624
625java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100626 name: "myjavatests",
627 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100628 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000629 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000630 device_supported: false,
631 host_supported: true,
632 jars: ["java/myjavatests.jar"],
633 test_config: "java/myjavatests-AndroidTest.xml",
634}
Paul Duffine1381882021-04-16 17:05:10 +0100635`),
636 checkVersionedAndroidBpContents(`
637// This is auto-generated. DO NOT EDIT.
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000638
639java_test_import {
Paul Duffine1381882021-04-16 17:05:10 +0100640 name: "myexports_myjavatests@current",
641 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100642 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000643 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000644 device_supported: false,
645 host_supported: true,
646 jars: ["java/myjavatests.jar"],
647 test_config: "java/myjavatests-AndroidTest.xml",
648}
649
650module_exports_snapshot {
651 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100652 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000653 device_supported: false,
654 host_supported: true,
655 java_tests: ["myexports_myjavatests@current"],
656}
657`),
658 checkAllCopyRules(`
659.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
660.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
661`),
662 )
663}
664
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000665func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin33028712021-06-22 11:00:07 +0100666 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000667 sdk {
668 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000669 java_header_libs: ["exported-system-module"],
Paul Duffin33028712021-06-22 11:00:07 +0100670 java_sdk_libs: ["myjavalib"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000671 java_system_modules: ["my-system-modules"],
672 }
673
Paul Duffin33028712021-06-22 11:00:07 +0100674 java_sdk_library {
675 name: "myjavalib",
676 apex_available: ["//apex_available:anyapex"],
677 srcs: ["Test.java"],
678 sdk_version: "current",
679 shared_library: false,
680 public: {
681 enabled: true,
682 },
683 }
684
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000685 java_system_modules {
686 name: "my-system-modules",
Paul Duffin33028712021-06-22 11:00:07 +0100687 libs: ["system-module", "exported-system-module", "myjavalib.stubs"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000688 }
689
690 java_library {
691 name: "system-module",
692 srcs: ["Test.java"],
693 sdk_version: "none",
694 system_modules: "none",
695 }
Paul Duffin72910952020-01-20 18:16:30 +0000696
697 java_library {
698 name: "exported-system-module",
699 srcs: ["Test.java"],
700 sdk_version: "none",
701 system_modules: "none",
702 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000703 `)
704
Paul Duffin36474d32021-03-12 12:19:43 +0000705 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100706 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000707// This is auto-generated. DO NOT EDIT.
708
709java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100710 name: "exported-system-module",
711 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100712 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000713 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000714 jars: ["java/exported-system-module.jar"],
715}
716
717java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100718 name: "mysdk_system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000719 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100720 visibility: ["//visibility:private"],
721 apex_available: ["//apex_available:platform"],
722 jars: ["java/system-module.jar"],
723}
724
Paul Duffin33028712021-06-22 11:00:07 +0100725java_sdk_library_import {
726 name: "myjavalib",
727 prefer: false,
728 visibility: ["//visibility:public"],
729 apex_available: ["//apex_available:anyapex"],
730 shared_library: false,
731 public: {
732 jars: ["sdk_library/public/myjavalib-stubs.jar"],
733 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
734 current_api: "sdk_library/public/myjavalib.txt",
735 removed_api: "sdk_library/public/myjavalib-removed.txt",
736 sdk_version: "current",
737 },
738}
739
Paul Duffine1381882021-04-16 17:05:10 +0100740java_system_modules_import {
741 name: "my-system-modules",
742 prefer: false,
743 visibility: ["//visibility:public"],
744 libs: [
745 "mysdk_system-module",
746 "exported-system-module",
Paul Duffinb97b1572021-04-29 21:50:40 +0100747 "myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100748 ],
749}
750`),
751 checkVersionedAndroidBpContents(`
752// This is auto-generated. DO NOT EDIT.
753
754java_import {
755 name: "mysdk_exported-system-module@current",
756 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100757 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000758 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000759 jars: ["java/exported-system-module.jar"],
760}
761
762java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000763 name: "mysdk_system-module@current",
764 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000765 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000766 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000767 jars: ["java/system-module.jar"],
768}
769
Paul Duffin33028712021-06-22 11:00:07 +0100770java_sdk_library_import {
771 name: "mysdk_myjavalib@current",
772 sdk_member_name: "myjavalib",
773 visibility: ["//visibility:public"],
774 apex_available: ["//apex_available:anyapex"],
775 shared_library: false,
776 public: {
777 jars: ["sdk_library/public/myjavalib-stubs.jar"],
778 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
779 current_api: "sdk_library/public/myjavalib.txt",
780 removed_api: "sdk_library/public/myjavalib-removed.txt",
781 sdk_version: "current",
782 },
783}
784
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000785java_system_modules_import {
786 name: "mysdk_my-system-modules@current",
787 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100788 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000789 libs: [
790 "mysdk_system-module@current",
791 "mysdk_exported-system-module@current",
Paul Duffin33028712021-06-22 11:00:07 +0100792 "mysdk_myjavalib.stubs@current",
Paul Duffin72910952020-01-20 18:16:30 +0000793 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000794}
795
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000796sdk_snapshot {
797 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100798 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000799 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin33028712021-06-22 11:00:07 +0100800 java_sdk_libs: ["mysdk_myjavalib@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000801 java_system_modules: ["mysdk_my-system-modules@current"],
802}
803`),
Paul Duffin72910952020-01-20 18:16:30 +0000804 checkAllCopyRules(`
805.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
806.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100807.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
808.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
809.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 +0000810`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000811 )
812}
813
814func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000815 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000816 sdk {
817 name: "mysdk",
818 device_supported: false,
819 host_supported: true,
820 java_system_modules: ["my-system-modules"],
821 }
822
823 java_system_modules {
824 name: "my-system-modules",
825 device_supported: false,
826 host_supported: true,
827 libs: ["system-module"],
828 }
829
830 java_library {
831 name: "system-module",
832 device_supported: false,
833 host_supported: true,
834 srcs: ["Test.java"],
835 sdk_version: "none",
836 system_modules: "none",
837 }
838 `)
839
Paul Duffin36474d32021-03-12 12:19:43 +0000840 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100841 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000842// This is auto-generated. DO NOT EDIT.
843
844java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100845 name: "mysdk_system-module",
846 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000847 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000848 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000849 device_supported: false,
850 host_supported: true,
851 jars: ["java/system-module.jar"],
852}
853
Paul Duffine1381882021-04-16 17:05:10 +0100854java_system_modules_import {
855 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000856 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100857 visibility: ["//visibility:public"],
858 device_supported: false,
859 host_supported: true,
860 libs: ["mysdk_system-module"],
861}
862`),
863 checkVersionedAndroidBpContents(`
864// This is auto-generated. DO NOT EDIT.
865
866java_import {
867 name: "mysdk_system-module@current",
868 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000869 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000870 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000871 device_supported: false,
872 host_supported: true,
873 jars: ["java/system-module.jar"],
874}
875
876java_system_modules_import {
877 name: "mysdk_my-system-modules@current",
878 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100879 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000880 device_supported: false,
881 host_supported: true,
882 libs: ["mysdk_system-module@current"],
883}
884
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000885sdk_snapshot {
886 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100887 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000888 device_supported: false,
889 host_supported: true,
890 java_system_modules: ["mysdk_my-system-modules@current"],
891}
892`),
893 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
894 )
895}
Paul Duffin865171e2020-03-02 18:38:15 +0000896
897func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000898 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000899 module_exports {
900 name: "myexports",
901 host_supported: true,
902 java_libs: ["myjavalib"],
903 target: {
904 android: {
905 java_header_libs: ["androidjavalib"],
906 },
907 host: {
908 java_header_libs: ["hostjavalib"],
909 },
910 },
911 }
912
913 java_library {
914 name: "myjavalib",
915 host_supported: true,
916 srcs: ["Test.java"],
917 system_modules: "none",
918 sdk_version: "none",
919 }
920
921 java_library {
922 name: "androidjavalib",
923 srcs: ["Test.java"],
924 system_modules: "none",
925 sdk_version: "none",
926 }
927
928 java_library_host {
929 name: "hostjavalib",
930 srcs: ["Test.java"],
931 }
932 `)
933
Paul Duffin36474d32021-03-12 12:19:43 +0000934 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100935 checkUnversionedAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000936// This is auto-generated. DO NOT EDIT.
937
938java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100939 name: "hostjavalib",
940 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100941 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000942 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000943 device_supported: false,
944 host_supported: true,
945 jars: ["java/hostjavalib.jar"],
946}
947
948java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100949 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000950 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100951 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000952 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100953 jars: ["java/androidjavalib.jar"],
954}
955
956java_import {
957 name: "myjavalib",
958 prefer: false,
959 visibility: ["//visibility:public"],
960 apex_available: ["//apex_available:platform"],
961 host_supported: true,
962 target: {
963 android: {
964 jars: ["java/android/myjavalib.jar"],
965 },
966 linux_glibc: {
967 jars: ["java/linux_glibc/myjavalib.jar"],
968 },
969 },
970}
971`),
972 checkVersionedAndroidBpContents(`
973// This is auto-generated. DO NOT EDIT.
974
975java_import {
976 name: "myexports_hostjavalib@current",
977 sdk_member_name: "hostjavalib",
978 visibility: ["//visibility:public"],
979 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000980 device_supported: false,
981 host_supported: true,
982 jars: ["java/hostjavalib.jar"],
983}
984
985java_import {
986 name: "myexports_androidjavalib@current",
987 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100988 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000989 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000990 jars: ["java/androidjavalib.jar"],
991}
992
993java_import {
Paul Duffin865171e2020-03-02 18:38:15 +0000994 name: "myexports_myjavalib@current",
995 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100996 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000997 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000998 host_supported: true,
999 target: {
1000 android: {
1001 jars: ["java/android/myjavalib.jar"],
1002 },
1003 linux_glibc: {
1004 jars: ["java/linux_glibc/myjavalib.jar"],
1005 },
1006 },
1007}
1008
Paul Duffin865171e2020-03-02 18:38:15 +00001009module_exports_snapshot {
1010 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001011 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001012 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001013 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001014 target: {
1015 android: {
1016 java_header_libs: ["myexports_androidjavalib@current"],
1017 },
1018 linux_glibc: {
1019 java_header_libs: ["myexports_hostjavalib@current"],
1020 },
1021 },
Paul Duffin865171e2020-03-02 18:38:15 +00001022}
1023`),
1024 checkAllCopyRules(`
1025.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1026.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1027.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1028.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1029`),
1030 )
1031}
Paul Duffindd46f712020-02-10 13:37:10 +00001032
1033func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001034 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001035 sdk {
1036 name: "mysdk",
1037 java_sdk_libs: ["myjavalib"],
1038 }
1039
1040 java_sdk_library {
1041 name: "myjavalib",
1042 apex_available: ["//apex_available:anyapex"],
1043 srcs: ["Test.java"],
1044 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001045 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001046 stubs_library_visibility: ["//other"],
1047 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001048 }
1049 `)
1050
Paul Duffin36474d32021-03-12 12:19:43 +00001051 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001052 checkUnversionedAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001053// This is auto-generated. DO NOT EDIT.
1054
1055java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001056 name: "myjavalib",
1057 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001058 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001059 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001060 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001061 public: {
1062 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001063 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001064 current_api: "sdk_library/public/myjavalib.txt",
1065 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001066 sdk_version: "current",
1067 },
1068 system: {
1069 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001070 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001071 current_api: "sdk_library/system/myjavalib.txt",
1072 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001073 sdk_version: "system_current",
1074 },
1075 test: {
1076 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001077 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001078 current_api: "sdk_library/test/myjavalib.txt",
1079 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001080 sdk_version: "test_current",
1081 },
1082}
Paul Duffine1381882021-04-16 17:05:10 +01001083`),
1084 checkVersionedAndroidBpContents(`
1085// This is auto-generated. DO NOT EDIT.
Paul Duffindd46f712020-02-10 13:37:10 +00001086
1087java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001088 name: "mysdk_myjavalib@current",
1089 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001090 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001091 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001092 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001093 public: {
1094 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001095 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001096 current_api: "sdk_library/public/myjavalib.txt",
1097 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001098 sdk_version: "current",
1099 },
1100 system: {
1101 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001102 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001103 current_api: "sdk_library/system/myjavalib.txt",
1104 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001105 sdk_version: "system_current",
1106 },
1107 test: {
1108 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001109 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001110 current_api: "sdk_library/test/myjavalib.txt",
1111 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001112 sdk_version: "test_current",
1113 },
1114}
1115
1116sdk_snapshot {
1117 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001118 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001119 java_sdk_libs: ["mysdk_myjavalib@current"],
1120}
1121`),
1122 checkAllCopyRules(`
1123.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001124.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1125.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 +00001126.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001127.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1128.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 +00001129.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001130.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1131.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 +00001132`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001133 checkMergeZips(
1134 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1135 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +01001136 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1137 ),
1138 snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) {
Paul Duffinb97b1572021-04-29 21:50:40 +01001139 // Make sure that the name of the child modules created by a versioned java_sdk_library_import
1140 // module is correct, i.e. the suffix is added before the version and not after.
1141 result.Module("mysdk_myjavalib.stubs@current", "android_common")
1142 result.Module("mysdk_myjavalib.stubs.source@current", "android_common")
Paul Duffin33028712021-06-22 11:00:07 +01001143 }),
Paul Duffindd46f712020-02-10 13:37:10 +00001144 )
1145}
Paul Duffin3375e352020-04-28 10:44:03 +01001146
Paul Duffin22628d52021-05-12 23:13:22 +01001147func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1148 result := android.GroupFixturePreparers(
1149 prepareForSdkTestWithJavaSdkLibrary,
1150 android.FixtureMergeEnv(map[string]string{
1151 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1152 }),
1153 ).RunTestWithBp(t, `
1154 sdk {
1155 name: "mysdk",
1156 java_sdk_libs: ["myjavalib"],
1157 }
1158
1159 java_sdk_library {
1160 name: "myjavalib",
1161 srcs: ["Test.java"],
1162 sdk_version: "current",
1163 shared_library: false,
1164 public: {
1165 enabled: true,
1166 },
1167 }
1168 `)
1169
1170 CheckSnapshot(t, result, "mysdk", "",
1171 checkUnversionedAndroidBpContents(`
1172// This is auto-generated. DO NOT EDIT.
1173
1174java_sdk_library_import {
1175 name: "myjavalib",
1176 prefer: false,
1177 visibility: ["//visibility:public"],
1178 apex_available: ["//apex_available:platform"],
1179 shared_library: false,
1180 public: {
1181 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1182 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1183 current_api: "sdk_library/public/myjavalib.txt",
1184 removed_api: "sdk_library/public/myjavalib-removed.txt",
1185 sdk_version: "current",
1186 },
1187}
1188 `),
1189 checkAllCopyRules(`
1190.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1191.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1192.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1193.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1194 `),
1195 )
1196}
1197
Paul Duffin1267d872021-04-16 17:21:36 +01001198func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1199 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1200 sdk {
1201 name: "mysdk",
1202 java_sdk_libs: ["myjavalib"],
1203 }
1204
1205 java_sdk_library {
1206 name: "myjavalib",
1207 srcs: ["Test.java"],
1208 sdk_version: "current",
1209 shared_library: false,
1210 compile_dex: true,
1211 public: {
1212 enabled: true,
1213 },
1214 system: {
1215 enabled: true,
1216 },
1217 }
1218 `)
1219
1220 CheckSnapshot(t, result, "mysdk", "",
1221 checkUnversionedAndroidBpContents(`
1222// This is auto-generated. DO NOT EDIT.
1223
1224java_sdk_library_import {
1225 name: "myjavalib",
1226 prefer: false,
1227 visibility: ["//visibility:public"],
1228 apex_available: ["//apex_available:platform"],
1229 shared_library: false,
1230 compile_dex: true,
1231 public: {
1232 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1233 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1234 current_api: "sdk_library/public/myjavalib.txt",
1235 removed_api: "sdk_library/public/myjavalib-removed.txt",
1236 sdk_version: "current",
1237 },
1238 system: {
1239 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1240 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1241 current_api: "sdk_library/system/myjavalib.txt",
1242 removed_api: "sdk_library/system/myjavalib-removed.txt",
1243 sdk_version: "system_current",
1244 },
1245}
1246`),
1247 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1248 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1249 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1250 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
1251 path := dep.SdkApiStubDexJar(ctx, kind)
1252 return path.RelativeToTop().String()
1253 }
1254
1255 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1256 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1257
1258 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1259 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1260 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1261
1262 // This should fall back to system as module is not available.
1263 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1264 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1265
1266 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1267 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1268 }),
1269 )
1270}
1271
Paul Duffin780c5f42020-05-12 15:52:55 +01001272func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001273 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001274 sdk {
1275 name: "mysdk",
1276 java_sdk_libs: ["myjavalib"],
1277 }
1278
1279 java_sdk_library {
1280 name: "myjavalib",
1281 srcs: ["Test.java"],
1282 sdk_version: "none",
1283 system_modules: "none",
1284 }
1285 `)
1286
Paul Duffin36474d32021-03-12 12:19:43 +00001287 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001288 checkUnversionedAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001289// This is auto-generated. DO NOT EDIT.
1290
1291java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001292 name: "myjavalib",
1293 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001294 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001295 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001296 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001297 public: {
1298 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001299 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001300 current_api: "sdk_library/public/myjavalib.txt",
1301 removed_api: "sdk_library/public/myjavalib-removed.txt",
1302 sdk_version: "none",
1303 },
1304}
Paul Duffine1381882021-04-16 17:05:10 +01001305`),
1306 checkVersionedAndroidBpContents(`
1307// This is auto-generated. DO NOT EDIT.
Paul Duffin780c5f42020-05-12 15:52:55 +01001308
1309java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001310 name: "mysdk_myjavalib@current",
1311 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001312 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001313 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001314 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001315 public: {
1316 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001317 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001318 current_api: "sdk_library/public/myjavalib.txt",
1319 removed_api: "sdk_library/public/myjavalib-removed.txt",
1320 sdk_version: "none",
1321 },
1322}
1323
1324sdk_snapshot {
1325 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001326 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001327 java_sdk_libs: ["mysdk_myjavalib@current"],
1328}
1329`),
1330 checkAllCopyRules(`
1331.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001332.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1333.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 +01001334`),
1335 checkMergeZips(
1336 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1337 ),
1338 )
1339}
1340
Paul Duffin87a05a32020-05-12 11:50:28 +01001341func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001342 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001343 sdk {
1344 name: "mysdk",
1345 java_sdk_libs: ["myjavalib"],
1346 }
1347
1348 java_sdk_library {
1349 name: "myjavalib",
1350 srcs: ["Test.java"],
1351 sdk_version: "module_current",
1352 public: {
1353 enabled: true,
1354 sdk_version: "module_current",
1355 },
1356 }
1357 `)
1358
Paul Duffin36474d32021-03-12 12:19:43 +00001359 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001360 checkUnversionedAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001361// This is auto-generated. DO NOT EDIT.
1362
1363java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001364 name: "myjavalib",
1365 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001366 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001367 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001368 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001369 public: {
1370 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001371 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001372 current_api: "sdk_library/public/myjavalib.txt",
1373 removed_api: "sdk_library/public/myjavalib-removed.txt",
1374 sdk_version: "module_current",
1375 },
1376}
Paul Duffine1381882021-04-16 17:05:10 +01001377`),
1378 checkVersionedAndroidBpContents(`
1379// This is auto-generated. DO NOT EDIT.
Paul Duffin87a05a32020-05-12 11:50:28 +01001380
1381java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001382 name: "mysdk_myjavalib@current",
1383 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001384 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001385 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001386 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001387 public: {
1388 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001389 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001390 current_api: "sdk_library/public/myjavalib.txt",
1391 removed_api: "sdk_library/public/myjavalib-removed.txt",
1392 sdk_version: "module_current",
1393 },
1394}
1395
1396sdk_snapshot {
1397 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001398 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001399 java_sdk_libs: ["mysdk_myjavalib@current"],
1400}
1401`),
1402 checkAllCopyRules(`
1403.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001404.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1405.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 +01001406`),
1407 checkMergeZips(
1408 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1409 ),
1410 )
1411}
1412
1413func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001414 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001415 sdk {
1416 name: "mysdk",
1417 java_sdk_libs: ["myjavalib"],
1418 }
1419
1420 java_sdk_library {
1421 name: "myjavalib",
1422 apex_available: ["//apex_available:anyapex"],
1423 srcs: ["Test.java"],
1424 sdk_version: "current",
1425 public: {
1426 enabled: true,
1427 },
1428 system: {
1429 enabled: true,
1430 },
1431 }
1432 `)
1433
Paul Duffin36474d32021-03-12 12:19:43 +00001434 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001435 checkUnversionedAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001436// This is auto-generated. DO NOT EDIT.
1437
1438java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001439 name: "myjavalib",
1440 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001441 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001442 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001443 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001444 public: {
1445 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001446 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001447 current_api: "sdk_library/public/myjavalib.txt",
1448 removed_api: "sdk_library/public/myjavalib-removed.txt",
1449 sdk_version: "current",
1450 },
1451 system: {
1452 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001453 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001454 current_api: "sdk_library/system/myjavalib.txt",
1455 removed_api: "sdk_library/system/myjavalib-removed.txt",
1456 sdk_version: "system_current",
1457 },
1458}
Paul Duffine1381882021-04-16 17:05:10 +01001459`),
1460 checkVersionedAndroidBpContents(`
1461// This is auto-generated. DO NOT EDIT.
Paul Duffin3375e352020-04-28 10:44:03 +01001462
1463java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001464 name: "mysdk_myjavalib@current",
1465 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001466 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001467 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001468 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001469 public: {
1470 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001471 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001472 current_api: "sdk_library/public/myjavalib.txt",
1473 removed_api: "sdk_library/public/myjavalib-removed.txt",
1474 sdk_version: "current",
1475 },
1476 system: {
1477 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001478 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001479 current_api: "sdk_library/system/myjavalib.txt",
1480 removed_api: "sdk_library/system/myjavalib-removed.txt",
1481 sdk_version: "system_current",
1482 },
1483}
1484
1485sdk_snapshot {
1486 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001487 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001488 java_sdk_libs: ["mysdk_myjavalib@current"],
1489}
1490`),
1491 checkAllCopyRules(`
1492.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001493.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1494.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 +01001495.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001496.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1497.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 +01001498`),
1499 checkMergeZips(
1500 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1501 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1502 ),
1503 )
1504}
Paul Duffin8f265b92020-04-28 14:13:56 +01001505
1506func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001507 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001508 sdk {
1509 name: "mysdk",
1510 java_sdk_libs: ["myjavalib"],
1511 }
1512
1513 java_sdk_library {
1514 name: "myjavalib",
1515 apex_available: ["//apex_available:anyapex"],
1516 srcs: ["Test.java"],
1517 sdk_version: "current",
1518 public: {
1519 enabled: true,
1520 },
1521 system: {
1522 enabled: true,
1523 },
1524 module_lib: {
1525 enabled: true,
1526 },
1527 }
1528 `)
1529
Paul Duffin36474d32021-03-12 12:19:43 +00001530 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001531 checkUnversionedAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001532// This is auto-generated. DO NOT EDIT.
1533
1534java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001535 name: "myjavalib",
1536 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001537 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001538 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001539 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001540 public: {
1541 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001542 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001543 current_api: "sdk_library/public/myjavalib.txt",
1544 removed_api: "sdk_library/public/myjavalib-removed.txt",
1545 sdk_version: "current",
1546 },
1547 system: {
1548 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001549 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001550 current_api: "sdk_library/system/myjavalib.txt",
1551 removed_api: "sdk_library/system/myjavalib-removed.txt",
1552 sdk_version: "system_current",
1553 },
1554 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001555 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001556 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001557 current_api: "sdk_library/module-lib/myjavalib.txt",
1558 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001559 sdk_version: "module_current",
1560 },
1561}
Paul Duffine1381882021-04-16 17:05:10 +01001562`),
1563 checkVersionedAndroidBpContents(`
1564// This is auto-generated. DO NOT EDIT.
Paul Duffin8f265b92020-04-28 14:13:56 +01001565
1566java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001567 name: "mysdk_myjavalib@current",
1568 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001569 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001570 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001571 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001572 public: {
1573 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001574 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001575 current_api: "sdk_library/public/myjavalib.txt",
1576 removed_api: "sdk_library/public/myjavalib-removed.txt",
1577 sdk_version: "current",
1578 },
1579 system: {
1580 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001581 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001582 current_api: "sdk_library/system/myjavalib.txt",
1583 removed_api: "sdk_library/system/myjavalib-removed.txt",
1584 sdk_version: "system_current",
1585 },
1586 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001587 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001588 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001589 current_api: "sdk_library/module-lib/myjavalib.txt",
1590 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001591 sdk_version: "module_current",
1592 },
1593}
1594
1595sdk_snapshot {
1596 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001597 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001598 java_sdk_libs: ["mysdk_myjavalib@current"],
1599}
1600`),
1601 checkAllCopyRules(`
1602.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001603.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1604.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 +01001605.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001606.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1607.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 +01001608.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 -07001609.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1610.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 +01001611`),
1612 checkMergeZips(
1613 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1614 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001615 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001616 ),
1617 )
1618}
Paul Duffinf7a64332020-05-13 16:54:55 +01001619
Paul Duffin0c5bae52020-06-02 13:00:08 +01001620func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001621 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001622 sdk {
1623 name: "mysdk",
1624 java_sdk_libs: ["myjavalib"],
1625 }
1626
1627 java_sdk_library {
1628 name: "myjavalib",
1629 apex_available: ["//apex_available:anyapex"],
1630 srcs: ["Test.java"],
1631 sdk_version: "current",
1632 public: {
1633 enabled: true,
1634 },
1635 system_server: {
1636 enabled: true,
1637 },
1638 }
1639 `)
1640
Paul Duffin36474d32021-03-12 12:19:43 +00001641 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001642 checkUnversionedAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001643// This is auto-generated. DO NOT EDIT.
1644
1645java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001646 name: "myjavalib",
1647 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001648 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001649 apex_available: ["//apex_available:anyapex"],
1650 shared_library: true,
1651 public: {
1652 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001653 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001654 current_api: "sdk_library/public/myjavalib.txt",
1655 removed_api: "sdk_library/public/myjavalib-removed.txt",
1656 sdk_version: "current",
1657 },
1658 system_server: {
1659 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001660 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001661 current_api: "sdk_library/system-server/myjavalib.txt",
1662 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1663 sdk_version: "system_server_current",
1664 },
1665}
Paul Duffine1381882021-04-16 17:05:10 +01001666`),
1667 checkVersionedAndroidBpContents(`
1668// This is auto-generated. DO NOT EDIT.
Paul Duffin0c5bae52020-06-02 13:00:08 +01001669
1670java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001671 name: "mysdk_myjavalib@current",
1672 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001673 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001674 apex_available: ["//apex_available:anyapex"],
1675 shared_library: true,
1676 public: {
1677 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001678 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001679 current_api: "sdk_library/public/myjavalib.txt",
1680 removed_api: "sdk_library/public/myjavalib-removed.txt",
1681 sdk_version: "current",
1682 },
1683 system_server: {
1684 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001685 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001686 current_api: "sdk_library/system-server/myjavalib.txt",
1687 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1688 sdk_version: "system_server_current",
1689 },
1690}
1691
1692sdk_snapshot {
1693 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001694 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001695 java_sdk_libs: ["mysdk_myjavalib@current"],
1696}
1697`),
1698 checkAllCopyRules(`
1699.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001700.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1701.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 +01001702.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 -07001703.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1704.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 +01001705`),
1706 checkMergeZips(
1707 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1708 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1709 ),
1710 )
1711}
1712
Paul Duffinf7a64332020-05-13 16:54:55 +01001713func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001714 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001715 sdk {
1716 name: "mysdk",
1717 java_sdk_libs: ["myjavalib"],
1718 }
1719
1720 java_sdk_library {
1721 name: "myjavalib",
1722 apex_available: ["//apex_available:anyapex"],
1723 srcs: ["Test.java"],
1724 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001725 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001726 public: {
1727 enabled: true,
1728 },
1729 }
1730 `)
1731
Paul Duffin36474d32021-03-12 12:19:43 +00001732 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001733 checkUnversionedAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001734// This is auto-generated. DO NOT EDIT.
1735
1736java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001737 name: "myjavalib",
1738 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001739 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001740 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001741 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001742 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001743 public: {
1744 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001745 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001746 current_api: "sdk_library/public/myjavalib.txt",
1747 removed_api: "sdk_library/public/myjavalib-removed.txt",
1748 sdk_version: "current",
1749 },
1750}
Paul Duffine1381882021-04-16 17:05:10 +01001751`),
1752 checkVersionedAndroidBpContents(`
1753// This is auto-generated. DO NOT EDIT.
Paul Duffinf7a64332020-05-13 16:54:55 +01001754
1755java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001756 name: "mysdk_myjavalib@current",
1757 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001758 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001759 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001760 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001761 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001762 public: {
1763 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001764 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001765 current_api: "sdk_library/public/myjavalib.txt",
1766 removed_api: "sdk_library/public/myjavalib-removed.txt",
1767 sdk_version: "current",
1768 },
1769}
1770
1771sdk_snapshot {
1772 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001773 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001774 java_sdk_libs: ["mysdk_myjavalib@current"],
1775}
1776`),
1777 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001778.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001779.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1780.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001781`),
1782 checkMergeZips(
1783 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1784 ),
1785 )
1786}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001787
1788func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001789 result := android.GroupFixturePreparers(
1790 prepareForSdkTestWithJavaSdkLibrary,
1791 android.FixtureAddFile("docs/known_doctags", nil),
1792 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001793 sdk {
1794 name: "mysdk",
1795 java_sdk_libs: ["myjavalib"],
1796 }
1797
1798 java_sdk_library {
1799 name: "myjavalib",
1800 srcs: ["Test.java"],
1801 sdk_version: "current",
1802 public: {
1803 enabled: true,
1804 },
1805 doctag_files: ["docs/known_doctags"],
1806 }
1807
1808 filegroup {
1809 name: "mygroup",
1810 srcs: [":myjavalib{.doctags}"],
1811 }
1812 `)
1813
Paul Duffin36474d32021-03-12 12:19:43 +00001814 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001815 checkUnversionedAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001816// This is auto-generated. DO NOT EDIT.
1817
1818java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001819 name: "myjavalib",
1820 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001821 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001822 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001823 shared_library: true,
1824 doctag_files: ["doctags/docs/known_doctags"],
1825 public: {
1826 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001827 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001828 current_api: "sdk_library/public/myjavalib.txt",
1829 removed_api: "sdk_library/public/myjavalib-removed.txt",
1830 sdk_version: "current",
1831 },
1832}
Paul Duffine1381882021-04-16 17:05:10 +01001833`),
1834 checkVersionedAndroidBpContents(`
1835// This is auto-generated. DO NOT EDIT.
Paul Duffina2ae7e02020-09-11 11:55:00 +01001836
1837java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001838 name: "mysdk_myjavalib@current",
1839 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001840 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001841 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001842 shared_library: true,
1843 doctag_files: ["doctags/docs/known_doctags"],
1844 public: {
1845 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001846 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001847 current_api: "sdk_library/public/myjavalib.txt",
1848 removed_api: "sdk_library/public/myjavalib-removed.txt",
1849 sdk_version: "current",
1850 },
1851}
1852
1853sdk_snapshot {
1854 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001855 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001856 java_sdk_libs: ["mysdk_myjavalib@current"],
1857}
1858`),
1859 checkAllCopyRules(`
1860.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001861.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1862.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 +01001863docs/known_doctags -> doctags/docs/known_doctags
1864`),
1865 )
1866}