blob: ad2bd7599082c4bab19b7bf605697fa268bfe77b [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_import {
726 name: "mysdk_myjavalib.stubs",
727 prefer: false,
728 visibility: ["//visibility:private"],
729 apex_available: ["//apex_available:platform"],
730 jars: ["java/myjavalib.stubs.jar"],
731}
732
733java_sdk_library_import {
734 name: "myjavalib",
735 prefer: false,
736 visibility: ["//visibility:public"],
737 apex_available: ["//apex_available:anyapex"],
738 shared_library: false,
739 public: {
740 jars: ["sdk_library/public/myjavalib-stubs.jar"],
741 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
742 current_api: "sdk_library/public/myjavalib.txt",
743 removed_api: "sdk_library/public/myjavalib-removed.txt",
744 sdk_version: "current",
745 },
746}
747
Paul Duffine1381882021-04-16 17:05:10 +0100748java_system_modules_import {
749 name: "my-system-modules",
750 prefer: false,
751 visibility: ["//visibility:public"],
752 libs: [
753 "mysdk_system-module",
754 "exported-system-module",
Paul Duffin33028712021-06-22 11:00:07 +0100755 "mysdk_myjavalib.stubs",
Paul Duffine1381882021-04-16 17:05:10 +0100756 ],
757}
758`),
759 checkVersionedAndroidBpContents(`
760// This is auto-generated. DO NOT EDIT.
761
762java_import {
763 name: "mysdk_exported-system-module@current",
764 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100765 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000766 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000767 jars: ["java/exported-system-module.jar"],
768}
769
770java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000771 name: "mysdk_system-module@current",
772 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000773 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000774 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000775 jars: ["java/system-module.jar"],
776}
777
Paul Duffin33028712021-06-22 11:00:07 +0100778java_import {
779 name: "mysdk_myjavalib.stubs@current",
780 sdk_member_name: "myjavalib.stubs",
781 visibility: ["//visibility:private"],
782 apex_available: ["//apex_available:platform"],
783 jars: ["java/myjavalib.stubs.jar"],
784}
785
786java_sdk_library_import {
787 name: "mysdk_myjavalib@current",
788 sdk_member_name: "myjavalib",
789 visibility: ["//visibility:public"],
790 apex_available: ["//apex_available:anyapex"],
791 shared_library: false,
792 public: {
793 jars: ["sdk_library/public/myjavalib-stubs.jar"],
794 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
795 current_api: "sdk_library/public/myjavalib.txt",
796 removed_api: "sdk_library/public/myjavalib-removed.txt",
797 sdk_version: "current",
798 },
799}
800
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000801java_system_modules_import {
802 name: "mysdk_my-system-modules@current",
803 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100804 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000805 libs: [
806 "mysdk_system-module@current",
807 "mysdk_exported-system-module@current",
Paul Duffin33028712021-06-22 11:00:07 +0100808 "mysdk_myjavalib.stubs@current",
Paul Duffin72910952020-01-20 18:16:30 +0000809 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000810}
811
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000812sdk_snapshot {
813 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100814 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000815 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin33028712021-06-22 11:00:07 +0100816 java_sdk_libs: ["mysdk_myjavalib@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000817 java_system_modules: ["mysdk_my-system-modules@current"],
818}
819`),
Paul Duffin72910952020-01-20 18:16:30 +0000820 checkAllCopyRules(`
821.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
822.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
Paul Duffin33028712021-06-22 11:00:07 +0100823.intermediates/myjavalib.stubs/android_common/turbine-combined/myjavalib.stubs.jar -> java/myjavalib.stubs.jar
824.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
825.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
826.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 +0000827`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000828 )
829}
830
831func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000832 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000833 sdk {
834 name: "mysdk",
835 device_supported: false,
836 host_supported: true,
837 java_system_modules: ["my-system-modules"],
838 }
839
840 java_system_modules {
841 name: "my-system-modules",
842 device_supported: false,
843 host_supported: true,
844 libs: ["system-module"],
845 }
846
847 java_library {
848 name: "system-module",
849 device_supported: false,
850 host_supported: true,
851 srcs: ["Test.java"],
852 sdk_version: "none",
853 system_modules: "none",
854 }
855 `)
856
Paul Duffin36474d32021-03-12 12:19:43 +0000857 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +0100858 checkUnversionedAndroidBpContents(`
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000859// This is auto-generated. DO NOT EDIT.
860
861java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100862 name: "mysdk_system-module",
863 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000864 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000865 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000866 device_supported: false,
867 host_supported: true,
868 jars: ["java/system-module.jar"],
869}
870
Paul Duffine1381882021-04-16 17:05:10 +0100871java_system_modules_import {
872 name: "my-system-modules",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000873 prefer: false,
Paul Duffine1381882021-04-16 17:05:10 +0100874 visibility: ["//visibility:public"],
875 device_supported: false,
876 host_supported: true,
877 libs: ["mysdk_system-module"],
878}
879`),
880 checkVersionedAndroidBpContents(`
881// This is auto-generated. DO NOT EDIT.
882
883java_import {
884 name: "mysdk_system-module@current",
885 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000886 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000887 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000888 device_supported: false,
889 host_supported: true,
890 jars: ["java/system-module.jar"],
891}
892
893java_system_modules_import {
894 name: "mysdk_my-system-modules@current",
895 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100896 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000897 device_supported: false,
898 host_supported: true,
899 libs: ["mysdk_system-module@current"],
900}
901
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000902sdk_snapshot {
903 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100904 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000905 device_supported: false,
906 host_supported: true,
907 java_system_modules: ["mysdk_my-system-modules@current"],
908}
909`),
910 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
911 )
912}
Paul Duffin865171e2020-03-02 18:38:15 +0000913
914func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000915 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000916 module_exports {
917 name: "myexports",
918 host_supported: true,
919 java_libs: ["myjavalib"],
920 target: {
921 android: {
922 java_header_libs: ["androidjavalib"],
923 },
924 host: {
925 java_header_libs: ["hostjavalib"],
926 },
927 },
928 }
929
930 java_library {
931 name: "myjavalib",
932 host_supported: true,
933 srcs: ["Test.java"],
934 system_modules: "none",
935 sdk_version: "none",
936 }
937
938 java_library {
939 name: "androidjavalib",
940 srcs: ["Test.java"],
941 system_modules: "none",
942 sdk_version: "none",
943 }
944
945 java_library_host {
946 name: "hostjavalib",
947 srcs: ["Test.java"],
948 }
949 `)
950
Paul Duffin36474d32021-03-12 12:19:43 +0000951 CheckSnapshot(t, result, "myexports", "",
Paul Duffine1381882021-04-16 17:05:10 +0100952 checkUnversionedAndroidBpContents(`
Paul Duffin865171e2020-03-02 18:38:15 +0000953// This is auto-generated. DO NOT EDIT.
954
955java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100956 name: "hostjavalib",
957 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 Duffin865171e2020-03-02 18:38:15 +0000960 device_supported: false,
961 host_supported: true,
962 jars: ["java/hostjavalib.jar"],
963}
964
965java_import {
Paul Duffine1381882021-04-16 17:05:10 +0100966 name: "androidjavalib",
Paul Duffin865171e2020-03-02 18:38:15 +0000967 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100968 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000969 apex_available: ["//apex_available:platform"],
Paul Duffine1381882021-04-16 17:05:10 +0100970 jars: ["java/androidjavalib.jar"],
971}
972
973java_import {
974 name: "myjavalib",
975 prefer: false,
976 visibility: ["//visibility:public"],
977 apex_available: ["//apex_available:platform"],
978 host_supported: true,
979 target: {
980 android: {
981 jars: ["java/android/myjavalib.jar"],
982 },
983 linux_glibc: {
984 jars: ["java/linux_glibc/myjavalib.jar"],
985 },
986 },
987}
988`),
989 checkVersionedAndroidBpContents(`
990// This is auto-generated. DO NOT EDIT.
991
992java_import {
993 name: "myexports_hostjavalib@current",
994 sdk_member_name: "hostjavalib",
995 visibility: ["//visibility:public"],
996 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000997 device_supported: false,
998 host_supported: true,
999 jars: ["java/hostjavalib.jar"],
1000}
1001
1002java_import {
1003 name: "myexports_androidjavalib@current",
1004 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001005 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001006 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001007 jars: ["java/androidjavalib.jar"],
1008}
1009
1010java_import {
Paul Duffin865171e2020-03-02 18:38:15 +00001011 name: "myexports_myjavalib@current",
1012 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001013 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001014 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001015 host_supported: true,
1016 target: {
1017 android: {
1018 jars: ["java/android/myjavalib.jar"],
1019 },
1020 linux_glibc: {
1021 jars: ["java/linux_glibc/myjavalib.jar"],
1022 },
1023 },
1024}
1025
Paul Duffin865171e2020-03-02 18:38:15 +00001026module_exports_snapshot {
1027 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001028 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001029 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001030 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001031 target: {
1032 android: {
1033 java_header_libs: ["myexports_androidjavalib@current"],
1034 },
1035 linux_glibc: {
1036 java_header_libs: ["myexports_hostjavalib@current"],
1037 },
1038 },
Paul Duffin865171e2020-03-02 18:38:15 +00001039}
1040`),
1041 checkAllCopyRules(`
1042.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1043.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1044.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1045.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1046`),
1047 )
1048}
Paul Duffindd46f712020-02-10 13:37:10 +00001049
1050func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001051 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001052 sdk {
1053 name: "mysdk",
1054 java_sdk_libs: ["myjavalib"],
1055 }
1056
1057 java_sdk_library {
1058 name: "myjavalib",
1059 apex_available: ["//apex_available:anyapex"],
1060 srcs: ["Test.java"],
1061 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001062 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001063 stubs_library_visibility: ["//other"],
1064 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001065 }
1066 `)
1067
Paul Duffin36474d32021-03-12 12:19:43 +00001068 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001069 checkUnversionedAndroidBpContents(`
Paul Duffindd46f712020-02-10 13:37:10 +00001070// This is auto-generated. DO NOT EDIT.
1071
1072java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001073 name: "myjavalib",
1074 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001075 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001076 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001077 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001078 public: {
1079 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001080 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001081 current_api: "sdk_library/public/myjavalib.txt",
1082 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001083 sdk_version: "current",
1084 },
1085 system: {
1086 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001087 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001088 current_api: "sdk_library/system/myjavalib.txt",
1089 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001090 sdk_version: "system_current",
1091 },
1092 test: {
1093 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001094 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001095 current_api: "sdk_library/test/myjavalib.txt",
1096 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001097 sdk_version: "test_current",
1098 },
1099}
Paul Duffine1381882021-04-16 17:05:10 +01001100`),
1101 checkVersionedAndroidBpContents(`
1102// This is auto-generated. DO NOT EDIT.
Paul Duffindd46f712020-02-10 13:37:10 +00001103
1104java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001105 name: "mysdk_myjavalib@current",
1106 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001107 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001108 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001109 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001110 public: {
1111 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001112 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001113 current_api: "sdk_library/public/myjavalib.txt",
1114 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001115 sdk_version: "current",
1116 },
1117 system: {
1118 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001119 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001120 current_api: "sdk_library/system/myjavalib.txt",
1121 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001122 sdk_version: "system_current",
1123 },
1124 test: {
1125 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001126 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001127 current_api: "sdk_library/test/myjavalib.txt",
1128 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001129 sdk_version: "test_current",
1130 },
1131}
1132
1133sdk_snapshot {
1134 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001135 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001136 java_sdk_libs: ["mysdk_myjavalib@current"],
1137}
1138`),
1139 checkAllCopyRules(`
1140.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001141.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1142.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 +00001143.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001144.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1145.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 +00001146.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001147.intermediates/myjavalib.stubs.source.test/android_common/metalava/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
1148.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 +00001149`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001150 checkMergeZips(
1151 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1152 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin33028712021-06-22 11:00:07 +01001153 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
1154 ),
1155 snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) {
1156 // Show that the existing behavior is incorrect as the suffix for the child modules is added
1157 // to the version not before it.
1158 result.Module("mysdk_myjavalib@current.stubs", "android_common")
1159 result.Module("mysdk_myjavalib@current.stubs.source", "android_common")
1160 }),
Paul Duffindd46f712020-02-10 13:37:10 +00001161 )
1162}
Paul Duffin3375e352020-04-28 10:44:03 +01001163
Paul Duffin22628d52021-05-12 23:13:22 +01001164func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
1165 result := android.GroupFixturePreparers(
1166 prepareForSdkTestWithJavaSdkLibrary,
1167 android.FixtureMergeEnv(map[string]string{
1168 "SOONG_SDK_SNAPSHOT_USE_SRCJAR": "true",
1169 }),
1170 ).RunTestWithBp(t, `
1171 sdk {
1172 name: "mysdk",
1173 java_sdk_libs: ["myjavalib"],
1174 }
1175
1176 java_sdk_library {
1177 name: "myjavalib",
1178 srcs: ["Test.java"],
1179 sdk_version: "current",
1180 shared_library: false,
1181 public: {
1182 enabled: true,
1183 },
1184 }
1185 `)
1186
1187 CheckSnapshot(t, result, "mysdk", "",
1188 checkUnversionedAndroidBpContents(`
1189// This is auto-generated. DO NOT EDIT.
1190
1191java_sdk_library_import {
1192 name: "myjavalib",
1193 prefer: false,
1194 visibility: ["//visibility:public"],
1195 apex_available: ["//apex_available:platform"],
1196 shared_library: false,
1197 public: {
1198 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1199 stub_srcs: ["sdk_library/public/myjavalib.srcjar"],
1200 current_api: "sdk_library/public/myjavalib.txt",
1201 removed_api: "sdk_library/public/myjavalib-removed.txt",
1202 sdk_version: "current",
1203 },
1204}
1205 `),
1206 checkAllCopyRules(`
1207.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1208.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source-stubs.srcjar -> sdk_library/public/myjavalib.srcjar
1209.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1210.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1211 `),
1212 )
1213}
1214
Paul Duffin1267d872021-04-16 17:21:36 +01001215func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
1216 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
1217 sdk {
1218 name: "mysdk",
1219 java_sdk_libs: ["myjavalib"],
1220 }
1221
1222 java_sdk_library {
1223 name: "myjavalib",
1224 srcs: ["Test.java"],
1225 sdk_version: "current",
1226 shared_library: false,
1227 compile_dex: true,
1228 public: {
1229 enabled: true,
1230 },
1231 system: {
1232 enabled: true,
1233 },
1234 }
1235 `)
1236
1237 CheckSnapshot(t, result, "mysdk", "",
1238 checkUnversionedAndroidBpContents(`
1239// This is auto-generated. DO NOT EDIT.
1240
1241java_sdk_library_import {
1242 name: "myjavalib",
1243 prefer: false,
1244 visibility: ["//visibility:public"],
1245 apex_available: ["//apex_available:platform"],
1246 shared_library: false,
1247 compile_dex: true,
1248 public: {
1249 jars: ["sdk_library/public/myjavalib-stubs.jar"],
1250 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
1251 current_api: "sdk_library/public/myjavalib.txt",
1252 removed_api: "sdk_library/public/myjavalib-removed.txt",
1253 sdk_version: "current",
1254 },
1255 system: {
1256 jars: ["sdk_library/system/myjavalib-stubs.jar"],
1257 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
1258 current_api: "sdk_library/system/myjavalib.txt",
1259 removed_api: "sdk_library/system/myjavalib-removed.txt",
1260 sdk_version: "system_current",
1261 },
1262}
1263`),
1264 snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) {
1265 ctx := android.ModuleInstallPathContextForTesting(result.Config)
1266 dexJarBuildPath := func(name string, kind android.SdkKind) string {
1267 dep := result.Module(name, "android_common").(java.SdkLibraryDependency)
1268 path := dep.SdkApiStubDexJar(ctx, kind)
1269 return path.RelativeToTop().String()
1270 }
1271
1272 dexJarPath := dexJarBuildPath("myjavalib", android.SdkPublic)
1273 android.AssertStringEquals(t, "source dex public stubs jar build path", "out/soong/.intermediates/myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1274
1275 dexJarPath = dexJarBuildPath("myjavalib", android.SdkSystem)
1276 systemDexJar := "out/soong/.intermediates/myjavalib.stubs.system/android_common/dex/myjavalib.stubs.system.jar"
1277 android.AssertStringEquals(t, "source dex system stubs jar build path", systemDexJar, dexJarPath)
1278
1279 // This should fall back to system as module is not available.
1280 dexJarPath = dexJarBuildPath("myjavalib", android.SdkModule)
1281 android.AssertStringEquals(t, "source dex module stubs jar build path", systemDexJar, dexJarPath)
1282
1283 dexJarPath = dexJarBuildPath(android.PrebuiltNameFromSource("myjavalib"), android.SdkPublic)
1284 android.AssertStringEquals(t, "prebuilt dex public stubs jar build path", "out/soong/.intermediates/snapshot/prebuilt_myjavalib.stubs/android_common/dex/myjavalib.stubs.jar", dexJarPath)
1285 }),
1286 )
1287}
1288
Paul Duffin780c5f42020-05-12 15:52:55 +01001289func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001290 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001291 sdk {
1292 name: "mysdk",
1293 java_sdk_libs: ["myjavalib"],
1294 }
1295
1296 java_sdk_library {
1297 name: "myjavalib",
1298 srcs: ["Test.java"],
1299 sdk_version: "none",
1300 system_modules: "none",
1301 }
1302 `)
1303
Paul Duffin36474d32021-03-12 12:19:43 +00001304 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001305 checkUnversionedAndroidBpContents(`
Paul Duffin780c5f42020-05-12 15:52:55 +01001306// This is auto-generated. DO NOT EDIT.
1307
1308java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001309 name: "myjavalib",
1310 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001311 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001312 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001313 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001314 public: {
1315 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001316 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001317 current_api: "sdk_library/public/myjavalib.txt",
1318 removed_api: "sdk_library/public/myjavalib-removed.txt",
1319 sdk_version: "none",
1320 },
1321}
Paul Duffine1381882021-04-16 17:05:10 +01001322`),
1323 checkVersionedAndroidBpContents(`
1324// This is auto-generated. DO NOT EDIT.
Paul Duffin780c5f42020-05-12 15:52:55 +01001325
1326java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001327 name: "mysdk_myjavalib@current",
1328 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001329 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001330 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001331 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001332 public: {
1333 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001334 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001335 current_api: "sdk_library/public/myjavalib.txt",
1336 removed_api: "sdk_library/public/myjavalib-removed.txt",
1337 sdk_version: "none",
1338 },
1339}
1340
1341sdk_snapshot {
1342 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001343 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001344 java_sdk_libs: ["mysdk_myjavalib@current"],
1345}
1346`),
1347 checkAllCopyRules(`
1348.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001349.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1350.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 +01001351`),
1352 checkMergeZips(
1353 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1354 ),
1355 )
1356}
1357
Paul Duffin87a05a32020-05-12 11:50:28 +01001358func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001359 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001360 sdk {
1361 name: "mysdk",
1362 java_sdk_libs: ["myjavalib"],
1363 }
1364
1365 java_sdk_library {
1366 name: "myjavalib",
1367 srcs: ["Test.java"],
1368 sdk_version: "module_current",
1369 public: {
1370 enabled: true,
1371 sdk_version: "module_current",
1372 },
1373 }
1374 `)
1375
Paul Duffin36474d32021-03-12 12:19:43 +00001376 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001377 checkUnversionedAndroidBpContents(`
Paul Duffin87a05a32020-05-12 11:50:28 +01001378// This is auto-generated. DO NOT EDIT.
1379
1380java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001381 name: "myjavalib",
1382 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001383 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001384 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001385 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001386 public: {
1387 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001388 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001389 current_api: "sdk_library/public/myjavalib.txt",
1390 removed_api: "sdk_library/public/myjavalib-removed.txt",
1391 sdk_version: "module_current",
1392 },
1393}
Paul Duffine1381882021-04-16 17:05:10 +01001394`),
1395 checkVersionedAndroidBpContents(`
1396// This is auto-generated. DO NOT EDIT.
Paul Duffin87a05a32020-05-12 11:50:28 +01001397
1398java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001399 name: "mysdk_myjavalib@current",
1400 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001401 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001402 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001403 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001404 public: {
1405 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001406 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001407 current_api: "sdk_library/public/myjavalib.txt",
1408 removed_api: "sdk_library/public/myjavalib-removed.txt",
1409 sdk_version: "module_current",
1410 },
1411}
1412
1413sdk_snapshot {
1414 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001415 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001416 java_sdk_libs: ["mysdk_myjavalib@current"],
1417}
1418`),
1419 checkAllCopyRules(`
1420.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001421.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1422.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 +01001423`),
1424 checkMergeZips(
1425 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1426 ),
1427 )
1428}
1429
1430func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001431 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001432 sdk {
1433 name: "mysdk",
1434 java_sdk_libs: ["myjavalib"],
1435 }
1436
1437 java_sdk_library {
1438 name: "myjavalib",
1439 apex_available: ["//apex_available:anyapex"],
1440 srcs: ["Test.java"],
1441 sdk_version: "current",
1442 public: {
1443 enabled: true,
1444 },
1445 system: {
1446 enabled: true,
1447 },
1448 }
1449 `)
1450
Paul Duffin36474d32021-03-12 12:19:43 +00001451 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001452 checkUnversionedAndroidBpContents(`
Paul Duffin3375e352020-04-28 10:44:03 +01001453// This is auto-generated. DO NOT EDIT.
1454
1455java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001456 name: "myjavalib",
1457 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001458 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001459 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001460 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001461 public: {
1462 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001463 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001464 current_api: "sdk_library/public/myjavalib.txt",
1465 removed_api: "sdk_library/public/myjavalib-removed.txt",
1466 sdk_version: "current",
1467 },
1468 system: {
1469 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001470 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001471 current_api: "sdk_library/system/myjavalib.txt",
1472 removed_api: "sdk_library/system/myjavalib-removed.txt",
1473 sdk_version: "system_current",
1474 },
1475}
Paul Duffine1381882021-04-16 17:05:10 +01001476`),
1477 checkVersionedAndroidBpContents(`
1478// This is auto-generated. DO NOT EDIT.
Paul Duffin3375e352020-04-28 10:44:03 +01001479
1480java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001481 name: "mysdk_myjavalib@current",
1482 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001483 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001484 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001485 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001486 public: {
1487 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001488 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001489 current_api: "sdk_library/public/myjavalib.txt",
1490 removed_api: "sdk_library/public/myjavalib-removed.txt",
1491 sdk_version: "current",
1492 },
1493 system: {
1494 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001495 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001496 current_api: "sdk_library/system/myjavalib.txt",
1497 removed_api: "sdk_library/system/myjavalib-removed.txt",
1498 sdk_version: "system_current",
1499 },
1500}
1501
1502sdk_snapshot {
1503 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001504 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001505 java_sdk_libs: ["mysdk_myjavalib@current"],
1506}
1507`),
1508 checkAllCopyRules(`
1509.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001510.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1511.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 +01001512.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001513.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1514.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 +01001515`),
1516 checkMergeZips(
1517 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1518 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1519 ),
1520 )
1521}
Paul Duffin8f265b92020-04-28 14:13:56 +01001522
1523func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001524 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001525 sdk {
1526 name: "mysdk",
1527 java_sdk_libs: ["myjavalib"],
1528 }
1529
1530 java_sdk_library {
1531 name: "myjavalib",
1532 apex_available: ["//apex_available:anyapex"],
1533 srcs: ["Test.java"],
1534 sdk_version: "current",
1535 public: {
1536 enabled: true,
1537 },
1538 system: {
1539 enabled: true,
1540 },
1541 module_lib: {
1542 enabled: true,
1543 },
1544 }
1545 `)
1546
Paul Duffin36474d32021-03-12 12:19:43 +00001547 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001548 checkUnversionedAndroidBpContents(`
Paul Duffin8f265b92020-04-28 14:13:56 +01001549// This is auto-generated. DO NOT EDIT.
1550
1551java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001552 name: "myjavalib",
1553 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001554 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001555 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001556 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001557 public: {
1558 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001559 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001560 current_api: "sdk_library/public/myjavalib.txt",
1561 removed_api: "sdk_library/public/myjavalib-removed.txt",
1562 sdk_version: "current",
1563 },
1564 system: {
1565 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001566 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001567 current_api: "sdk_library/system/myjavalib.txt",
1568 removed_api: "sdk_library/system/myjavalib-removed.txt",
1569 sdk_version: "system_current",
1570 },
1571 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001572 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001573 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001574 current_api: "sdk_library/module-lib/myjavalib.txt",
1575 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001576 sdk_version: "module_current",
1577 },
1578}
Paul Duffine1381882021-04-16 17:05:10 +01001579`),
1580 checkVersionedAndroidBpContents(`
1581// This is auto-generated. DO NOT EDIT.
Paul Duffin8f265b92020-04-28 14:13:56 +01001582
1583java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001584 name: "mysdk_myjavalib@current",
1585 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001586 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001587 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001588 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001589 public: {
1590 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001591 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001592 current_api: "sdk_library/public/myjavalib.txt",
1593 removed_api: "sdk_library/public/myjavalib-removed.txt",
1594 sdk_version: "current",
1595 },
1596 system: {
1597 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001598 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001599 current_api: "sdk_library/system/myjavalib.txt",
1600 removed_api: "sdk_library/system/myjavalib-removed.txt",
1601 sdk_version: "system_current",
1602 },
1603 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001604 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001605 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001606 current_api: "sdk_library/module-lib/myjavalib.txt",
1607 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001608 sdk_version: "module_current",
1609 },
1610}
1611
1612sdk_snapshot {
1613 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001614 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001615 java_sdk_libs: ["mysdk_myjavalib@current"],
1616}
1617`),
1618 checkAllCopyRules(`
1619.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001620.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1621.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 +01001622.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001623.intermediates/myjavalib.stubs.source.system/android_common/metalava/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
1624.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 +01001625.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 -07001626.intermediates/myjavalib.stubs.source.module_lib/android_common/metalava/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1627.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 +01001628`),
1629 checkMergeZips(
1630 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1631 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001632 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001633 ),
1634 )
1635}
Paul Duffinf7a64332020-05-13 16:54:55 +01001636
Paul Duffin0c5bae52020-06-02 13:00:08 +01001637func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001638 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001639 sdk {
1640 name: "mysdk",
1641 java_sdk_libs: ["myjavalib"],
1642 }
1643
1644 java_sdk_library {
1645 name: "myjavalib",
1646 apex_available: ["//apex_available:anyapex"],
1647 srcs: ["Test.java"],
1648 sdk_version: "current",
1649 public: {
1650 enabled: true,
1651 },
1652 system_server: {
1653 enabled: true,
1654 },
1655 }
1656 `)
1657
Paul Duffin36474d32021-03-12 12:19:43 +00001658 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001659 checkUnversionedAndroidBpContents(`
Paul Duffin0c5bae52020-06-02 13:00:08 +01001660// This is auto-generated. DO NOT EDIT.
1661
1662java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001663 name: "myjavalib",
1664 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001665 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001666 apex_available: ["//apex_available:anyapex"],
1667 shared_library: true,
1668 public: {
1669 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001670 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001671 current_api: "sdk_library/public/myjavalib.txt",
1672 removed_api: "sdk_library/public/myjavalib-removed.txt",
1673 sdk_version: "current",
1674 },
1675 system_server: {
1676 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001677 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001678 current_api: "sdk_library/system-server/myjavalib.txt",
1679 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1680 sdk_version: "system_server_current",
1681 },
1682}
Paul Duffine1381882021-04-16 17:05:10 +01001683`),
1684 checkVersionedAndroidBpContents(`
1685// This is auto-generated. DO NOT EDIT.
Paul Duffin0c5bae52020-06-02 13:00:08 +01001686
1687java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001688 name: "mysdk_myjavalib@current",
1689 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001690 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001691 apex_available: ["//apex_available:anyapex"],
1692 shared_library: true,
1693 public: {
1694 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001695 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001696 current_api: "sdk_library/public/myjavalib.txt",
1697 removed_api: "sdk_library/public/myjavalib-removed.txt",
1698 sdk_version: "current",
1699 },
1700 system_server: {
1701 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001702 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001703 current_api: "sdk_library/system-server/myjavalib.txt",
1704 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1705 sdk_version: "system_server_current",
1706 },
1707}
1708
1709sdk_snapshot {
1710 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001711 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001712 java_sdk_libs: ["mysdk_myjavalib@current"],
1713}
1714`),
1715 checkAllCopyRules(`
1716.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001717.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1718.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 +01001719.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 -07001720.intermediates/myjavalib.stubs.source.system_server/android_common/metalava/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1721.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 +01001722`),
1723 checkMergeZips(
1724 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1725 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1726 ),
1727 )
1728}
1729
Paul Duffinf7a64332020-05-13 16:54:55 +01001730func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001731 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001732 sdk {
1733 name: "mysdk",
1734 java_sdk_libs: ["myjavalib"],
1735 }
1736
1737 java_sdk_library {
1738 name: "myjavalib",
1739 apex_available: ["//apex_available:anyapex"],
1740 srcs: ["Test.java"],
1741 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001742 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001743 public: {
1744 enabled: true,
1745 },
1746 }
1747 `)
1748
Paul Duffin36474d32021-03-12 12:19:43 +00001749 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001750 checkUnversionedAndroidBpContents(`
Paul Duffinf7a64332020-05-13 16:54:55 +01001751// This is auto-generated. DO NOT EDIT.
1752
1753java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001754 name: "myjavalib",
1755 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001756 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001757 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001758 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001759 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001760 public: {
1761 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001762 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001763 current_api: "sdk_library/public/myjavalib.txt",
1764 removed_api: "sdk_library/public/myjavalib-removed.txt",
1765 sdk_version: "current",
1766 },
1767}
Paul Duffine1381882021-04-16 17:05:10 +01001768`),
1769 checkVersionedAndroidBpContents(`
1770// This is auto-generated. DO NOT EDIT.
Paul Duffinf7a64332020-05-13 16:54:55 +01001771
1772java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001773 name: "mysdk_myjavalib@current",
1774 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001775 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001776 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001777 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001778 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001779 public: {
1780 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001781 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001782 current_api: "sdk_library/public/myjavalib.txt",
1783 removed_api: "sdk_library/public/myjavalib-removed.txt",
1784 sdk_version: "current",
1785 },
1786}
1787
1788sdk_snapshot {
1789 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001790 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001791 java_sdk_libs: ["mysdk_myjavalib@current"],
1792}
1793`),
1794 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001795.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001796.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1797.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 +01001798`),
1799 checkMergeZips(
1800 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1801 ),
1802 )
1803}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001804
1805func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffindb462dd2021-03-21 22:01:55 +00001806 result := android.GroupFixturePreparers(
1807 prepareForSdkTestWithJavaSdkLibrary,
1808 android.FixtureAddFile("docs/known_doctags", nil),
1809 ).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001810 sdk {
1811 name: "mysdk",
1812 java_sdk_libs: ["myjavalib"],
1813 }
1814
1815 java_sdk_library {
1816 name: "myjavalib",
1817 srcs: ["Test.java"],
1818 sdk_version: "current",
1819 public: {
1820 enabled: true,
1821 },
1822 doctag_files: ["docs/known_doctags"],
1823 }
1824
1825 filegroup {
1826 name: "mygroup",
1827 srcs: [":myjavalib{.doctags}"],
1828 }
1829 `)
1830
Paul Duffin36474d32021-03-12 12:19:43 +00001831 CheckSnapshot(t, result, "mysdk", "",
Paul Duffine1381882021-04-16 17:05:10 +01001832 checkUnversionedAndroidBpContents(`
Paul Duffina2ae7e02020-09-11 11:55:00 +01001833// This is auto-generated. DO NOT EDIT.
1834
1835java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001836 name: "myjavalib",
1837 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001838 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001839 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001840 shared_library: true,
1841 doctag_files: ["doctags/docs/known_doctags"],
1842 public: {
1843 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001844 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001845 current_api: "sdk_library/public/myjavalib.txt",
1846 removed_api: "sdk_library/public/myjavalib-removed.txt",
1847 sdk_version: "current",
1848 },
1849}
Paul Duffine1381882021-04-16 17:05:10 +01001850`),
1851 checkVersionedAndroidBpContents(`
1852// This is auto-generated. DO NOT EDIT.
Paul Duffina2ae7e02020-09-11 11:55:00 +01001853
1854java_sdk_library_import {
Paul Duffine1381882021-04-16 17:05:10 +01001855 name: "mysdk_myjavalib@current",
1856 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001857 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001858 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001859 shared_library: true,
1860 doctag_files: ["doctags/docs/known_doctags"],
1861 public: {
1862 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001863 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001864 current_api: "sdk_library/public/myjavalib.txt",
1865 removed_api: "sdk_library/public/myjavalib-removed.txt",
1866 sdk_version: "current",
1867 },
1868}
1869
1870sdk_snapshot {
1871 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001872 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001873 java_sdk_libs: ["mysdk_myjavalib@current"],
1874}
1875`),
1876 checkAllCopyRules(`
1877.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Colin Crosscb77f752021-03-24 12:04:44 -07001878.intermediates/myjavalib.stubs.source/android_common/metalava/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1879.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 +01001880docs/known_doctags -> doctags/docs/known_doctags
1881`),
1882 )
1883}