blob: 190cf78a132846f642210ed82757b044173d6c35 [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,
27)
28
Paul Duffin9ec86b12021-03-15 11:17:52 +000029var prepareForSdkTestWithJavaSdkLibrary = android.GroupFixturePreparers(
30 prepareForSdkTestWithJava,
31 java.PrepareForTestWithJavaDefaultModules,
32 java.PrepareForTestWithJavaSdkLibraryFiles,
33 java.FixtureWithLastReleaseApis("myjavalib"),
34)
35
Paul Duffin4a2a29c2021-03-09 22:27:13 +000036func testSdkWithJava(t *testing.T, bp string) *android.TestResult {
Paul Duffind835daa2019-11-30 17:49:09 +000037 t.Helper()
38
39 fs := map[string][]byte{
40 "Test.java": nil,
Paul Duffin4e772842020-06-24 12:10:42 +010041 "resource.test": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000042 "aidl/foo/bar/Test.aidl": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000043
Paul Duffincee7e662020-07-09 17:32:57 +010044 // For java_import
45 "prebuilt.jar": nil,
46
Paul Duffindd46f712020-02-10 13:37:10 +000047 // For java_sdk_library
48 "api/current.txt": nil,
49 "api/removed.txt": nil,
50 "api/system-current.txt": nil,
51 "api/system-removed.txt": nil,
52 "api/test-current.txt": nil,
53 "api/test-removed.txt": nil,
Paul Duffin8f265b92020-04-28 14:13:56 +010054 "api/module-lib-current.txt": nil,
55 "api/module-lib-removed.txt": nil,
Paul Duffin0c5bae52020-06-02 13:00:08 +010056 "api/system-server-current.txt": nil,
57 "api/system-server-removed.txt": nil,
Paul Duffindd46f712020-02-10 13:37:10 +000058 "build/soong/scripts/gen-java-current-api-files.sh": nil,
Paul Duffina2ae7e02020-09-11 11:55:00 +010059 "docs/known_doctags": nil,
Anton Hanssondff2c782020-12-21 17:10:01 +000060 "100/public/api/myjavalib.txt": nil,
61 "100/public/api/myjavalib-removed.txt": nil,
62 "100/system/api/myjavalib.txt": nil,
63 "100/system/api/myjavalib-removed.txt": nil,
64 "100/module-lib/api/myjavalib.txt": nil,
65 "100/module-lib/api/myjavalib-removed.txt": nil,
66 "100/system-server/api/myjavalib.txt": nil,
67 "100/system-server/api/myjavalib-removed.txt": nil,
Paul Duffind835daa2019-11-30 17:49:09 +000068 }
Paul Duffindd46f712020-02-10 13:37:10 +000069
70 // for java_sdk_library tests
71 bp = `
72java_system_modules_import {
73 name: "core-current-stubs-system-modules",
74}
75java_system_modules_import {
Pete Gillin84c38072020-07-09 18:03:41 +010076 name: "stable-core-platform-api-stubs-system-modules",
Paul Duffindd46f712020-02-10 13:37:10 +000077}
78java_import {
Pete Gillin84c38072020-07-09 18:03:41 +010079 name: "stable.core.platform.api.stubs",
Paul Duffindd46f712020-02-10 13:37:10 +000080}
Paul Duffin260bd312020-04-28 14:15:17 +010081java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000082 name: "android_stubs_current",
83}
Paul Duffin260bd312020-04-28 14:15:17 +010084java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000085 name: "android_system_stubs_current",
86}
Paul Duffin260bd312020-04-28 14:15:17 +010087java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000088 name: "android_test_stubs_current",
89}
90java_import {
Paul Duffin8f265b92020-04-28 14:13:56 +010091 name: "android_module_lib_stubs_current",
92}
93java_import {
Paul Duffin0c5bae52020-06-02 13:00:08 +010094 name: "android_system_server_stubs_current",
95}
96java_import {
Paul Duffindd46f712020-02-10 13:37:10 +000097 name: "core-lambda-stubs",
98 sdk_version: "none",
99}
100java_import {
101 name: "ext",
102 sdk_version: "none",
103}
104java_import {
105 name: "framework",
106 sdk_version: "none",
107}
Anton Hanssondff2c782020-12-21 17:10:01 +0000108prebuilt_apis {
109 name: "sdk",
110 api_dirs: ["100"],
111}
Paul Duffindd46f712020-02-10 13:37:10 +0000112` + bp
113
Paul Duffind835daa2019-11-30 17:49:09 +0000114 return testSdkWithFs(t, bp, fs)
115}
116
Paul Duffina80fdec2019-12-03 15:25:00 +0000117// Contains tests for SDK members provided by the java package.
118
Paul Duffincee7e662020-07-09 17:32:57 +0100119func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000120 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffincee7e662020-07-09 17:32:57 +0100121 sdk {
122 name: "mysdk",
123 java_header_libs: ["sdkmember"],
124 }
125
126 java_library {
127 name: "sdkmember",
128 srcs: ["Test.java"],
129 system_modules: "none",
130 sdk_version: "none",
131 }
132
133 java_import {
134 name: "sdkmember",
135 prefer: true,
136 jars: ["prebuilt.jar"],
137 }
138 `)
139
140 // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember".
Paul Duffin8306f252021-03-11 12:18:24 +0000141 java.CheckModuleDependencies(t, result.TestContext, "mysdk", "android_common", []string{"sdkmember"})
Paul Duffincee7e662020-07-09 17:32:57 +0100142
Paul Duffin36474d32021-03-12 12:19:43 +0000143 CheckSnapshot(t, result, "mysdk", "",
Paul Duffincee7e662020-07-09 17:32:57 +0100144 checkAndroidBpContents(`// This is auto-generated. DO NOT EDIT.
145
146java_import {
147 name: "mysdk_sdkmember@current",
148 sdk_member_name: "sdkmember",
Paul Duffind99d9972020-09-29 16:00:55 +0100149 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000150 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100151 jars: ["java/sdkmember.jar"],
152}
153
154java_import {
155 name: "sdkmember",
156 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100157 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000158 apex_available: ["//apex_available:platform"],
Paul Duffincee7e662020-07-09 17:32:57 +0100159 jars: ["java/sdkmember.jar"],
160}
161
162sdk_snapshot {
163 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100164 visibility: ["//visibility:public"],
Paul Duffincee7e662020-07-09 17:32:57 +0100165 java_header_libs: ["mysdk_sdkmember@current"],
166}
167`))
168}
169
Paul Duffina80fdec2019-12-03 15:25:00 +0000170func TestBasicSdkWithJavaLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000171 result := android.GroupFixturePreparers(
172 prepareForSdkTestWithJava,
173 prepareForSdkTestWithApex,
174 ).RunTestWithBp(t, `
Paul Duffina80fdec2019-12-03 15:25:00 +0000175 sdk {
176 name: "mysdk",
Jiyong Park0f80c182020-01-31 02:49:53 +0900177 java_header_libs: ["sdkmember"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000178 }
179
180 sdk_snapshot {
181 name: "mysdk@1",
Paul Duffina0dbf432019-12-05 11:25:53 +0000182 java_header_libs: ["sdkmember_mysdk_1"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000183 }
184
185 sdk_snapshot {
186 name: "mysdk@2",
Paul Duffina0dbf432019-12-05 11:25:53 +0000187 java_header_libs: ["sdkmember_mysdk_2"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000188 }
189
Jiyong Park0f80c182020-01-31 02:49:53 +0900190 java_library {
Paul Duffina80fdec2019-12-03 15:25:00 +0000191 name: "sdkmember",
Jiyong Park0f80c182020-01-31 02:49:53 +0900192 srcs: ["Test.java"],
193 system_modules: "none",
194 sdk_version: "none",
Paul Duffina80fdec2019-12-03 15:25:00 +0000195 host_supported: true,
196 }
197
198 java_import {
199 name: "sdkmember_mysdk_1",
200 sdk_member_name: "sdkmember",
201 host_supported: true,
202 }
203
204 java_import {
205 name: "sdkmember_mysdk_2",
206 sdk_member_name: "sdkmember",
207 host_supported: true,
208 }
209
210 java_library {
211 name: "myjavalib",
212 srcs: ["Test.java"],
213 libs: ["sdkmember"],
214 system_modules: "none",
215 sdk_version: "none",
216 compile_dex: true,
217 host_supported: true,
Anton Hanssoneec79eb2020-01-10 15:12:39 +0000218 apex_available: [
219 "myapex",
220 "myapex2",
221 ],
Paul Duffina80fdec2019-12-03 15:25:00 +0000222 }
223
224 apex {
225 name: "myapex",
226 java_libs: ["myjavalib"],
227 uses_sdks: ["mysdk@1"],
228 key: "myapex.key",
229 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000230 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000231 }
232
233 apex {
234 name: "myapex2",
235 java_libs: ["myjavalib"],
236 uses_sdks: ["mysdk@2"],
237 key: "myapex.key",
238 certificate: ":myapex.cert",
Mathew Inwoodf8dcf5e2021-02-16 11:40:16 +0000239 updatable: false,
Paul Duffina80fdec2019-12-03 15:25:00 +0000240 }
241 `)
242
Paul Duffin8306f252021-03-11 12:18:24 +0000243 sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk_1", "android_common").Rule("combineJar").Output
244 sdkMemberV2 := result.ModuleForTests("sdkmember_mysdk_2", "android_common").Rule("combineJar").Output
Paul Duffina80fdec2019-12-03 15:25:00 +0000245
Paul Duffin8306f252021-03-11 12:18:24 +0000246 javalibForMyApex := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_1")
247 javalibForMyApex2 := result.ModuleForTests("myjavalib", "android_common_apex10000_mysdk_2")
Paul Duffina80fdec2019-12-03 15:25:00 +0000248
249 // Depending on the uses_sdks value, different libs are linked
250 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String())
251 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String())
252}
253
Paul Duffina0dbf432019-12-05 11:25:53 +0000254func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000255 result := android.GroupFixturePreparers(
256 prepareForSdkTestWithJava,
257 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
258 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000259 sdk {
260 name: "mysdk",
261 java_header_libs: ["myjavalib"],
262 }
263
264 java_library {
265 name: "myjavalib",
266 srcs: ["Test.java"],
267 aidl: {
268 export_include_dirs: ["aidl"],
269 },
270 system_modules: "none",
271 sdk_version: "none",
272 compile_dex: true,
273 host_supported: true,
274 }
275 `)
276
Paul Duffin36474d32021-03-12 12:19:43 +0000277 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000278 checkAndroidBpContents(`
279// This is auto-generated. DO NOT EDIT.
280
281java_import {
282 name: "mysdk_myjavalib@current",
283 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100284 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000285 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000286 jars: ["java/myjavalib.jar"],
287}
288
289java_import {
290 name: "myjavalib",
291 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100292 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000293 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000294 jars: ["java/myjavalib.jar"],
295}
296
297sdk_snapshot {
298 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100299 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000300 java_header_libs: ["mysdk_myjavalib@current"],
301}
302
303`),
304 checkAllCopyRules(`
305.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
306aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
307`),
308 )
309}
310
311func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000312 result := android.GroupFixturePreparers(
313 prepareForSdkTestWithJava,
314 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
315 ).RunTestWithBp(t, `
Paul Duffina0dbf432019-12-05 11:25:53 +0000316 sdk {
317 name: "mysdk",
318 device_supported: false,
319 host_supported: true,
320 java_header_libs: ["myjavalib"],
321 }
322
323 java_library {
324 name: "myjavalib",
325 device_supported: false,
326 host_supported: true,
327 srcs: ["Test.java"],
328 aidl: {
329 export_include_dirs: ["aidl"],
330 },
331 system_modules: "none",
332 sdk_version: "none",
333 compile_dex: true,
334 }
335 `)
336
Paul Duffin36474d32021-03-12 12:19:43 +0000337 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina0dbf432019-12-05 11:25:53 +0000338 checkAndroidBpContents(`
339// This is auto-generated. DO NOT EDIT.
340
341java_import {
342 name: "mysdk_myjavalib@current",
343 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100344 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000345 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000346 device_supported: false,
347 host_supported: true,
348 jars: ["java/myjavalib.jar"],
349}
350
351java_import {
352 name: "myjavalib",
353 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100354 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000355 apex_available: ["//apex_available:platform"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000356 device_supported: false,
357 host_supported: true,
358 jars: ["java/myjavalib.jar"],
359}
360
361sdk_snapshot {
362 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100363 visibility: ["//visibility:public"],
Paul Duffina0dbf432019-12-05 11:25:53 +0000364 device_supported: false,
365 host_supported: true,
366 java_header_libs: ["mysdk_myjavalib@current"],
367}
368`),
369 checkAllCopyRules(`
370.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
371aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
372`),
373 )
374}
375
Paul Duffina04c1072020-03-02 10:16:35 +0000376func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000377 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffina04c1072020-03-02 10:16:35 +0000378 sdk {
379 name: "mysdk",
380 host_supported: true,
381 java_header_libs: ["myjavalib"],
382 }
383
384 java_library {
385 name: "myjavalib",
386 host_supported: true,
387 srcs: ["Test.java"],
388 system_modules: "none",
389 sdk_version: "none",
390 compile_dex: true,
391 }
392 `)
393
Paul Duffin36474d32021-03-12 12:19:43 +0000394 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina04c1072020-03-02 10:16:35 +0000395 checkAndroidBpContents(`
396// This is auto-generated. DO NOT EDIT.
397
398java_import {
399 name: "mysdk_myjavalib@current",
400 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100401 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000402 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000403 host_supported: true,
404 target: {
405 android: {
406 jars: ["java/android/myjavalib.jar"],
407 },
408 linux_glibc: {
409 jars: ["java/linux_glibc/myjavalib.jar"],
410 },
411 },
412}
413
414java_import {
415 name: "myjavalib",
416 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100417 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000418 apex_available: ["//apex_available:platform"],
Paul Duffina04c1072020-03-02 10:16:35 +0000419 host_supported: true,
420 target: {
421 android: {
422 jars: ["java/android/myjavalib.jar"],
423 },
424 linux_glibc: {
425 jars: ["java/linux_glibc/myjavalib.jar"],
426 },
427 },
428}
429
430sdk_snapshot {
431 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100432 visibility: ["//visibility:public"],
Paul Duffina04c1072020-03-02 10:16:35 +0000433 host_supported: true,
434 java_header_libs: ["mysdk_myjavalib@current"],
435}
436`),
437 checkAllCopyRules(`
438.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
439.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
440`),
441 )
442}
443
Paul Duffina0dbf432019-12-05 11:25:53 +0000444func TestSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000445 result := android.GroupFixturePreparers(
446 prepareForSdkTestWithJava,
447 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
448 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000449 module_exports {
450 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000451 java_libs: ["myjavalib"],
452 }
453
454 java_library {
455 name: "myjavalib",
456 srcs: ["Test.java"],
Paul Duffin4e772842020-06-24 12:10:42 +0100457 java_resources: ["resource.txt"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000458 aidl: {
459 export_include_dirs: ["aidl"],
460 },
461 system_modules: "none",
462 sdk_version: "none",
463 compile_dex: true,
464 host_supported: true,
465 }
466 `)
467
Paul Duffin36474d32021-03-12 12:19:43 +0000468 CheckSnapshot(t, result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000469 checkAndroidBpContents(`
470// This is auto-generated. DO NOT EDIT.
471
472java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000473 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000474 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100475 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000476 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000477 jars: ["java/myjavalib.jar"],
478}
479
480java_import {
481 name: "myjavalib",
482 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100483 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000484 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000485 jars: ["java/myjavalib.jar"],
486}
487
Paul Duffine6029182019-12-16 17:43:48 +0000488module_exports_snapshot {
489 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100490 visibility: ["//visibility:public"],
Paul Duffine6029182019-12-16 17:43:48 +0000491 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000492}
493
494`),
495 checkAllCopyRules(`
Paul Duffin4e772842020-06-24 12:10:42 +0100496.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffina80fdec2019-12-03 15:25:00 +0000497aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
498`),
499 )
500}
501
Paul Duffindb170e42020-12-08 17:48:25 +0000502func TestSnapshotWithJavaBootLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000503 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffindb170e42020-12-08 17:48:25 +0000504 module_exports {
505 name: "myexports",
506 java_boot_libs: ["myjavalib"],
507 }
508
509 java_library {
510 name: "myjavalib",
511 srcs: ["Test.java"],
512 java_resources: ["resource.txt"],
513 // The aidl files should not be copied to the snapshot because a java_boot_libs member is not
514 // intended to be used for compiling Java, only for accessing the dex implementation jar.
515 aidl: {
516 export_include_dirs: ["aidl"],
517 },
518 system_modules: "none",
519 sdk_version: "none",
520 compile_dex: true,
521 }
522 `)
523
Paul Duffin36474d32021-03-12 12:19:43 +0000524 CheckSnapshot(t, result, "myexports", "",
Paul Duffindb170e42020-12-08 17:48:25 +0000525 checkAndroidBpContents(`
526// This is auto-generated. DO NOT EDIT.
527
528java_import {
529 name: "myexports_myjavalib@current",
530 sdk_member_name: "myjavalib",
531 visibility: ["//visibility:public"],
532 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000533 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000534}
535
536java_import {
537 name: "myjavalib",
538 prefer: false,
539 visibility: ["//visibility:public"],
540 apex_available: ["//apex_available:platform"],
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000541 jars: ["java/myjavalib.jar"],
Paul Duffindb170e42020-12-08 17:48:25 +0000542}
543
544module_exports_snapshot {
545 name: "myexports@current",
546 visibility: ["//visibility:public"],
547 java_boot_libs: ["myexports_myjavalib@current"],
548}
Paul Duffindb170e42020-12-08 17:48:25 +0000549`),
550 checkAllCopyRules(`
Paul Duffin22ff0aa2021-02-04 11:15:34 +0000551.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
Paul Duffindb170e42020-12-08 17:48:25 +0000552`),
553 )
554}
555
Paul Duffina0dbf432019-12-05 11:25:53 +0000556func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000557 result := android.GroupFixturePreparers(
558 prepareForSdkTestWithJava,
559 android.FixtureAddFile("aidl/foo/bar/Test.aidl", nil),
560 ).RunTestWithBp(t, `
Paul Duffine6029182019-12-16 17:43:48 +0000561 module_exports {
562 name: "myexports",
Paul Duffina80fdec2019-12-03 15:25:00 +0000563 device_supported: false,
564 host_supported: true,
565 java_libs: ["myjavalib"],
566 }
567
568 java_library {
569 name: "myjavalib",
570 device_supported: false,
571 host_supported: true,
572 srcs: ["Test.java"],
573 aidl: {
574 export_include_dirs: ["aidl"],
575 },
576 system_modules: "none",
577 sdk_version: "none",
578 compile_dex: true,
579 }
580 `)
581
Paul Duffin36474d32021-03-12 12:19:43 +0000582 CheckSnapshot(t, result, "myexports", "",
Paul Duffina80fdec2019-12-03 15:25:00 +0000583 checkAndroidBpContents(`
584// This is auto-generated. DO NOT EDIT.
585
586java_import {
Paul Duffine6029182019-12-16 17:43:48 +0000587 name: "myexports_myjavalib@current",
Paul Duffina80fdec2019-12-03 15:25:00 +0000588 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100589 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000590 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000591 device_supported: false,
592 host_supported: true,
593 jars: ["java/myjavalib.jar"],
594}
595
596java_import {
597 name: "myjavalib",
598 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100599 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000600 apex_available: ["//apex_available:platform"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000601 device_supported: false,
602 host_supported: true,
603 jars: ["java/myjavalib.jar"],
604}
605
Paul Duffine6029182019-12-16 17:43:48 +0000606module_exports_snapshot {
607 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100608 visibility: ["//visibility:public"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000609 device_supported: false,
610 host_supported: true,
Paul Duffine6029182019-12-16 17:43:48 +0000611 java_libs: ["myexports_myjavalib@current"],
Paul Duffina80fdec2019-12-03 15:25:00 +0000612}
613`),
614 checkAllCopyRules(`
615.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
616aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl
617`),
618 )
619}
620
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000621func TestSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000622 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000623 module_exports {
624 name: "myexports",
625 java_tests: ["myjavatests"],
626 }
627
628 java_test {
629 name: "myjavatests",
630 srcs: ["Test.java"],
631 system_modules: "none",
632 sdk_version: "none",
633 compile_dex: true,
634 host_supported: true,
635 }
636 `)
637
Paul Duffin36474d32021-03-12 12:19:43 +0000638 CheckSnapshot(t, result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000639 checkAndroidBpContents(`
640// This is auto-generated. DO NOT EDIT.
641
642java_test_import {
643 name: "myexports_myjavatests@current",
644 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100645 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000646 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000647 jars: ["java/myjavatests.jar"],
648 test_config: "java/myjavatests-AndroidTest.xml",
649}
650
651java_test_import {
652 name: "myjavatests",
653 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100654 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000655 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000656 jars: ["java/myjavatests.jar"],
657 test_config: "java/myjavatests-AndroidTest.xml",
658}
659
660module_exports_snapshot {
661 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100662 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000663 java_tests: ["myexports_myjavatests@current"],
664}
665`),
666 checkAllCopyRules(`
667.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
668.intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
669`),
670 )
671}
672
673func TestHostSnapshotWithJavaTest(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000674 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000675 module_exports {
676 name: "myexports",
677 device_supported: false,
678 host_supported: true,
679 java_tests: ["myjavatests"],
680 }
681
682 java_test {
683 name: "myjavatests",
684 device_supported: false,
685 host_supported: true,
686 srcs: ["Test.java"],
687 system_modules: "none",
688 sdk_version: "none",
689 compile_dex: true,
690 }
691 `)
692
Paul Duffin36474d32021-03-12 12:19:43 +0000693 CheckSnapshot(t, result, "myexports", "",
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000694 checkAndroidBpContents(`
695// This is auto-generated. DO NOT EDIT.
696
697java_test_import {
698 name: "myexports_myjavatests@current",
699 sdk_member_name: "myjavatests",
Paul Duffind99d9972020-09-29 16:00:55 +0100700 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000701 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000702 device_supported: false,
703 host_supported: true,
704 jars: ["java/myjavatests.jar"],
705 test_config: "java/myjavatests-AndroidTest.xml",
706}
707
708java_test_import {
709 name: "myjavatests",
710 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100711 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000712 apex_available: ["//apex_available:platform"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000713 device_supported: false,
714 host_supported: true,
715 jars: ["java/myjavatests.jar"],
716 test_config: "java/myjavatests-AndroidTest.xml",
717}
718
719module_exports_snapshot {
720 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100721 visibility: ["//visibility:public"],
Paul Duffin1b82e6a2019-12-03 18:06:47 +0000722 device_supported: false,
723 host_supported: true,
724 java_tests: ["myexports_myjavatests@current"],
725}
726`),
727 checkAllCopyRules(`
728.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
729.intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml
730`),
731 )
732}
733
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000734func TestSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000735 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000736 sdk {
737 name: "mysdk",
Paul Duffin72910952020-01-20 18:16:30 +0000738 java_header_libs: ["exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000739 java_system_modules: ["my-system-modules"],
740 }
741
742 java_system_modules {
743 name: "my-system-modules",
Paul Duffin72910952020-01-20 18:16:30 +0000744 libs: ["system-module", "exported-system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000745 }
746
747 java_library {
748 name: "system-module",
749 srcs: ["Test.java"],
750 sdk_version: "none",
751 system_modules: "none",
752 }
Paul Duffin72910952020-01-20 18:16:30 +0000753
754 java_library {
755 name: "exported-system-module",
756 srcs: ["Test.java"],
757 sdk_version: "none",
758 system_modules: "none",
759 }
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000760 `)
761
Paul Duffin36474d32021-03-12 12:19:43 +0000762 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000763 checkAndroidBpContents(`
764// This is auto-generated. DO NOT EDIT.
765
766java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000767 name: "mysdk_exported-system-module@current",
768 sdk_member_name: "exported-system-module",
Paul Duffind99d9972020-09-29 16:00:55 +0100769 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000770 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000771 jars: ["java/exported-system-module.jar"],
772}
773
774java_import {
775 name: "exported-system-module",
776 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100777 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000778 apex_available: ["//apex_available:platform"],
Paul Duffin72910952020-01-20 18:16:30 +0000779 jars: ["java/exported-system-module.jar"],
780}
781
782java_import {
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000783 name: "mysdk_system-module@current",
784 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000785 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000786 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000787 jars: ["java/system-module.jar"],
788}
789
790java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000791 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000792 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000793 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000794 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000795 jars: ["java/system-module.jar"],
796}
797
798java_system_modules_import {
799 name: "mysdk_my-system-modules@current",
800 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100801 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000802 libs: [
803 "mysdk_system-module@current",
804 "mysdk_exported-system-module@current",
805 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000806}
807
808java_system_modules_import {
809 name: "my-system-modules",
810 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100811 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000812 libs: [
813 "mysdk_system-module",
814 "exported-system-module",
815 ],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000816}
817
818sdk_snapshot {
819 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100820 visibility: ["//visibility:public"],
Paul Duffin72910952020-01-20 18:16:30 +0000821 java_header_libs: ["mysdk_exported-system-module@current"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000822 java_system_modules: ["mysdk_my-system-modules@current"],
823}
824`),
Paul Duffin72910952020-01-20 18:16:30 +0000825 checkAllCopyRules(`
826.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
827.intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar
828`),
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000829 )
830}
831
832func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000833 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000834 sdk {
835 name: "mysdk",
836 device_supported: false,
837 host_supported: true,
838 java_system_modules: ["my-system-modules"],
839 }
840
841 java_system_modules {
842 name: "my-system-modules",
843 device_supported: false,
844 host_supported: true,
845 libs: ["system-module"],
846 }
847
848 java_library {
849 name: "system-module",
850 device_supported: false,
851 host_supported: true,
852 srcs: ["Test.java"],
853 sdk_version: "none",
854 system_modules: "none",
855 }
856 `)
857
Paul Duffin36474d32021-03-12 12:19:43 +0000858 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000859 checkAndroidBpContents(`
860// This is auto-generated. DO NOT EDIT.
861
862java_import {
863 name: "mysdk_system-module@current",
864 sdk_member_name: "system-module",
Paul Duffin72910952020-01-20 18:16:30 +0000865 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000866 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000867 device_supported: false,
868 host_supported: true,
869 jars: ["java/system-module.jar"],
870}
871
872java_import {
Paul Duffin72910952020-01-20 18:16:30 +0000873 name: "mysdk_system-module",
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000874 prefer: false,
Paul Duffin72910952020-01-20 18:16:30 +0000875 visibility: ["//visibility:private"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000876 apex_available: ["//apex_available:platform"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000877 device_supported: false,
878 host_supported: true,
879 jars: ["java/system-module.jar"],
880}
881
882java_system_modules_import {
883 name: "mysdk_my-system-modules@current",
884 sdk_member_name: "my-system-modules",
Paul Duffind99d9972020-09-29 16:00:55 +0100885 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000886 device_supported: false,
887 host_supported: true,
888 libs: ["mysdk_system-module@current"],
889}
890
891java_system_modules_import {
892 name: "my-system-modules",
893 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100894 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000895 device_supported: false,
896 host_supported: true,
Paul Duffin72910952020-01-20 18:16:30 +0000897 libs: ["mysdk_system-module"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000898}
899
900sdk_snapshot {
901 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +0100902 visibility: ["//visibility:public"],
Paul Duffin7b81f5e2020-01-13 21:03:22 +0000903 device_supported: false,
904 host_supported: true,
905 java_system_modules: ["mysdk_my-system-modules@current"],
906}
907`),
908 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
909 )
910}
Paul Duffin865171e2020-03-02 18:38:15 +0000911
912func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +0000913 result := android.GroupFixturePreparers(prepareForSdkTestWithJava).RunTestWithBp(t, `
Paul Duffin865171e2020-03-02 18:38:15 +0000914 module_exports {
915 name: "myexports",
916 host_supported: true,
917 java_libs: ["myjavalib"],
918 target: {
919 android: {
920 java_header_libs: ["androidjavalib"],
921 },
922 host: {
923 java_header_libs: ["hostjavalib"],
924 },
925 },
926 }
927
928 java_library {
929 name: "myjavalib",
930 host_supported: true,
931 srcs: ["Test.java"],
932 system_modules: "none",
933 sdk_version: "none",
934 }
935
936 java_library {
937 name: "androidjavalib",
938 srcs: ["Test.java"],
939 system_modules: "none",
940 sdk_version: "none",
941 }
942
943 java_library_host {
944 name: "hostjavalib",
945 srcs: ["Test.java"],
946 }
947 `)
948
Paul Duffin36474d32021-03-12 12:19:43 +0000949 CheckSnapshot(t, result, "myexports", "",
Paul Duffin865171e2020-03-02 18:38:15 +0000950 checkAndroidBpContents(`
951// This is auto-generated. DO NOT EDIT.
952
953java_import {
954 name: "myexports_hostjavalib@current",
955 sdk_member_name: "hostjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100956 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000957 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000958 device_supported: false,
959 host_supported: true,
960 jars: ["java/hostjavalib.jar"],
961}
962
963java_import {
964 name: "hostjavalib",
965 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100966 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000967 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000968 device_supported: false,
969 host_supported: true,
970 jars: ["java/hostjavalib.jar"],
971}
972
973java_import {
974 name: "myexports_androidjavalib@current",
975 sdk_member_name: "androidjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100976 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000977 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000978 jars: ["java/androidjavalib.jar"],
979}
980
981java_import {
982 name: "androidjavalib",
983 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +0100984 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000985 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000986 jars: ["java/androidjavalib.jar"],
987}
988
989java_import {
990 name: "myexports_myjavalib@current",
991 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +0100992 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000993 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +0000994 host_supported: true,
995 target: {
996 android: {
997 jars: ["java/android/myjavalib.jar"],
998 },
999 linux_glibc: {
1000 jars: ["java/linux_glibc/myjavalib.jar"],
1001 },
1002 },
1003}
1004
1005java_import {
1006 name: "myjavalib",
1007 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001008 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001009 apex_available: ["//apex_available:platform"],
Paul Duffin865171e2020-03-02 18:38:15 +00001010 host_supported: true,
1011 target: {
1012 android: {
1013 jars: ["java/android/myjavalib.jar"],
1014 },
1015 linux_glibc: {
1016 jars: ["java/linux_glibc/myjavalib.jar"],
1017 },
1018 },
1019}
1020
1021module_exports_snapshot {
1022 name: "myexports@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001023 visibility: ["//visibility:public"],
Paul Duffin865171e2020-03-02 18:38:15 +00001024 host_supported: true,
Paul Duffin07ef3cb2020-03-11 18:17:42 +00001025 java_libs: ["myexports_myjavalib@current"],
Paul Duffin865171e2020-03-02 18:38:15 +00001026 target: {
1027 android: {
1028 java_header_libs: ["myexports_androidjavalib@current"],
1029 },
1030 linux_glibc: {
1031 java_header_libs: ["myexports_hostjavalib@current"],
1032 },
1033 },
Paul Duffin865171e2020-03-02 18:38:15 +00001034}
1035`),
1036 checkAllCopyRules(`
1037.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
1038.intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar
1039.intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar
1040.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar
1041`),
1042 )
1043}
Paul Duffindd46f712020-02-10 13:37:10 +00001044
1045func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001046 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffindd46f712020-02-10 13:37:10 +00001047 sdk {
1048 name: "mysdk",
1049 java_sdk_libs: ["myjavalib"],
1050 }
1051
1052 java_sdk_library {
1053 name: "myjavalib",
1054 apex_available: ["//apex_available:anyapex"],
1055 srcs: ["Test.java"],
1056 sdk_version: "current",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001057 shared_library: false,
Paul Duffin4911a892020-04-29 23:35:13 +01001058 stubs_library_visibility: ["//other"],
1059 stubs_source_visibility: ["//another"],
Paul Duffindd46f712020-02-10 13:37:10 +00001060 }
1061 `)
1062
Paul Duffin36474d32021-03-12 12:19:43 +00001063 CheckSnapshot(t, result, "mysdk", "",
Paul Duffindd46f712020-02-10 13:37:10 +00001064 checkAndroidBpContents(`
1065// This is auto-generated. DO NOT EDIT.
1066
1067java_sdk_library_import {
1068 name: "mysdk_myjavalib@current",
1069 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001070 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001071 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001072 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001073 public: {
1074 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001075 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001076 current_api: "sdk_library/public/myjavalib.txt",
1077 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001078 sdk_version: "current",
1079 },
1080 system: {
1081 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001082 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001083 current_api: "sdk_library/system/myjavalib.txt",
1084 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001085 sdk_version: "system_current",
1086 },
1087 test: {
1088 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001089 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001090 current_api: "sdk_library/test/myjavalib.txt",
1091 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001092 sdk_version: "test_current",
1093 },
1094}
1095
1096java_sdk_library_import {
1097 name: "myjavalib",
1098 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001099 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001100 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001101 shared_library: false,
Paul Duffindd46f712020-02-10 13:37:10 +00001102 public: {
1103 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001104 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001105 current_api: "sdk_library/public/myjavalib.txt",
1106 removed_api: "sdk_library/public/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001107 sdk_version: "current",
1108 },
1109 system: {
1110 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001111 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001112 current_api: "sdk_library/system/myjavalib.txt",
1113 removed_api: "sdk_library/system/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001114 sdk_version: "system_current",
1115 },
1116 test: {
1117 jars: ["sdk_library/test/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001118 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
Paul Duffin1fd005d2020-04-09 01:08:11 +01001119 current_api: "sdk_library/test/myjavalib.txt",
1120 removed_api: "sdk_library/test/myjavalib-removed.txt",
Paul Duffindd46f712020-02-10 13:37:10 +00001121 sdk_version: "test_current",
1122 },
1123}
1124
1125sdk_snapshot {
1126 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001127 visibility: ["//visibility:public"],
Paul Duffindd46f712020-02-10 13:37:10 +00001128 java_sdk_libs: ["mysdk_myjavalib@current"],
1129}
1130`),
1131 checkAllCopyRules(`
1132.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001133.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001134.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001135.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001136.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001137.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001138.intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar
Paul Duffin1fd005d2020-04-09 01:08:11 +01001139.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001140.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_removed.txt -> sdk_library/test/myjavalib-removed.txt
Paul Duffindd46f712020-02-10 13:37:10 +00001141`),
Paul Duffin3d1248c2020-04-09 00:10:17 +01001142 checkMergeZips(
1143 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1144 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1145 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"),
Paul Duffindd46f712020-02-10 13:37:10 +00001146 )
1147}
Paul Duffin3375e352020-04-28 10:44:03 +01001148
Paul Duffin780c5f42020-05-12 15:52:55 +01001149func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001150 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin780c5f42020-05-12 15:52:55 +01001151 sdk {
1152 name: "mysdk",
1153 java_sdk_libs: ["myjavalib"],
1154 }
1155
1156 java_sdk_library {
1157 name: "myjavalib",
1158 srcs: ["Test.java"],
1159 sdk_version: "none",
1160 system_modules: "none",
1161 }
1162 `)
1163
Paul Duffin36474d32021-03-12 12:19:43 +00001164 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin780c5f42020-05-12 15:52:55 +01001165 checkAndroidBpContents(`
1166// This is auto-generated. DO NOT EDIT.
1167
1168java_sdk_library_import {
1169 name: "mysdk_myjavalib@current",
1170 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001171 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001172 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001173 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001174 public: {
1175 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001176 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001177 current_api: "sdk_library/public/myjavalib.txt",
1178 removed_api: "sdk_library/public/myjavalib-removed.txt",
1179 sdk_version: "none",
1180 },
1181}
1182
1183java_sdk_library_import {
1184 name: "myjavalib",
1185 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001186 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001187 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001188 shared_library: true,
Paul Duffin780c5f42020-05-12 15:52:55 +01001189 public: {
1190 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001191 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001192 current_api: "sdk_library/public/myjavalib.txt",
1193 removed_api: "sdk_library/public/myjavalib-removed.txt",
1194 sdk_version: "none",
1195 },
1196}
1197
1198sdk_snapshot {
1199 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001200 visibility: ["//visibility:public"],
Paul Duffin780c5f42020-05-12 15:52:55 +01001201 java_sdk_libs: ["mysdk_myjavalib@current"],
1202}
1203`),
1204 checkAllCopyRules(`
1205.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1206.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001207.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin780c5f42020-05-12 15:52:55 +01001208`),
1209 checkMergeZips(
1210 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1211 ),
1212 )
1213}
1214
Paul Duffin87a05a32020-05-12 11:50:28 +01001215func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001216 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin87a05a32020-05-12 11:50:28 +01001217 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: "module_current",
1226 public: {
1227 enabled: true,
1228 sdk_version: "module_current",
1229 },
1230 }
1231 `)
1232
Paul Duffin36474d32021-03-12 12:19:43 +00001233 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin87a05a32020-05-12 11:50:28 +01001234 checkAndroidBpContents(`
1235// This is auto-generated. DO NOT EDIT.
1236
1237java_sdk_library_import {
1238 name: "mysdk_myjavalib@current",
1239 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001240 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001241 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001242 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001243 public: {
1244 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001245 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001246 current_api: "sdk_library/public/myjavalib.txt",
1247 removed_api: "sdk_library/public/myjavalib-removed.txt",
1248 sdk_version: "module_current",
1249 },
1250}
1251
1252java_sdk_library_import {
1253 name: "myjavalib",
1254 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001255 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001256 apex_available: ["//apex_available:platform"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001257 shared_library: true,
Paul Duffin87a05a32020-05-12 11:50:28 +01001258 public: {
1259 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001260 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001261 current_api: "sdk_library/public/myjavalib.txt",
1262 removed_api: "sdk_library/public/myjavalib-removed.txt",
1263 sdk_version: "module_current",
1264 },
1265}
1266
1267sdk_snapshot {
1268 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001269 visibility: ["//visibility:public"],
Paul Duffin87a05a32020-05-12 11:50:28 +01001270 java_sdk_libs: ["mysdk_myjavalib@current"],
1271}
1272`),
1273 checkAllCopyRules(`
1274.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1275.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001276.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin87a05a32020-05-12 11:50:28 +01001277`),
1278 checkMergeZips(
1279 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1280 ),
1281 )
1282}
1283
1284func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001285 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin3375e352020-04-28 10:44:03 +01001286 sdk {
1287 name: "mysdk",
1288 java_sdk_libs: ["myjavalib"],
1289 }
1290
1291 java_sdk_library {
1292 name: "myjavalib",
1293 apex_available: ["//apex_available:anyapex"],
1294 srcs: ["Test.java"],
1295 sdk_version: "current",
1296 public: {
1297 enabled: true,
1298 },
1299 system: {
1300 enabled: true,
1301 },
1302 }
1303 `)
1304
Paul Duffin36474d32021-03-12 12:19:43 +00001305 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin3375e352020-04-28 10:44:03 +01001306 checkAndroidBpContents(`
1307// This is auto-generated. DO NOT EDIT.
1308
1309java_sdk_library_import {
1310 name: "mysdk_myjavalib@current",
1311 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001312 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001313 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001314 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +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 Duffin3375e352020-04-28 10:44:03 +01001318 current_api: "sdk_library/public/myjavalib.txt",
1319 removed_api: "sdk_library/public/myjavalib-removed.txt",
1320 sdk_version: "current",
1321 },
1322 system: {
1323 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001324 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001325 current_api: "sdk_library/system/myjavalib.txt",
1326 removed_api: "sdk_library/system/myjavalib-removed.txt",
1327 sdk_version: "system_current",
1328 },
1329}
1330
1331java_sdk_library_import {
1332 name: "myjavalib",
1333 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001334 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001335 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001336 shared_library: true,
Paul Duffin3375e352020-04-28 10:44:03 +01001337 public: {
1338 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001339 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001340 current_api: "sdk_library/public/myjavalib.txt",
1341 removed_api: "sdk_library/public/myjavalib-removed.txt",
1342 sdk_version: "current",
1343 },
1344 system: {
1345 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001346 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin3375e352020-04-28 10:44:03 +01001347 current_api: "sdk_library/system/myjavalib.txt",
1348 removed_api: "sdk_library/system/myjavalib-removed.txt",
1349 sdk_version: "system_current",
1350 },
1351}
1352
1353sdk_snapshot {
1354 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001355 visibility: ["//visibility:public"],
Paul Duffin3375e352020-04-28 10:44:03 +01001356 java_sdk_libs: ["mysdk_myjavalib@current"],
1357}
1358`),
1359 checkAllCopyRules(`
1360.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1361.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001362.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001363.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1364.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001365.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin3375e352020-04-28 10:44:03 +01001366`),
1367 checkMergeZips(
1368 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1369 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
1370 ),
1371 )
1372}
Paul Duffin8f265b92020-04-28 14:13:56 +01001373
1374func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001375 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin8f265b92020-04-28 14:13:56 +01001376 sdk {
1377 name: "mysdk",
1378 java_sdk_libs: ["myjavalib"],
1379 }
1380
1381 java_sdk_library {
1382 name: "myjavalib",
1383 apex_available: ["//apex_available:anyapex"],
1384 srcs: ["Test.java"],
1385 sdk_version: "current",
1386 public: {
1387 enabled: true,
1388 },
1389 system: {
1390 enabled: true,
1391 },
1392 module_lib: {
1393 enabled: true,
1394 },
1395 }
1396 `)
1397
Paul Duffin36474d32021-03-12 12:19:43 +00001398 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin8f265b92020-04-28 14:13:56 +01001399 checkAndroidBpContents(`
1400// This is auto-generated. DO NOT EDIT.
1401
1402java_sdk_library_import {
1403 name: "mysdk_myjavalib@current",
1404 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001405 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001406 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001407 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001408 public: {
1409 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001410 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001411 current_api: "sdk_library/public/myjavalib.txt",
1412 removed_api: "sdk_library/public/myjavalib-removed.txt",
1413 sdk_version: "current",
1414 },
1415 system: {
1416 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001417 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001418 current_api: "sdk_library/system/myjavalib.txt",
1419 removed_api: "sdk_library/system/myjavalib-removed.txt",
1420 sdk_version: "system_current",
1421 },
1422 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001423 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001424 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001425 current_api: "sdk_library/module-lib/myjavalib.txt",
1426 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001427 sdk_version: "module_current",
1428 },
1429}
1430
1431java_sdk_library_import {
1432 name: "myjavalib",
1433 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001434 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001435 apex_available: ["//apex_available:anyapex"],
Paul Duffind7eb1c22020-05-26 20:57:10 +01001436 shared_library: true,
Paul Duffin8f265b92020-04-28 14:13:56 +01001437 public: {
1438 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001439 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001440 current_api: "sdk_library/public/myjavalib.txt",
1441 removed_api: "sdk_library/public/myjavalib-removed.txt",
1442 sdk_version: "current",
1443 },
1444 system: {
1445 jars: ["sdk_library/system/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001446 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001447 current_api: "sdk_library/system/myjavalib.txt",
1448 removed_api: "sdk_library/system/myjavalib-removed.txt",
1449 sdk_version: "system_current",
1450 },
1451 module_lib: {
Paul Duffin6b836ba2020-05-13 19:19:49 +01001452 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001453 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
Paul Duffin6b836ba2020-05-13 19:19:49 +01001454 current_api: "sdk_library/module-lib/myjavalib.txt",
1455 removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
Paul Duffin8f265b92020-04-28 14:13:56 +01001456 sdk_version: "module_current",
1457 },
1458}
1459
1460sdk_snapshot {
1461 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001462 visibility: ["//visibility:public"],
Paul Duffin8f265b92020-04-28 14:13:56 +01001463 java_sdk_libs: ["mysdk_myjavalib@current"],
1464}
1465`),
1466 checkAllCopyRules(`
1467.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1468.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001469.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001470.intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar
1471.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt
Paul Duffin3dbf9fd2020-06-02 13:00:02 +01001472.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt
Paul Duffin6b836ba2020-05-13 19:19:49 +01001473.intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar
Paul Duffin15f34ef2020-07-20 18:04:44 +01001474.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt
1475.intermediates/myjavalib.stubs.source.module_lib/android_common/myjavalib.stubs.source.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt
Paul Duffin8f265b92020-04-28 14:13:56 +01001476`),
1477 checkMergeZips(
1478 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1479 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
Paul Duffin6b836ba2020-05-13 19:19:49 +01001480 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip",
Paul Duffin8f265b92020-04-28 14:13:56 +01001481 ),
1482 )
1483}
Paul Duffinf7a64332020-05-13 16:54:55 +01001484
Paul Duffin0c5bae52020-06-02 13:00:08 +01001485func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001486 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffin0c5bae52020-06-02 13:00:08 +01001487 sdk {
1488 name: "mysdk",
1489 java_sdk_libs: ["myjavalib"],
1490 }
1491
1492 java_sdk_library {
1493 name: "myjavalib",
1494 apex_available: ["//apex_available:anyapex"],
1495 srcs: ["Test.java"],
1496 sdk_version: "current",
1497 public: {
1498 enabled: true,
1499 },
1500 system_server: {
1501 enabled: true,
1502 },
1503 }
1504 `)
1505
Paul Duffin36474d32021-03-12 12:19:43 +00001506 CheckSnapshot(t, result, "mysdk", "",
Paul Duffin0c5bae52020-06-02 13:00:08 +01001507 checkAndroidBpContents(`
1508// This is auto-generated. DO NOT EDIT.
1509
1510java_sdk_library_import {
1511 name: "mysdk_myjavalib@current",
1512 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001513 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001514 apex_available: ["//apex_available:anyapex"],
1515 shared_library: true,
1516 public: {
1517 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001518 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001519 current_api: "sdk_library/public/myjavalib.txt",
1520 removed_api: "sdk_library/public/myjavalib-removed.txt",
1521 sdk_version: "current",
1522 },
1523 system_server: {
1524 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001525 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001526 current_api: "sdk_library/system-server/myjavalib.txt",
1527 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1528 sdk_version: "system_server_current",
1529 },
1530}
1531
1532java_sdk_library_import {
1533 name: "myjavalib",
1534 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001535 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001536 apex_available: ["//apex_available:anyapex"],
1537 shared_library: true,
1538 public: {
1539 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001540 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001541 current_api: "sdk_library/public/myjavalib.txt",
1542 removed_api: "sdk_library/public/myjavalib-removed.txt",
1543 sdk_version: "current",
1544 },
1545 system_server: {
1546 jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001547 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001548 current_api: "sdk_library/system-server/myjavalib.txt",
1549 removed_api: "sdk_library/system-server/myjavalib-removed.txt",
1550 sdk_version: "system_server_current",
1551 },
1552}
1553
1554sdk_snapshot {
1555 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001556 visibility: ["//visibility:public"],
Paul Duffin0c5bae52020-06-02 13:00:08 +01001557 java_sdk_libs: ["mysdk_myjavalib@current"],
1558}
1559`),
1560 checkAllCopyRules(`
1561.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1562.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1563.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1564.intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar
1565.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt
1566.intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt
1567`),
1568 checkMergeZips(
1569 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1570 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip",
1571 ),
1572 )
1573}
1574
Paul Duffinf7a64332020-05-13 16:54:55 +01001575func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001576 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffinf7a64332020-05-13 16:54:55 +01001577 sdk {
1578 name: "mysdk",
1579 java_sdk_libs: ["myjavalib"],
1580 }
1581
1582 java_sdk_library {
1583 name: "myjavalib",
1584 apex_available: ["//apex_available:anyapex"],
1585 srcs: ["Test.java"],
1586 sdk_version: "current",
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001587 naming_scheme: "default",
Paul Duffinf7a64332020-05-13 16:54:55 +01001588 public: {
1589 enabled: true,
1590 },
1591 }
1592 `)
1593
Paul Duffin36474d32021-03-12 12:19:43 +00001594 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinf7a64332020-05-13 16:54:55 +01001595 checkAndroidBpContents(`
1596// This is auto-generated. DO NOT EDIT.
1597
1598java_sdk_library_import {
1599 name: "mysdk_myjavalib@current",
1600 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001601 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001602 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001603 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001604 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001605 public: {
1606 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001607 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001608 current_api: "sdk_library/public/myjavalib.txt",
1609 removed_api: "sdk_library/public/myjavalib-removed.txt",
1610 sdk_version: "current",
1611 },
1612}
1613
1614java_sdk_library_import {
1615 name: "myjavalib",
1616 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001617 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001618 apex_available: ["//apex_available:anyapex"],
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001619 naming_scheme: "default",
Paul Duffind7eb1c22020-05-26 20:57:10 +01001620 shared_library: true,
Paul Duffinf7a64332020-05-13 16:54:55 +01001621 public: {
1622 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001623 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001624 current_api: "sdk_library/public/myjavalib.txt",
1625 removed_api: "sdk_library/public/myjavalib-removed.txt",
1626 sdk_version: "current",
1627 },
1628}
1629
1630sdk_snapshot {
1631 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001632 visibility: ["//visibility:public"],
Paul Duffinf7a64332020-05-13 16:54:55 +01001633 java_sdk_libs: ["mysdk_myjavalib@current"],
1634}
1635`),
1636 checkAllCopyRules(`
Paul Duffinee9ad5d2020-09-11 13:04:05 +01001637.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1638.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1639.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
Paul Duffinf7a64332020-05-13 16:54:55 +01001640`),
1641 checkMergeZips(
1642 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",
1643 ),
1644 )
1645}
Paul Duffina2ae7e02020-09-11 11:55:00 +01001646
1647func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
Paul Duffin9ec86b12021-03-15 11:17:52 +00001648 result := android.GroupFixturePreparers(prepareForSdkTestWithJavaSdkLibrary).RunTestWithBp(t, `
Paul Duffina2ae7e02020-09-11 11:55:00 +01001649 sdk {
1650 name: "mysdk",
1651 java_sdk_libs: ["myjavalib"],
1652 }
1653
1654 java_sdk_library {
1655 name: "myjavalib",
1656 srcs: ["Test.java"],
1657 sdk_version: "current",
1658 public: {
1659 enabled: true,
1660 },
1661 doctag_files: ["docs/known_doctags"],
1662 }
1663
1664 filegroup {
1665 name: "mygroup",
1666 srcs: [":myjavalib{.doctags}"],
1667 }
1668 `)
1669
Paul Duffin36474d32021-03-12 12:19:43 +00001670 CheckSnapshot(t, result, "mysdk", "",
Paul Duffina2ae7e02020-09-11 11:55:00 +01001671 checkAndroidBpContents(`
1672// This is auto-generated. DO NOT EDIT.
1673
1674java_sdk_library_import {
1675 name: "mysdk_myjavalib@current",
1676 sdk_member_name: "myjavalib",
Paul Duffind99d9972020-09-29 16:00:55 +01001677 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001678 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001679 shared_library: true,
1680 doctag_files: ["doctags/docs/known_doctags"],
1681 public: {
1682 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001683 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001684 current_api: "sdk_library/public/myjavalib.txt",
1685 removed_api: "sdk_library/public/myjavalib-removed.txt",
1686 sdk_version: "current",
1687 },
1688}
1689
1690java_sdk_library_import {
1691 name: "myjavalib",
1692 prefer: false,
Paul Duffind99d9972020-09-29 16:00:55 +01001693 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +00001694 apex_available: ["//apex_available:platform"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001695 shared_library: true,
1696 doctag_files: ["doctags/docs/known_doctags"],
1697 public: {
1698 jars: ["sdk_library/public/myjavalib-stubs.jar"],
Paul Duffinab5ac8f2020-11-18 16:37:35 +00001699 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001700 current_api: "sdk_library/public/myjavalib.txt",
1701 removed_api: "sdk_library/public/myjavalib-removed.txt",
1702 sdk_version: "current",
1703 },
1704}
1705
1706sdk_snapshot {
1707 name: "mysdk@current",
Paul Duffind99d9972020-09-29 16:00:55 +01001708 visibility: ["//visibility:public"],
Paul Duffina2ae7e02020-09-11 11:55:00 +01001709 java_sdk_libs: ["mysdk_myjavalib@current"],
1710}
1711`),
1712 checkAllCopyRules(`
1713.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
1714.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt
1715.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt
1716docs/known_doctags -> doctags/docs/known_doctags
1717`),
1718 )
1719}