blob: 8b8e1d7018b9e38d96156245829c1e6068cac401 [file] [log] [blame]
Jiyong Parkd1063c12019-07-17 20:08:41 +09001// Copyright 2019 Google Inc. All rights reserved.
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 (
Martin Stjernholm3ff2e662020-07-15 14:38:15 +010018 "log"
19 "os"
Colin Cross0c66bc62021-07-20 09:47:41 -070020 "runtime"
Jiyong Parkd1063c12019-07-17 20:08:41 +090021 "testing"
Paul Duffinb07fa512020-03-10 22:17:04 +000022
Colin Cross0c66bc62021-07-20 09:47:41 -070023 "android/soong/android"
Paul Duffin39abf8f2021-09-24 14:58:27 +010024 "android/soong/java"
Colin Cross0c66bc62021-07-20 09:47:41 -070025
Paul Duffinb07fa512020-03-10 22:17:04 +000026 "github.com/google/blueprint/proptools"
Jiyong Parkd1063c12019-07-17 20:08:41 +090027)
28
Paul Duffin82d90432019-11-30 09:24:33 +000029// Needed in an _test.go file in this package to ensure tests run correctly, particularly in IDE.
30func TestMain(m *testing.M) {
Colin Cross0c66bc62021-07-20 09:47:41 -070031 if runtime.GOOS != "linux" {
Martin Stjernholm3ff2e662020-07-15 14:38:15 +010032 // b/145598135 - Generating host snapshots for anything other than linux is not supported.
Colin Cross0c66bc62021-07-20 09:47:41 -070033 log.Printf("Skipping as sdk snapshot generation is only supported on linux not %s", runtime.GOOS)
Martin Stjernholm3ff2e662020-07-15 14:38:15 +010034 os.Exit(0)
35 }
36
Paul Duffinabbf63d2021-03-18 01:47:31 +000037 os.Exit(m.Run())
Jiyong Parkd1063c12019-07-17 20:08:41 +090038}
39
Paul Duffin593b3c92019-12-05 14:31:48 +000040// Ensure that prebuilt modules have the same effective visibility as the source
41// modules.
42func TestSnapshotVisibility(t *testing.T) {
43 packageBp := `
44 package {
45 default_visibility: ["//other/foo"],
46 }
47
48 sdk {
49 name: "mysdk",
50 visibility: [
51 "//other/foo",
52 // This short form will be replaced with //package:__subpackages__ in the
53 // generated sdk_snapshot.
54 ":__subpackages__",
55 ],
Paul Duffin157f40f2020-09-29 16:01:08 +010056 prebuilt_visibility: [
57 "//prebuilts/mysdk",
58 ],
Paul Duffin593b3c92019-12-05 14:31:48 +000059 java_header_libs: [
60 "myjavalib",
61 "mypublicjavalib",
62 "mydefaultedjavalib",
Martin Stjernholm64aeaad2020-05-13 22:11:40 +010063 "myprivatejavalib",
Paul Duffin593b3c92019-12-05 14:31:48 +000064 ],
65 }
66
67 java_library {
68 name: "myjavalib",
69 // Uses package default visibility
70 srcs: ["Test.java"],
71 system_modules: "none",
72 sdk_version: "none",
73 }
74
Paul Duffin44885e22020-02-19 16:10:09 +000075 java_defaults {
76 name: "java-defaults",
Jooyung Han5e9013b2020-03-10 06:23:13 +090077 visibility: ["//other/bar"],
Paul Duffin44885e22020-02-19 16:10:09 +000078 }
79
Paul Duffin593b3c92019-12-05 14:31:48 +000080 java_library {
81 name: "mypublicjavalib",
Paul Duffin44885e22020-02-19 16:10:09 +000082 defaults: ["java-defaults"],
Paul Duffin593b3c92019-12-05 14:31:48 +000083 visibility: ["//visibility:public"],
84 srcs: ["Test.java"],
85 system_modules: "none",
86 sdk_version: "none",
87 }
88
89 java_defaults {
90 name: "myjavadefaults",
91 visibility: ["//other/bar"],
92 }
93
94 java_library {
95 name: "mydefaultedjavalib",
96 defaults: ["myjavadefaults"],
97 srcs: ["Test.java"],
98 system_modules: "none",
99 sdk_version: "none",
100 }
Martin Stjernholm64aeaad2020-05-13 22:11:40 +0100101
102 java_library {
103 name: "myprivatejavalib",
104 srcs: ["Test.java"],
105 visibility: ["//visibility:private"],
106 system_modules: "none",
107 sdk_version: "none",
108 }
Paul Duffin593b3c92019-12-05 14:31:48 +0000109 `
110
111 result := testSdkWithFs(t, ``,
112 map[string][]byte{
113 "package/Test.java": nil,
114 "package/Android.bp": []byte(packageBp),
115 })
116
Paul Duffin36474d32021-03-12 12:19:43 +0000117 CheckSnapshot(t, result, "mysdk", "package",
Paul Duffin593b3c92019-12-05 14:31:48 +0000118 checkAndroidBpContents(`
119// This is auto-generated. DO NOT EDIT.
120
121java_import {
Paul Duffin593b3c92019-12-05 14:31:48 +0000122 name: "myjavalib",
123 prefer: false,
Martin Stjernholm0641d182020-05-13 02:20:06 +0100124 visibility: [
125 "//other/foo",
126 "//package",
Paul Duffin157f40f2020-09-29 16:01:08 +0100127 "//prebuilts/mysdk",
Martin Stjernholm0641d182020-05-13 02:20:06 +0100128 ],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000129 apex_available: ["//apex_available:platform"],
Paul Duffin593b3c92019-12-05 14:31:48 +0000130 jars: ["java/myjavalib.jar"],
131}
132
133java_import {
Paul Duffin593b3c92019-12-05 14:31:48 +0000134 name: "mypublicjavalib",
135 prefer: false,
136 visibility: ["//visibility:public"],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000137 apex_available: ["//apex_available:platform"],
Paul Duffin593b3c92019-12-05 14:31:48 +0000138 jars: ["java/mypublicjavalib.jar"],
139}
140
141java_import {
Paul Duffin593b3c92019-12-05 14:31:48 +0000142 name: "mydefaultedjavalib",
143 prefer: false,
Martin Stjernholm0641d182020-05-13 02:20:06 +0100144 visibility: [
145 "//other/bar",
146 "//package",
Paul Duffin157f40f2020-09-29 16:01:08 +0100147 "//prebuilts/mysdk",
Martin Stjernholm0641d182020-05-13 02:20:06 +0100148 ],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000149 apex_available: ["//apex_available:platform"],
Paul Duffin593b3c92019-12-05 14:31:48 +0000150 jars: ["java/mydefaultedjavalib.jar"],
151}
152
Martin Stjernholm64aeaad2020-05-13 22:11:40 +0100153java_import {
Martin Stjernholm64aeaad2020-05-13 22:11:40 +0100154 name: "myprivatejavalib",
155 prefer: false,
Paul Duffin157f40f2020-09-29 16:01:08 +0100156 visibility: [
157 "//package",
158 "//prebuilts/mysdk",
159 ],
Martin Stjernholm1e041092020-11-03 00:11:09 +0000160 apex_available: ["//apex_available:platform"],
Martin Stjernholm64aeaad2020-05-13 22:11:40 +0100161 jars: ["java/myprivatejavalib.jar"],
162}
Paul Duffin593b3c92019-12-05 14:31:48 +0000163`))
164}
Nicolas Geoffray1228e9c2020-02-27 13:45:35 +0000165
Paul Duffin157f40f2020-09-29 16:01:08 +0100166func TestPrebuiltVisibilityProperty_IsValidated(t *testing.T) {
167 testSdkError(t, `prebuilt_visibility: cannot mix "//visibility:private" with any other visibility rules`, `
168 sdk {
169 name: "mysdk",
170 prebuilt_visibility: [
171 "//foo",
172 "//visibility:private",
173 ],
174 }
175`)
176}
177
178func TestPrebuiltVisibilityProperty_AddPrivate(t *testing.T) {
179 testSdkError(t, `prebuilt_visibility: "//visibility:private" does not widen the visibility`, `
180 sdk {
181 name: "mysdk",
182 prebuilt_visibility: [
183 "//visibility:private",
184 ],
185 java_header_libs: [
186 "myjavalib",
187 ],
188 }
189
190 java_library {
191 name: "myjavalib",
192 // Uses package default visibility
193 srcs: ["Test.java"],
194 system_modules: "none",
195 sdk_version: "none",
196 }
197`)
198}
199
Paul Duffin8edc99c2021-03-09 23:02:20 +0000200func TestSdkInstall(t *testing.T) {
Nicolas Geoffray1228e9c2020-02-27 13:45:35 +0000201 sdk := `
202 sdk {
203 name: "mysdk",
204 }
205 `
Paul Duffin8edc99c2021-03-09 23:02:20 +0000206 result := testSdkWithFs(t, sdk, nil)
Nicolas Geoffray1228e9c2020-02-27 13:45:35 +0000207
Paul Duffin36474d32021-03-12 12:19:43 +0000208 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinc6ba1822022-05-06 09:38:02 +0000209 checkAllOtherCopyRules(`
210.intermediates/mysdk/common_os/mysdk-current.info -> mysdk-current.info
211.intermediates/mysdk/common_os/mysdk-current.zip -> mysdk-current.zip
212`))
Nicolas Geoffray1228e9c2020-02-27 13:45:35 +0000213}
Paul Duffinb07fa512020-03-10 22:17:04 +0000214
215type EmbeddedPropertiesStruct struct {
Paul Duffin864e1b42020-05-06 10:23:19 +0100216 S_Embedded_Common string `android:"arch_variant"`
217 S_Embedded_Different string `android:"arch_variant"`
Paul Duffinb07fa512020-03-10 22:17:04 +0000218}
219
220type testPropertiesStruct struct {
Paul Duffin4b8b7932020-05-06 12:35:38 +0100221 name string
Paul Duffinb07fa512020-03-10 22:17:04 +0000222 private string
223 Public_Kept string `sdk:"keep"`
224 S_Common string
Paul Duffin864e1b42020-05-06 10:23:19 +0100225 S_Different string `android:"arch_variant"`
Paul Duffinb07fa512020-03-10 22:17:04 +0000226 A_Common []string
Paul Duffin864e1b42020-05-06 10:23:19 +0100227 A_Different []string `android:"arch_variant"`
Paul Duffinb07fa512020-03-10 22:17:04 +0000228 F_Common *bool
Paul Duffin864e1b42020-05-06 10:23:19 +0100229 F_Different *bool `android:"arch_variant"`
Paul Duffinb07fa512020-03-10 22:17:04 +0000230 EmbeddedPropertiesStruct
231}
232
Paul Duffinf34f6d82020-04-30 15:48:31 +0100233func (p *testPropertiesStruct) optimizableProperties() interface{} {
234 return p
235}
236
Paul Duffin4b8b7932020-05-06 12:35:38 +0100237func (p *testPropertiesStruct) String() string {
238 return p.name
239}
240
241var _ propertiesContainer = (*testPropertiesStruct)(nil)
242
Paul Duffinb07fa512020-03-10 22:17:04 +0000243func TestCommonValueOptimization(t *testing.T) {
Paul Duffin4b8b7932020-05-06 12:35:38 +0100244 common := &testPropertiesStruct{name: "common"}
Paul Duffinf34f6d82020-04-30 15:48:31 +0100245 structs := []propertiesContainer{
Paul Duffinb07fa512020-03-10 22:17:04 +0000246 &testPropertiesStruct{
Paul Duffin4b8b7932020-05-06 12:35:38 +0100247 name: "struct-0",
Paul Duffinb07fa512020-03-10 22:17:04 +0000248 private: "common",
249 Public_Kept: "common",
250 S_Common: "common",
251 S_Different: "upper",
252 A_Common: []string{"first", "second"},
253 A_Different: []string{"alpha", "beta"},
254 F_Common: proptools.BoolPtr(false),
255 F_Different: proptools.BoolPtr(false),
256 EmbeddedPropertiesStruct: EmbeddedPropertiesStruct{
257 S_Embedded_Common: "embedded_common",
258 S_Embedded_Different: "embedded_upper",
259 },
260 },
261 &testPropertiesStruct{
Paul Duffin4b8b7932020-05-06 12:35:38 +0100262 name: "struct-1",
Paul Duffinb07fa512020-03-10 22:17:04 +0000263 private: "common",
264 Public_Kept: "common",
265 S_Common: "common",
266 S_Different: "lower",
267 A_Common: []string{"first", "second"},
268 A_Different: []string{"alpha", "delta"},
269 F_Common: proptools.BoolPtr(false),
270 F_Different: proptools.BoolPtr(true),
271 EmbeddedPropertiesStruct: EmbeddedPropertiesStruct{
272 S_Embedded_Common: "embedded_common",
273 S_Embedded_Different: "embedded_lower",
274 },
275 },
276 }
277
278 extractor := newCommonValueExtractor(common)
Paul Duffinb07fa512020-03-10 22:17:04 +0000279
Paul Duffinc459f892020-04-30 18:08:29 +0100280 err := extractor.extractCommonProperties(common, structs)
Paul Duffin36474d32021-03-12 12:19:43 +0000281 android.AssertDeepEquals(t, "unexpected error", nil, err)
Paul Duffinc459f892020-04-30 18:08:29 +0100282
Paul Duffin36474d32021-03-12 12:19:43 +0000283 android.AssertDeepEquals(t, "common properties not correct",
Paul Duffinb07fa512020-03-10 22:17:04 +0000284 &testPropertiesStruct{
Paul Duffin4b8b7932020-05-06 12:35:38 +0100285 name: "common",
Paul Duffinb07fa512020-03-10 22:17:04 +0000286 private: "",
287 Public_Kept: "",
288 S_Common: "common",
289 S_Different: "",
290 A_Common: []string{"first", "second"},
291 A_Different: []string(nil),
292 F_Common: proptools.BoolPtr(false),
293 F_Different: nil,
294 EmbeddedPropertiesStruct: EmbeddedPropertiesStruct{
295 S_Embedded_Common: "embedded_common",
296 S_Embedded_Different: "",
297 },
Paul Duffin1d6c0df2020-05-06 12:50:19 +0100298 },
299 common)
Paul Duffinb07fa512020-03-10 22:17:04 +0000300
Paul Duffin36474d32021-03-12 12:19:43 +0000301 android.AssertDeepEquals(t, "updated properties[0] not correct",
Paul Duffinb07fa512020-03-10 22:17:04 +0000302 &testPropertiesStruct{
Paul Duffin4b8b7932020-05-06 12:35:38 +0100303 name: "struct-0",
Paul Duffinb07fa512020-03-10 22:17:04 +0000304 private: "common",
305 Public_Kept: "common",
306 S_Common: "",
307 S_Different: "upper",
308 A_Common: nil,
309 A_Different: []string{"alpha", "beta"},
310 F_Common: nil,
311 F_Different: proptools.BoolPtr(false),
312 EmbeddedPropertiesStruct: EmbeddedPropertiesStruct{
313 S_Embedded_Common: "",
314 S_Embedded_Different: "embedded_upper",
315 },
Paul Duffin1d6c0df2020-05-06 12:50:19 +0100316 },
317 structs[0])
Paul Duffinb07fa512020-03-10 22:17:04 +0000318
Paul Duffin36474d32021-03-12 12:19:43 +0000319 android.AssertDeepEquals(t, "updated properties[1] not correct",
Paul Duffinb07fa512020-03-10 22:17:04 +0000320 &testPropertiesStruct{
Paul Duffin4b8b7932020-05-06 12:35:38 +0100321 name: "struct-1",
Paul Duffinb07fa512020-03-10 22:17:04 +0000322 private: "common",
323 Public_Kept: "common",
324 S_Common: "",
325 S_Different: "lower",
326 A_Common: nil,
327 A_Different: []string{"alpha", "delta"},
328 F_Common: nil,
329 F_Different: proptools.BoolPtr(true),
330 EmbeddedPropertiesStruct: EmbeddedPropertiesStruct{
331 S_Embedded_Common: "",
332 S_Embedded_Different: "embedded_lower",
333 },
Paul Duffin1d6c0df2020-05-06 12:50:19 +0100334 },
335 structs[1])
Paul Duffinb07fa512020-03-10 22:17:04 +0000336}
Paul Duffin864e1b42020-05-06 10:23:19 +0100337
338func TestCommonValueOptimization_InvalidArchSpecificVariants(t *testing.T) {
339 common := &testPropertiesStruct{name: "common"}
340 structs := []propertiesContainer{
341 &testPropertiesStruct{
342 name: "struct-0",
343 S_Common: "should-be-but-is-not-common0",
344 },
345 &testPropertiesStruct{
346 name: "struct-1",
347 S_Common: "should-be-but-is-not-common1",
348 },
349 }
350
351 extractor := newCommonValueExtractor(common)
352
Paul Duffin864e1b42020-05-06 10:23:19 +0100353 err := extractor.extractCommonProperties(common, structs)
Paul Duffin36474d32021-03-12 12:19:43 +0000354 android.AssertErrorMessageEquals(t, "unexpected error", `field "S_Common" is not tagged as "arch_variant" but has arch specific properties:
Paul Duffin864e1b42020-05-06 10:23:19 +0100355 "struct-0" has value "should-be-but-is-not-common0"
356 "struct-1" has value "should-be-but-is-not-common1"`, err)
357}
Paul Duffin62035b52021-05-05 21:35:49 +0100358
359// Ensure that sdk snapshot related environment variables work correctly.
360func TestSnapshot_EnvConfiguration(t *testing.T) {
361 bp := `
362 sdk {
363 name: "mysdk",
364 java_header_libs: ["myjavalib"],
365 }
366
367 java_library {
368 name: "myjavalib",
369 srcs: ["Test.java"],
370 system_modules: "none",
371 sdk_version: "none",
372 compile_dex: true,
373 host_supported: true,
374 }
375 `
376 preparer := android.GroupFixturePreparers(
377 prepareForSdkTestWithJava,
378 android.FixtureWithRootAndroidBp(bp),
379 )
380
381 checkZipFile := func(t *testing.T, result *android.TestResult, expected string) {
382 zipRule := result.ModuleForTests("mysdk", "common_os").Rule("SnapshotZipFiles")
383 android.AssertStringEquals(t, "snapshot zip file", expected, zipRule.Output.String())
384 }
385
386 t.Run("no env variables", func(t *testing.T) {
387 result := preparer.RunTest(t)
388
389 checkZipFile(t, result, "out/soong/.intermediates/mysdk/common_os/mysdk-current.zip")
390
391 CheckSnapshot(t, result, "mysdk", "",
392 checkAndroidBpContents(`
393// This is auto-generated. DO NOT EDIT.
394
395java_import {
Paul Duffin62035b52021-05-05 21:35:49 +0100396 name: "myjavalib",
397 prefer: false,
398 visibility: ["//visibility:public"],
399 apex_available: ["//apex_available:platform"],
400 jars: ["java/myjavalib.jar"],
401}
Paul Duffin62035b52021-05-05 21:35:49 +0100402 `),
403 )
404 })
Paul Duffin64fb5262021-05-05 21:36:04 +0100405
406 t.Run("SOONG_SDK_SNAPSHOT_PREFER=true", func(t *testing.T) {
407 result := android.GroupFixturePreparers(
408 preparer,
409 android.FixtureMergeEnv(map[string]string{
410 "SOONG_SDK_SNAPSHOT_PREFER": "true",
411 }),
412 ).RunTest(t)
413
414 checkZipFile(t, result, "out/soong/.intermediates/mysdk/common_os/mysdk-current.zip")
415
416 CheckSnapshot(t, result, "mysdk", "",
417 checkAndroidBpContents(`
418// This is auto-generated. DO NOT EDIT.
419
420java_import {
Paul Duffin64fb5262021-05-05 21:36:04 +0100421 name: "myjavalib",
422 prefer: true,
423 visibility: ["//visibility:public"],
424 apex_available: ["//apex_available:platform"],
425 jars: ["java/myjavalib.jar"],
426}
Paul Duffin64fb5262021-05-05 21:36:04 +0100427 `),
428 )
429 })
Paul Duffin43f7bf02021-05-05 22:00:51 +0100430
Paul Duffinfb9a7f92021-07-06 17:18:42 +0100431 t.Run("SOONG_SDK_SNAPSHOT_USE_SOURCE_CONFIG_VAR=module:build_from_source", func(t *testing.T) {
432 result := android.GroupFixturePreparers(
433 preparer,
434 android.FixtureMergeEnv(map[string]string{
435 "SOONG_SDK_SNAPSHOT_USE_SOURCE_CONFIG_VAR": "module:build_from_source",
436 }),
437 ).RunTest(t)
438
439 checkZipFile(t, result, "out/soong/.intermediates/mysdk/common_os/mysdk-current.zip")
440
441 CheckSnapshot(t, result, "mysdk", "",
442 checkAndroidBpContents(`
443// This is auto-generated. DO NOT EDIT.
444
445java_import {
Paul Duffinfb9a7f92021-07-06 17:18:42 +0100446 name: "myjavalib",
447 prefer: false,
448 use_source_config_var: {
449 config_namespace: "module",
450 var_name: "build_from_source",
451 },
452 visibility: ["//visibility:public"],
453 apex_available: ["//apex_available:platform"],
454 jars: ["java/myjavalib.jar"],
455}
Paul Duffinfb9a7f92021-07-06 17:18:42 +0100456 `),
457 )
458 })
459
Paul Duffin39abf8f2021-09-24 14:58:27 +0100460 t.Run("SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE=S", func(t *testing.T) {
461 result := android.GroupFixturePreparers(
462 prepareForSdkTestWithJava,
463 java.PrepareForTestWithJavaDefaultModules,
464 java.PrepareForTestWithJavaSdkLibraryFiles,
465 java.FixtureWithLastReleaseApis("mysdklibrary"),
466 android.FixtureWithRootAndroidBp(`
467 sdk {
468 name: "mysdk",
469 bootclasspath_fragments: ["mybootclasspathfragment"],
470 }
471
472 bootclasspath_fragment {
473 name: "mybootclasspathfragment",
474 apex_available: ["myapex"],
475 contents: ["mysdklibrary"],
Paul Duffin9fd56472022-03-31 15:42:30 +0100476 hidden_api: {
477 split_packages: ["*"],
478 },
Paul Duffin39abf8f2021-09-24 14:58:27 +0100479 }
480
481 java_sdk_library {
482 name: "mysdklibrary",
483 srcs: ["Test.java"],
484 compile_dex: true,
Paul Duffin1938dba2022-07-26 23:53:00 +0000485 sdk_version: "S",
Paul Duffin39abf8f2021-09-24 14:58:27 +0100486 public: {enabled: true},
487 permitted_packages: ["mysdklibrary"],
488 }
489 `),
490 android.FixtureMergeEnv(map[string]string{
491 "SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S",
492 }),
493 ).RunTest(t)
494
495 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinb01ac4b2022-05-24 20:10:05 +0000496 checkAndroidBpContents(`
Paul Duffin39abf8f2021-09-24 14:58:27 +0100497// This is auto-generated. DO NOT EDIT.
498
499prebuilt_bootclasspath_fragment {
500 name: "mybootclasspathfragment",
501 prefer: false,
502 visibility: ["//visibility:public"],
503 apex_available: ["myapex"],
504 contents: ["mysdklibrary"],
505 hidden_api: {
506 annotation_flags: "hiddenapi/annotation-flags.csv",
507 metadata: "hiddenapi/metadata.csv",
508 index: "hiddenapi/index.csv",
Paul Duffin191be3a2021-08-10 16:14:16 +0100509 stub_flags: "hiddenapi/stub-flags.csv",
510 all_flags: "hiddenapi/all-flags.csv",
Paul Duffin39abf8f2021-09-24 14:58:27 +0100511 },
512}
513
514java_sdk_library_import {
515 name: "mysdklibrary",
516 prefer: false,
517 visibility: ["//visibility:public"],
518 apex_available: ["//apex_available:platform"],
519 shared_library: true,
520 compile_dex: true,
521 permitted_packages: ["mysdklibrary"],
522 public: {
523 jars: ["sdk_library/public/mysdklibrary-stubs.jar"],
524 stub_srcs: ["sdk_library/public/mysdklibrary_stub_sources"],
525 current_api: "sdk_library/public/mysdklibrary.txt",
526 removed_api: "sdk_library/public/mysdklibrary-removed.txt",
527 sdk_version: "current",
528 },
529}
530`),
531
532 checkAllCopyRules(`
533.intermediates/mybootclasspathfragment/android_common/modular-hiddenapi/annotation-flags.csv -> hiddenapi/annotation-flags.csv
534.intermediates/mybootclasspathfragment/android_common/modular-hiddenapi/metadata.csv -> hiddenapi/metadata.csv
535.intermediates/mybootclasspathfragment/android_common/modular-hiddenapi/index.csv -> hiddenapi/index.csv
Paul Duffin191be3a2021-08-10 16:14:16 +0100536.intermediates/mybootclasspathfragment/android_common/modular-hiddenapi/stub-flags.csv -> hiddenapi/stub-flags.csv
537.intermediates/mybootclasspathfragment/android_common/modular-hiddenapi/all-flags.csv -> hiddenapi/all-flags.csv
Paul Duffin39abf8f2021-09-24 14:58:27 +0100538.intermediates/mysdklibrary.stubs/android_common/javac/mysdklibrary.stubs.jar -> sdk_library/public/mysdklibrary-stubs.jar
539.intermediates/mysdklibrary.stubs.source/android_common/metalava/mysdklibrary.stubs.source_api.txt -> sdk_library/public/mysdklibrary.txt
540.intermediates/mysdklibrary.stubs.source/android_common/metalava/mysdklibrary.stubs.source_removed.txt -> sdk_library/public/mysdklibrary-removed.txt
541`),
542 )
543 })
544
Paul Duffin62035b52021-05-05 21:35:49 +0100545}