1 // 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 15 package sdk 16 17 import ( 18 "testing" 19 ) 20 21 func testSdkWithJava(t *testing.T, bp string) *testSdkResult { 22 t.Helper() 23 24 fs := map[string][]byte{ 25 "Test.java": nil, 26 "aidl/foo/bar/Test.aidl": nil, 27 28 // For java_sdk_library 29 "api/current.txt": nil, 30 "api/removed.txt": nil, 31 "api/system-current.txt": nil, 32 "api/system-removed.txt": nil, 33 "api/test-current.txt": nil, 34 "api/test-removed.txt": nil, 35 "api/module-lib-current.txt": nil, 36 "api/module-lib-removed.txt": nil, 37 "api/system-server-current.txt": nil, 38 "api/system-server-removed.txt": nil, 39 "build/soong/scripts/gen-java-current-api-files.sh": nil, 40 } 41 42 // for java_sdk_library tests 43 bp = ` 44 java_system_modules_import { 45 name: "core-current-stubs-system-modules", 46 } 47 java_system_modules_import { 48 name: "core-platform-api-stubs-system-modules", 49 } 50 java_import { 51 name: "core.platform.api.stubs", 52 } 53 java_import { 54 name: "android_stubs_current", 55 } 56 java_import { 57 name: "android_system_stubs_current", 58 } 59 java_import { 60 name: "android_test_stubs_current", 61 } 62 java_import { 63 name: "android_module_lib_stubs_current", 64 } 65 java_import { 66 name: "android_system_server_stubs_current", 67 } 68 java_import { 69 name: "core-lambda-stubs", 70 sdk_version: "none", 71 } 72 java_import { 73 name: "ext", 74 sdk_version: "none", 75 } 76 java_import { 77 name: "framework", 78 sdk_version: "none", 79 } 80 ` + bp 81 82 return testSdkWithFs(t, bp, fs) 83 } 84 85 // Contains tests for SDK members provided by the java package. 86 87 func TestBasicSdkWithJavaLibrary(t *testing.T) { 88 result := testSdkWithJava(t, ` 89 sdk { 90 name: "mysdk", 91 java_header_libs: ["sdkmember"], 92 } 93 94 sdk_snapshot { 95 name: "mysdk@1", 96 java_header_libs: ["sdkmember_mysdk_1"], 97 } 98 99 sdk_snapshot { 100 name: "mysdk@2", 101 java_header_libs: ["sdkmember_mysdk_2"], 102 } 103 104 java_library { 105 name: "sdkmember", 106 srcs: ["Test.java"], 107 system_modules: "none", 108 sdk_version: "none", 109 host_supported: true, 110 } 111 112 java_import { 113 name: "sdkmember_mysdk_1", 114 sdk_member_name: "sdkmember", 115 host_supported: true, 116 } 117 118 java_import { 119 name: "sdkmember_mysdk_2", 120 sdk_member_name: "sdkmember", 121 host_supported: true, 122 } 123 124 java_library { 125 name: "myjavalib", 126 srcs: ["Test.java"], 127 libs: ["sdkmember"], 128 system_modules: "none", 129 sdk_version: "none", 130 compile_dex: true, 131 host_supported: true, 132 apex_available: [ 133 "myapex", 134 "myapex2", 135 ], 136 } 137 138 apex { 139 name: "myapex", 140 java_libs: ["myjavalib"], 141 uses_sdks: ["mysdk@1"], 142 key: "myapex.key", 143 certificate: ":myapex.cert", 144 } 145 146 apex { 147 name: "myapex2", 148 java_libs: ["myjavalib"], 149 uses_sdks: ["mysdk@2"], 150 key: "myapex.key", 151 certificate: ":myapex.cert", 152 } 153 `) 154 155 sdkMemberV1 := result.ctx.ModuleForTests("sdkmember_mysdk_1", "android_common_myapex").Rule("combineJar").Output 156 sdkMemberV2 := result.ctx.ModuleForTests("sdkmember_mysdk_2", "android_common_myapex2").Rule("combineJar").Output 157 158 javalibForMyApex := result.ctx.ModuleForTests("myjavalib", "android_common_myapex") 159 javalibForMyApex2 := result.ctx.ModuleForTests("myjavalib", "android_common_myapex2") 160 161 // Depending on the uses_sdks value, different libs are linked 162 ensureListContains(t, pathsToStrings(javalibForMyApex.Rule("javac").Implicits), sdkMemberV1.String()) 163 ensureListContains(t, pathsToStrings(javalibForMyApex2.Rule("javac").Implicits), sdkMemberV2.String()) 164 } 165 166 func TestSnapshotWithJavaHeaderLibrary(t *testing.T) { 167 result := testSdkWithJava(t, ` 168 sdk { 169 name: "mysdk", 170 java_header_libs: ["myjavalib"], 171 } 172 173 java_library { 174 name: "myjavalib", 175 srcs: ["Test.java"], 176 aidl: { 177 export_include_dirs: ["aidl"], 178 }, 179 system_modules: "none", 180 sdk_version: "none", 181 compile_dex: true, 182 host_supported: true, 183 } 184 `) 185 186 result.CheckSnapshot("mysdk", "", 187 checkAndroidBpContents(` 188 // This is auto-generated. DO NOT EDIT. 189 190 java_import { 191 name: "mysdk_myjavalib@current", 192 sdk_member_name: "myjavalib", 193 jars: ["java/myjavalib.jar"], 194 } 195 196 java_import { 197 name: "myjavalib", 198 prefer: false, 199 jars: ["java/myjavalib.jar"], 200 } 201 202 sdk_snapshot { 203 name: "mysdk@current", 204 java_header_libs: ["mysdk_myjavalib@current"], 205 } 206 207 `), 208 checkAllCopyRules(` 209 .intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar 210 aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl 211 `), 212 ) 213 } 214 215 func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) { 216 // b/145598135 - Generating host snapshots for anything other than linux is not supported. 217 SkipIfNotLinux(t) 218 219 result := testSdkWithJava(t, ` 220 sdk { 221 name: "mysdk", 222 device_supported: false, 223 host_supported: true, 224 java_header_libs: ["myjavalib"], 225 } 226 227 java_library { 228 name: "myjavalib", 229 device_supported: false, 230 host_supported: true, 231 srcs: ["Test.java"], 232 aidl: { 233 export_include_dirs: ["aidl"], 234 }, 235 system_modules: "none", 236 sdk_version: "none", 237 compile_dex: true, 238 } 239 `) 240 241 result.CheckSnapshot("mysdk", "", 242 checkAndroidBpContents(` 243 // This is auto-generated. DO NOT EDIT. 244 245 java_import { 246 name: "mysdk_myjavalib@current", 247 sdk_member_name: "myjavalib", 248 device_supported: false, 249 host_supported: true, 250 jars: ["java/myjavalib.jar"], 251 } 252 253 java_import { 254 name: "myjavalib", 255 prefer: false, 256 device_supported: false, 257 host_supported: true, 258 jars: ["java/myjavalib.jar"], 259 } 260 261 sdk_snapshot { 262 name: "mysdk@current", 263 device_supported: false, 264 host_supported: true, 265 java_header_libs: ["mysdk_myjavalib@current"], 266 } 267 `), 268 checkAllCopyRules(` 269 .intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar 270 aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl 271 `), 272 ) 273 } 274 275 func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) { 276 // b/145598135 - Generating host snapshots for anything other than linux is not supported. 277 SkipIfNotLinux(t) 278 279 result := testSdkWithJava(t, ` 280 sdk { 281 name: "mysdk", 282 host_supported: true, 283 java_header_libs: ["myjavalib"], 284 } 285 286 java_library { 287 name: "myjavalib", 288 host_supported: true, 289 srcs: ["Test.java"], 290 system_modules: "none", 291 sdk_version: "none", 292 compile_dex: true, 293 } 294 `) 295 296 result.CheckSnapshot("mysdk", "", 297 checkAndroidBpContents(` 298 // This is auto-generated. DO NOT EDIT. 299 300 java_import { 301 name: "mysdk_myjavalib@current", 302 sdk_member_name: "myjavalib", 303 host_supported: true, 304 target: { 305 android: { 306 jars: ["java/android/myjavalib.jar"], 307 }, 308 linux_glibc: { 309 jars: ["java/linux_glibc/myjavalib.jar"], 310 }, 311 }, 312 } 313 314 java_import { 315 name: "myjavalib", 316 prefer: false, 317 host_supported: true, 318 target: { 319 android: { 320 jars: ["java/android/myjavalib.jar"], 321 }, 322 linux_glibc: { 323 jars: ["java/linux_glibc/myjavalib.jar"], 324 }, 325 }, 326 } 327 328 sdk_snapshot { 329 name: "mysdk@current", 330 host_supported: true, 331 java_header_libs: ["mysdk_myjavalib@current"], 332 } 333 `), 334 checkAllCopyRules(` 335 .intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar 336 .intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar 337 `), 338 ) 339 } 340 341 func TestSnapshotWithJavaImplLibrary(t *testing.T) { 342 result := testSdkWithJava(t, ` 343 module_exports { 344 name: "myexports", 345 java_libs: ["myjavalib"], 346 } 347 348 java_library { 349 name: "myjavalib", 350 srcs: ["Test.java"], 351 aidl: { 352 export_include_dirs: ["aidl"], 353 }, 354 system_modules: "none", 355 sdk_version: "none", 356 compile_dex: true, 357 host_supported: true, 358 } 359 `) 360 361 result.CheckSnapshot("myexports", "", 362 checkAndroidBpContents(` 363 // This is auto-generated. DO NOT EDIT. 364 365 java_import { 366 name: "myexports_myjavalib@current", 367 sdk_member_name: "myjavalib", 368 jars: ["java/myjavalib.jar"], 369 } 370 371 java_import { 372 name: "myjavalib", 373 prefer: false, 374 jars: ["java/myjavalib.jar"], 375 } 376 377 module_exports_snapshot { 378 name: "myexports@current", 379 java_libs: ["myexports_myjavalib@current"], 380 } 381 382 `), 383 checkAllCopyRules(` 384 .intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/myjavalib.jar 385 aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl 386 `), 387 ) 388 } 389 390 func TestHostSnapshotWithJavaImplLibrary(t *testing.T) { 391 // b/145598135 - Generating host snapshots for anything other than linux is not supported. 392 SkipIfNotLinux(t) 393 394 result := testSdkWithJava(t, ` 395 module_exports { 396 name: "myexports", 397 device_supported: false, 398 host_supported: true, 399 java_libs: ["myjavalib"], 400 } 401 402 java_library { 403 name: "myjavalib", 404 device_supported: false, 405 host_supported: true, 406 srcs: ["Test.java"], 407 aidl: { 408 export_include_dirs: ["aidl"], 409 }, 410 system_modules: "none", 411 sdk_version: "none", 412 compile_dex: true, 413 } 414 `) 415 416 result.CheckSnapshot("myexports", "", 417 checkAndroidBpContents(` 418 // This is auto-generated. DO NOT EDIT. 419 420 java_import { 421 name: "myexports_myjavalib@current", 422 sdk_member_name: "myjavalib", 423 device_supported: false, 424 host_supported: true, 425 jars: ["java/myjavalib.jar"], 426 } 427 428 java_import { 429 name: "myjavalib", 430 prefer: false, 431 device_supported: false, 432 host_supported: true, 433 jars: ["java/myjavalib.jar"], 434 } 435 436 module_exports_snapshot { 437 name: "myexports@current", 438 device_supported: false, 439 host_supported: true, 440 java_libs: ["myexports_myjavalib@current"], 441 } 442 `), 443 checkAllCopyRules(` 444 .intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar 445 aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl 446 `), 447 ) 448 } 449 450 func TestSnapshotWithJavaTest(t *testing.T) { 451 result := testSdkWithJava(t, ` 452 module_exports { 453 name: "myexports", 454 java_tests: ["myjavatests"], 455 } 456 457 java_test { 458 name: "myjavatests", 459 srcs: ["Test.java"], 460 system_modules: "none", 461 sdk_version: "none", 462 compile_dex: true, 463 host_supported: true, 464 } 465 `) 466 467 result.CheckSnapshot("myexports", "", 468 checkAndroidBpContents(` 469 // This is auto-generated. DO NOT EDIT. 470 471 java_test_import { 472 name: "myexports_myjavatests@current", 473 sdk_member_name: "myjavatests", 474 jars: ["java/myjavatests.jar"], 475 test_config: "java/myjavatests-AndroidTest.xml", 476 } 477 478 java_test_import { 479 name: "myjavatests", 480 prefer: false, 481 jars: ["java/myjavatests.jar"], 482 test_config: "java/myjavatests-AndroidTest.xml", 483 } 484 485 module_exports_snapshot { 486 name: "myexports@current", 487 java_tests: ["myexports_myjavatests@current"], 488 } 489 `), 490 checkAllCopyRules(` 491 .intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar 492 .intermediates/myjavatests/android_common/myjavatests.config -> java/myjavatests-AndroidTest.xml 493 `), 494 ) 495 } 496 497 func TestHostSnapshotWithJavaTest(t *testing.T) { 498 // b/145598135 - Generating host snapshots for anything other than linux is not supported. 499 SkipIfNotLinux(t) 500 501 result := testSdkWithJava(t, ` 502 module_exports { 503 name: "myexports", 504 device_supported: false, 505 host_supported: true, 506 java_tests: ["myjavatests"], 507 } 508 509 java_test { 510 name: "myjavatests", 511 device_supported: false, 512 host_supported: true, 513 srcs: ["Test.java"], 514 system_modules: "none", 515 sdk_version: "none", 516 compile_dex: true, 517 } 518 `) 519 520 result.CheckSnapshot("myexports", "", 521 checkAndroidBpContents(` 522 // This is auto-generated. DO NOT EDIT. 523 524 java_test_import { 525 name: "myexports_myjavatests@current", 526 sdk_member_name: "myjavatests", 527 device_supported: false, 528 host_supported: true, 529 jars: ["java/myjavatests.jar"], 530 test_config: "java/myjavatests-AndroidTest.xml", 531 } 532 533 java_test_import { 534 name: "myjavatests", 535 prefer: false, 536 device_supported: false, 537 host_supported: true, 538 jars: ["java/myjavatests.jar"], 539 test_config: "java/myjavatests-AndroidTest.xml", 540 } 541 542 module_exports_snapshot { 543 name: "myexports@current", 544 device_supported: false, 545 host_supported: true, 546 java_tests: ["myexports_myjavatests@current"], 547 } 548 `), 549 checkAllCopyRules(` 550 .intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar 551 .intermediates/myjavatests/linux_glibc_common/myjavatests.config -> java/myjavatests-AndroidTest.xml 552 `), 553 ) 554 } 555 556 func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult { 557 t.Helper() 558 559 fs := map[string][]byte{ 560 "foo/bar/Foo.java": nil, 561 "stubs-sources/foo/bar/Foo.java": nil, 562 } 563 return testSdkWithFs(t, bp, fs) 564 } 565 566 // Note: This test does not verify that a droidstubs can be referenced, either 567 // directly or indirectly from an APEX as droidstubs can never be a part of an 568 // apex. 569 func TestBasicSdkWithDroidstubs(t *testing.T) { 570 testSdkWithDroidstubs(t, ` 571 sdk { 572 name: "mysdk", 573 stubs_sources: ["mystub"], 574 } 575 sdk_snapshot { 576 name: "mysdk@10", 577 stubs_sources: ["mystub_mysdk@10"], 578 } 579 prebuilt_stubs_sources { 580 name: "mystub_mysdk@10", 581 sdk_member_name: "mystub", 582 srcs: ["stubs-sources/foo/bar/Foo.java"], 583 } 584 droidstubs { 585 name: "mystub", 586 srcs: ["foo/bar/Foo.java"], 587 sdk_version: "none", 588 system_modules: "none", 589 } 590 java_library { 591 name: "myjavalib", 592 srcs: [":mystub"], 593 sdk_version: "none", 594 system_modules: "none", 595 } 596 `) 597 } 598 599 func TestSnapshotWithDroidstubs(t *testing.T) { 600 result := testSdkWithDroidstubs(t, ` 601 module_exports { 602 name: "myexports", 603 stubs_sources: ["myjavaapistubs"], 604 } 605 606 droidstubs { 607 name: "myjavaapistubs", 608 srcs: ["foo/bar/Foo.java"], 609 system_modules: "none", 610 sdk_version: "none", 611 } 612 `) 613 614 result.CheckSnapshot("myexports", "", 615 checkAndroidBpContents(` 616 // This is auto-generated. DO NOT EDIT. 617 618 prebuilt_stubs_sources { 619 name: "myexports_myjavaapistubs@current", 620 sdk_member_name: "myjavaapistubs", 621 srcs: ["java/myjavaapistubs_stubs_sources"], 622 } 623 624 prebuilt_stubs_sources { 625 name: "myjavaapistubs", 626 prefer: false, 627 srcs: ["java/myjavaapistubs_stubs_sources"], 628 } 629 630 module_exports_snapshot { 631 name: "myexports@current", 632 stubs_sources: ["myexports_myjavaapistubs@current"], 633 } 634 635 `), 636 checkAllCopyRules(""), 637 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"), 638 ) 639 } 640 641 func TestHostSnapshotWithDroidstubs(t *testing.T) { 642 // b/145598135 - Generating host snapshots for anything other than linux is not supported. 643 SkipIfNotLinux(t) 644 645 result := testSdkWithDroidstubs(t, ` 646 module_exports { 647 name: "myexports", 648 device_supported: false, 649 host_supported: true, 650 stubs_sources: ["myjavaapistubs"], 651 } 652 653 droidstubs { 654 name: "myjavaapistubs", 655 device_supported: false, 656 host_supported: true, 657 srcs: ["foo/bar/Foo.java"], 658 system_modules: "none", 659 sdk_version: "none", 660 } 661 `) 662 663 result.CheckSnapshot("myexports", "", 664 checkAndroidBpContents(` 665 // This is auto-generated. DO NOT EDIT. 666 667 prebuilt_stubs_sources { 668 name: "myexports_myjavaapistubs@current", 669 sdk_member_name: "myjavaapistubs", 670 device_supported: false, 671 host_supported: true, 672 srcs: ["java/myjavaapistubs_stubs_sources"], 673 } 674 675 prebuilt_stubs_sources { 676 name: "myjavaapistubs", 677 prefer: false, 678 device_supported: false, 679 host_supported: true, 680 srcs: ["java/myjavaapistubs_stubs_sources"], 681 } 682 683 module_exports_snapshot { 684 name: "myexports@current", 685 device_supported: false, 686 host_supported: true, 687 stubs_sources: ["myexports_myjavaapistubs@current"], 688 } 689 `), 690 checkAllCopyRules(""), 691 checkMergeZips(".intermediates/myexports/common_os/tmp/java/myjavaapistubs_stubs_sources.zip"), 692 ) 693 } 694 695 func TestSnapshotWithJavaSystemModules(t *testing.T) { 696 result := testSdkWithJava(t, ` 697 sdk { 698 name: "mysdk", 699 java_header_libs: ["exported-system-module"], 700 java_system_modules: ["my-system-modules"], 701 } 702 703 java_system_modules { 704 name: "my-system-modules", 705 libs: ["system-module", "exported-system-module"], 706 } 707 708 java_library { 709 name: "system-module", 710 srcs: ["Test.java"], 711 sdk_version: "none", 712 system_modules: "none", 713 } 714 715 java_library { 716 name: "exported-system-module", 717 srcs: ["Test.java"], 718 sdk_version: "none", 719 system_modules: "none", 720 } 721 `) 722 723 result.CheckSnapshot("mysdk", "", 724 checkAndroidBpContents(` 725 // This is auto-generated. DO NOT EDIT. 726 727 java_import { 728 name: "mysdk_exported-system-module@current", 729 sdk_member_name: "exported-system-module", 730 jars: ["java/exported-system-module.jar"], 731 } 732 733 java_import { 734 name: "exported-system-module", 735 prefer: false, 736 jars: ["java/exported-system-module.jar"], 737 } 738 739 java_import { 740 name: "mysdk_system-module@current", 741 sdk_member_name: "system-module", 742 visibility: ["//visibility:private"], 743 jars: ["java/system-module.jar"], 744 } 745 746 java_import { 747 name: "mysdk_system-module", 748 prefer: false, 749 visibility: ["//visibility:private"], 750 jars: ["java/system-module.jar"], 751 } 752 753 java_system_modules_import { 754 name: "mysdk_my-system-modules@current", 755 sdk_member_name: "my-system-modules", 756 libs: [ 757 "mysdk_system-module@current", 758 "mysdk_exported-system-module@current", 759 ], 760 } 761 762 java_system_modules_import { 763 name: "my-system-modules", 764 prefer: false, 765 libs: [ 766 "mysdk_system-module", 767 "exported-system-module", 768 ], 769 } 770 771 sdk_snapshot { 772 name: "mysdk@current", 773 java_header_libs: ["mysdk_exported-system-module@current"], 774 java_system_modules: ["mysdk_my-system-modules@current"], 775 } 776 `), 777 checkAllCopyRules(` 778 .intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar 779 .intermediates/system-module/android_common/turbine-combined/system-module.jar -> java/system-module.jar 780 `), 781 ) 782 } 783 784 func TestHostSnapshotWithJavaSystemModules(t *testing.T) { 785 // b/145598135 - Generating host snapshots for anything other than linux is not supported. 786 SkipIfNotLinux(t) 787 788 result := testSdkWithJava(t, ` 789 sdk { 790 name: "mysdk", 791 device_supported: false, 792 host_supported: true, 793 java_system_modules: ["my-system-modules"], 794 } 795 796 java_system_modules { 797 name: "my-system-modules", 798 device_supported: false, 799 host_supported: true, 800 libs: ["system-module"], 801 } 802 803 java_library { 804 name: "system-module", 805 device_supported: false, 806 host_supported: true, 807 srcs: ["Test.java"], 808 sdk_version: "none", 809 system_modules: "none", 810 } 811 `) 812 813 result.CheckSnapshot("mysdk", "", 814 checkAndroidBpContents(` 815 // This is auto-generated. DO NOT EDIT. 816 817 java_import { 818 name: "mysdk_system-module@current", 819 sdk_member_name: "system-module", 820 visibility: ["//visibility:private"], 821 device_supported: false, 822 host_supported: true, 823 jars: ["java/system-module.jar"], 824 } 825 826 java_import { 827 name: "mysdk_system-module", 828 prefer: false, 829 visibility: ["//visibility:private"], 830 device_supported: false, 831 host_supported: true, 832 jars: ["java/system-module.jar"], 833 } 834 835 java_system_modules_import { 836 name: "mysdk_my-system-modules@current", 837 sdk_member_name: "my-system-modules", 838 device_supported: false, 839 host_supported: true, 840 libs: ["mysdk_system-module@current"], 841 } 842 843 java_system_modules_import { 844 name: "my-system-modules", 845 prefer: false, 846 device_supported: false, 847 host_supported: true, 848 libs: ["mysdk_system-module"], 849 } 850 851 sdk_snapshot { 852 name: "mysdk@current", 853 device_supported: false, 854 host_supported: true, 855 java_system_modules: ["mysdk_my-system-modules@current"], 856 } 857 `), 858 checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"), 859 ) 860 } 861 862 func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) { 863 // b/145598135 - Generating host snapshots for anything other than linux is not supported. 864 SkipIfNotLinux(t) 865 866 result := testSdkWithJava(t, ` 867 module_exports { 868 name: "myexports", 869 host_supported: true, 870 java_libs: ["myjavalib"], 871 target: { 872 android: { 873 java_header_libs: ["androidjavalib"], 874 }, 875 host: { 876 java_header_libs: ["hostjavalib"], 877 }, 878 }, 879 } 880 881 java_library { 882 name: "myjavalib", 883 host_supported: true, 884 srcs: ["Test.java"], 885 system_modules: "none", 886 sdk_version: "none", 887 } 888 889 java_library { 890 name: "androidjavalib", 891 srcs: ["Test.java"], 892 system_modules: "none", 893 sdk_version: "none", 894 } 895 896 java_library_host { 897 name: "hostjavalib", 898 srcs: ["Test.java"], 899 } 900 `) 901 902 result.CheckSnapshot("myexports", "", 903 checkAndroidBpContents(` 904 // This is auto-generated. DO NOT EDIT. 905 906 java_import { 907 name: "myexports_hostjavalib@current", 908 sdk_member_name: "hostjavalib", 909 device_supported: false, 910 host_supported: true, 911 jars: ["java/hostjavalib.jar"], 912 } 913 914 java_import { 915 name: "hostjavalib", 916 prefer: false, 917 device_supported: false, 918 host_supported: true, 919 jars: ["java/hostjavalib.jar"], 920 } 921 922 java_import { 923 name: "myexports_androidjavalib@current", 924 sdk_member_name: "androidjavalib", 925 jars: ["java/androidjavalib.jar"], 926 } 927 928 java_import { 929 name: "androidjavalib", 930 prefer: false, 931 jars: ["java/androidjavalib.jar"], 932 } 933 934 java_import { 935 name: "myexports_myjavalib@current", 936 sdk_member_name: "myjavalib", 937 host_supported: true, 938 target: { 939 android: { 940 jars: ["java/android/myjavalib.jar"], 941 }, 942 linux_glibc: { 943 jars: ["java/linux_glibc/myjavalib.jar"], 944 }, 945 }, 946 } 947 948 java_import { 949 name: "myjavalib", 950 prefer: false, 951 host_supported: true, 952 target: { 953 android: { 954 jars: ["java/android/myjavalib.jar"], 955 }, 956 linux_glibc: { 957 jars: ["java/linux_glibc/myjavalib.jar"], 958 }, 959 }, 960 } 961 962 module_exports_snapshot { 963 name: "myexports@current", 964 host_supported: true, 965 java_libs: ["myexports_myjavalib@current"], 966 target: { 967 android: { 968 java_header_libs: ["myexports_androidjavalib@current"], 969 }, 970 linux_glibc: { 971 java_header_libs: ["myexports_hostjavalib@current"], 972 }, 973 }, 974 } 975 `), 976 checkAllCopyRules(` 977 .intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar 978 .intermediates/androidjavalib/android_common/turbine-combined/androidjavalib.jar -> java/androidjavalib.jar 979 .intermediates/myjavalib/android_common/javac/myjavalib.jar -> java/android/myjavalib.jar 980 .intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/linux_glibc/myjavalib.jar 981 `), 982 ) 983 } 984 985 func TestSnapshotWithJavaSdkLibrary(t *testing.T) { 986 result := testSdkWithJava(t, ` 987 sdk { 988 name: "mysdk", 989 java_sdk_libs: ["myjavalib"], 990 } 991 992 java_sdk_library { 993 name: "myjavalib", 994 apex_available: ["//apex_available:anyapex"], 995 srcs: ["Test.java"], 996 sdk_version: "current", 997 shared_library: false, 998 stubs_library_visibility: ["//other"], 999 stubs_source_visibility: ["//another"], 1000 } 1001 `) 1002 1003 result.CheckSnapshot("mysdk", "", 1004 checkAndroidBpContents(` 1005 // This is auto-generated. DO NOT EDIT. 1006 1007 java_sdk_library_import { 1008 name: "mysdk_myjavalib@current", 1009 sdk_member_name: "myjavalib", 1010 apex_available: ["//apex_available:anyapex"], 1011 shared_library: false, 1012 public: { 1013 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1014 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1015 current_api: "sdk_library/public/myjavalib.txt", 1016 removed_api: "sdk_library/public/myjavalib-removed.txt", 1017 sdk_version: "current", 1018 }, 1019 system: { 1020 jars: ["sdk_library/system/myjavalib-stubs.jar"], 1021 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], 1022 current_api: "sdk_library/system/myjavalib.txt", 1023 removed_api: "sdk_library/system/myjavalib-removed.txt", 1024 sdk_version: "system_current", 1025 }, 1026 test: { 1027 jars: ["sdk_library/test/myjavalib-stubs.jar"], 1028 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"], 1029 current_api: "sdk_library/test/myjavalib.txt", 1030 removed_api: "sdk_library/test/myjavalib-removed.txt", 1031 sdk_version: "test_current", 1032 }, 1033 } 1034 1035 java_sdk_library_import { 1036 name: "myjavalib", 1037 prefer: false, 1038 apex_available: ["//apex_available:anyapex"], 1039 shared_library: false, 1040 public: { 1041 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1042 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1043 current_api: "sdk_library/public/myjavalib.txt", 1044 removed_api: "sdk_library/public/myjavalib-removed.txt", 1045 sdk_version: "current", 1046 }, 1047 system: { 1048 jars: ["sdk_library/system/myjavalib-stubs.jar"], 1049 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], 1050 current_api: "sdk_library/system/myjavalib.txt", 1051 removed_api: "sdk_library/system/myjavalib-removed.txt", 1052 sdk_version: "system_current", 1053 }, 1054 test: { 1055 jars: ["sdk_library/test/myjavalib-stubs.jar"], 1056 stub_srcs: ["sdk_library/test/myjavalib_stub_sources"], 1057 current_api: "sdk_library/test/myjavalib.txt", 1058 removed_api: "sdk_library/test/myjavalib-removed.txt", 1059 sdk_version: "test_current", 1060 }, 1061 } 1062 1063 sdk_snapshot { 1064 name: "mysdk@current", 1065 java_sdk_libs: ["mysdk_myjavalib@current"], 1066 } 1067 `), 1068 checkAllCopyRules(` 1069 .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar 1070 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt 1071 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt 1072 .intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar 1073 .intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt 1074 .intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt 1075 .intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar 1076 .intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt 1077 .intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_removed.txt -> sdk_library/test/myjavalib-removed.txt 1078 `), 1079 checkMergeZips( 1080 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", 1081 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip", 1082 ".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip"), 1083 ) 1084 } 1085 1086 func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) { 1087 result := testSdkWithJava(t, ` 1088 sdk { 1089 name: "mysdk", 1090 java_sdk_libs: ["myjavalib"], 1091 } 1092 1093 java_sdk_library { 1094 name: "myjavalib", 1095 srcs: ["Test.java"], 1096 sdk_version: "none", 1097 system_modules: "none", 1098 } 1099 `) 1100 1101 result.CheckSnapshot("mysdk", "", 1102 checkAndroidBpContents(` 1103 // This is auto-generated. DO NOT EDIT. 1104 1105 java_sdk_library_import { 1106 name: "mysdk_myjavalib@current", 1107 sdk_member_name: "myjavalib", 1108 shared_library: true, 1109 public: { 1110 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1111 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1112 current_api: "sdk_library/public/myjavalib.txt", 1113 removed_api: "sdk_library/public/myjavalib-removed.txt", 1114 sdk_version: "none", 1115 }, 1116 } 1117 1118 java_sdk_library_import { 1119 name: "myjavalib", 1120 prefer: false, 1121 shared_library: true, 1122 public: { 1123 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1124 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1125 current_api: "sdk_library/public/myjavalib.txt", 1126 removed_api: "sdk_library/public/myjavalib-removed.txt", 1127 sdk_version: "none", 1128 }, 1129 } 1130 1131 sdk_snapshot { 1132 name: "mysdk@current", 1133 java_sdk_libs: ["mysdk_myjavalib@current"], 1134 } 1135 `), 1136 checkAllCopyRules(` 1137 .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar 1138 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt 1139 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt 1140 `), 1141 checkMergeZips( 1142 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", 1143 ), 1144 ) 1145 } 1146 1147 func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) { 1148 result := testSdkWithJava(t, ` 1149 sdk { 1150 name: "mysdk", 1151 java_sdk_libs: ["myjavalib"], 1152 } 1153 1154 java_sdk_library { 1155 name: "myjavalib", 1156 srcs: ["Test.java"], 1157 sdk_version: "module_current", 1158 public: { 1159 enabled: true, 1160 sdk_version: "module_current", 1161 }, 1162 } 1163 `) 1164 1165 result.CheckSnapshot("mysdk", "", 1166 checkAndroidBpContents(` 1167 // This is auto-generated. DO NOT EDIT. 1168 1169 java_sdk_library_import { 1170 name: "mysdk_myjavalib@current", 1171 sdk_member_name: "myjavalib", 1172 shared_library: true, 1173 public: { 1174 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1175 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1176 current_api: "sdk_library/public/myjavalib.txt", 1177 removed_api: "sdk_library/public/myjavalib-removed.txt", 1178 sdk_version: "module_current", 1179 }, 1180 } 1181 1182 java_sdk_library_import { 1183 name: "myjavalib", 1184 prefer: false, 1185 shared_library: true, 1186 public: { 1187 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1188 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1189 current_api: "sdk_library/public/myjavalib.txt", 1190 removed_api: "sdk_library/public/myjavalib-removed.txt", 1191 sdk_version: "module_current", 1192 }, 1193 } 1194 1195 sdk_snapshot { 1196 name: "mysdk@current", 1197 java_sdk_libs: ["mysdk_myjavalib@current"], 1198 } 1199 `), 1200 checkAllCopyRules(` 1201 .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar 1202 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt 1203 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt 1204 `), 1205 checkMergeZips( 1206 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", 1207 ), 1208 ) 1209 } 1210 1211 func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) { 1212 result := testSdkWithJava(t, ` 1213 sdk { 1214 name: "mysdk", 1215 java_sdk_libs: ["myjavalib"], 1216 } 1217 1218 java_sdk_library { 1219 name: "myjavalib", 1220 apex_available: ["//apex_available:anyapex"], 1221 srcs: ["Test.java"], 1222 sdk_version: "current", 1223 public: { 1224 enabled: true, 1225 }, 1226 system: { 1227 enabled: true, 1228 }, 1229 } 1230 `) 1231 1232 result.CheckSnapshot("mysdk", "", 1233 checkAndroidBpContents(` 1234 // This is auto-generated. DO NOT EDIT. 1235 1236 java_sdk_library_import { 1237 name: "mysdk_myjavalib@current", 1238 sdk_member_name: "myjavalib", 1239 apex_available: ["//apex_available:anyapex"], 1240 shared_library: true, 1241 public: { 1242 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1243 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1244 current_api: "sdk_library/public/myjavalib.txt", 1245 removed_api: "sdk_library/public/myjavalib-removed.txt", 1246 sdk_version: "current", 1247 }, 1248 system: { 1249 jars: ["sdk_library/system/myjavalib-stubs.jar"], 1250 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], 1251 current_api: "sdk_library/system/myjavalib.txt", 1252 removed_api: "sdk_library/system/myjavalib-removed.txt", 1253 sdk_version: "system_current", 1254 }, 1255 } 1256 1257 java_sdk_library_import { 1258 name: "myjavalib", 1259 prefer: false, 1260 apex_available: ["//apex_available:anyapex"], 1261 shared_library: true, 1262 public: { 1263 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1264 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1265 current_api: "sdk_library/public/myjavalib.txt", 1266 removed_api: "sdk_library/public/myjavalib-removed.txt", 1267 sdk_version: "current", 1268 }, 1269 system: { 1270 jars: ["sdk_library/system/myjavalib-stubs.jar"], 1271 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], 1272 current_api: "sdk_library/system/myjavalib.txt", 1273 removed_api: "sdk_library/system/myjavalib-removed.txt", 1274 sdk_version: "system_current", 1275 }, 1276 } 1277 1278 sdk_snapshot { 1279 name: "mysdk@current", 1280 java_sdk_libs: ["mysdk_myjavalib@current"], 1281 } 1282 `), 1283 checkAllCopyRules(` 1284 .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar 1285 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt 1286 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt 1287 .intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar 1288 .intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt 1289 .intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt 1290 `), 1291 checkMergeZips( 1292 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", 1293 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip", 1294 ), 1295 ) 1296 } 1297 1298 func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) { 1299 result := testSdkWithJava(t, ` 1300 sdk { 1301 name: "mysdk", 1302 java_sdk_libs: ["myjavalib"], 1303 } 1304 1305 java_sdk_library { 1306 name: "myjavalib", 1307 apex_available: ["//apex_available:anyapex"], 1308 srcs: ["Test.java"], 1309 sdk_version: "current", 1310 public: { 1311 enabled: true, 1312 }, 1313 system: { 1314 enabled: true, 1315 }, 1316 module_lib: { 1317 enabled: true, 1318 }, 1319 } 1320 `) 1321 1322 result.CheckSnapshot("mysdk", "", 1323 checkAndroidBpContents(` 1324 // This is auto-generated. DO NOT EDIT. 1325 1326 java_sdk_library_import { 1327 name: "mysdk_myjavalib@current", 1328 sdk_member_name: "myjavalib", 1329 apex_available: ["//apex_available:anyapex"], 1330 shared_library: true, 1331 public: { 1332 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1333 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1334 current_api: "sdk_library/public/myjavalib.txt", 1335 removed_api: "sdk_library/public/myjavalib-removed.txt", 1336 sdk_version: "current", 1337 }, 1338 system: { 1339 jars: ["sdk_library/system/myjavalib-stubs.jar"], 1340 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], 1341 current_api: "sdk_library/system/myjavalib.txt", 1342 removed_api: "sdk_library/system/myjavalib-removed.txt", 1343 sdk_version: "system_current", 1344 }, 1345 module_lib: { 1346 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"], 1347 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"], 1348 current_api: "sdk_library/module-lib/myjavalib.txt", 1349 removed_api: "sdk_library/module-lib/myjavalib-removed.txt", 1350 sdk_version: "module_current", 1351 }, 1352 } 1353 1354 java_sdk_library_import { 1355 name: "myjavalib", 1356 prefer: false, 1357 apex_available: ["//apex_available:anyapex"], 1358 shared_library: true, 1359 public: { 1360 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1361 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1362 current_api: "sdk_library/public/myjavalib.txt", 1363 removed_api: "sdk_library/public/myjavalib-removed.txt", 1364 sdk_version: "current", 1365 }, 1366 system: { 1367 jars: ["sdk_library/system/myjavalib-stubs.jar"], 1368 stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], 1369 current_api: "sdk_library/system/myjavalib.txt", 1370 removed_api: "sdk_library/system/myjavalib-removed.txt", 1371 sdk_version: "system_current", 1372 }, 1373 module_lib: { 1374 jars: ["sdk_library/module-lib/myjavalib-stubs.jar"], 1375 stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"], 1376 current_api: "sdk_library/module-lib/myjavalib.txt", 1377 removed_api: "sdk_library/module-lib/myjavalib-removed.txt", 1378 sdk_version: "module_current", 1379 }, 1380 } 1381 1382 sdk_snapshot { 1383 name: "mysdk@current", 1384 java_sdk_libs: ["mysdk_myjavalib@current"], 1385 } 1386 `), 1387 checkAllCopyRules(` 1388 .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar 1389 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt 1390 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt 1391 .intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar 1392 .intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt 1393 .intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_removed.txt -> sdk_library/system/myjavalib-removed.txt 1394 .intermediates/myjavalib.stubs.module_lib/android_common/javac/myjavalib.stubs.module_lib.jar -> sdk_library/module-lib/myjavalib-stubs.jar 1395 .intermediates/myjavalib.api.module_lib/android_common/myjavalib.api.module_lib_api.txt -> sdk_library/module-lib/myjavalib.txt 1396 .intermediates/myjavalib.api.module_lib/android_common/myjavalib.api.module_lib_removed.txt -> sdk_library/module-lib/myjavalib-removed.txt 1397 `), 1398 checkMergeZips( 1399 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", 1400 ".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip", 1401 ".intermediates/mysdk/common_os/tmp/sdk_library/module-lib/myjavalib_stub_sources.zip", 1402 ), 1403 ) 1404 } 1405 1406 func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) { 1407 result := testSdkWithJava(t, ` 1408 sdk { 1409 name: "mysdk", 1410 java_sdk_libs: ["myjavalib"], 1411 } 1412 1413 java_sdk_library { 1414 name: "myjavalib", 1415 apex_available: ["//apex_available:anyapex"], 1416 srcs: ["Test.java"], 1417 sdk_version: "current", 1418 public: { 1419 enabled: true, 1420 }, 1421 system_server: { 1422 enabled: true, 1423 }, 1424 } 1425 `) 1426 1427 result.CheckSnapshot("mysdk", "", 1428 checkAndroidBpContents(` 1429 // This is auto-generated. DO NOT EDIT. 1430 1431 java_sdk_library_import { 1432 name: "mysdk_myjavalib@current", 1433 sdk_member_name: "myjavalib", 1434 apex_available: ["//apex_available:anyapex"], 1435 shared_library: true, 1436 public: { 1437 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1438 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1439 current_api: "sdk_library/public/myjavalib.txt", 1440 removed_api: "sdk_library/public/myjavalib-removed.txt", 1441 sdk_version: "current", 1442 }, 1443 system_server: { 1444 jars: ["sdk_library/system-server/myjavalib-stubs.jar"], 1445 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"], 1446 current_api: "sdk_library/system-server/myjavalib.txt", 1447 removed_api: "sdk_library/system-server/myjavalib-removed.txt", 1448 sdk_version: "system_server_current", 1449 }, 1450 } 1451 1452 java_sdk_library_import { 1453 name: "myjavalib", 1454 prefer: false, 1455 apex_available: ["//apex_available:anyapex"], 1456 shared_library: true, 1457 public: { 1458 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1459 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1460 current_api: "sdk_library/public/myjavalib.txt", 1461 removed_api: "sdk_library/public/myjavalib-removed.txt", 1462 sdk_version: "current", 1463 }, 1464 system_server: { 1465 jars: ["sdk_library/system-server/myjavalib-stubs.jar"], 1466 stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"], 1467 current_api: "sdk_library/system-server/myjavalib.txt", 1468 removed_api: "sdk_library/system-server/myjavalib-removed.txt", 1469 sdk_version: "system_server_current", 1470 }, 1471 } 1472 1473 sdk_snapshot { 1474 name: "mysdk@current", 1475 java_sdk_libs: ["mysdk_myjavalib@current"], 1476 } 1477 `), 1478 checkAllCopyRules(` 1479 .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar 1480 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt 1481 .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_removed.txt -> sdk_library/public/myjavalib-removed.txt 1482 .intermediates/myjavalib.stubs.system_server/android_common/javac/myjavalib.stubs.system_server.jar -> sdk_library/system-server/myjavalib-stubs.jar 1483 .intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_api.txt -> sdk_library/system-server/myjavalib.txt 1484 .intermediates/myjavalib.stubs.source.system_server/android_common/myjavalib.stubs.source.system_server_removed.txt -> sdk_library/system-server/myjavalib-removed.txt 1485 `), 1486 checkMergeZips( 1487 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", 1488 ".intermediates/mysdk/common_os/tmp/sdk_library/system-server/myjavalib_stub_sources.zip", 1489 ), 1490 ) 1491 } 1492 1493 func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) { 1494 result := testSdkWithJava(t, ` 1495 sdk { 1496 name: "mysdk", 1497 java_sdk_libs: ["myjavalib"], 1498 } 1499 1500 java_sdk_library { 1501 name: "myjavalib", 1502 apex_available: ["//apex_available:anyapex"], 1503 srcs: ["Test.java"], 1504 sdk_version: "current", 1505 naming_scheme: "framework-modules", 1506 public: { 1507 enabled: true, 1508 }, 1509 } 1510 `) 1511 1512 result.CheckSnapshot("mysdk", "", 1513 checkAndroidBpContents(` 1514 // This is auto-generated. DO NOT EDIT. 1515 1516 java_sdk_library_import { 1517 name: "mysdk_myjavalib@current", 1518 sdk_member_name: "myjavalib", 1519 apex_available: ["//apex_available:anyapex"], 1520 naming_scheme: "framework-modules", 1521 shared_library: true, 1522 public: { 1523 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1524 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1525 current_api: "sdk_library/public/myjavalib.txt", 1526 removed_api: "sdk_library/public/myjavalib-removed.txt", 1527 sdk_version: "current", 1528 }, 1529 } 1530 1531 java_sdk_library_import { 1532 name: "myjavalib", 1533 prefer: false, 1534 apex_available: ["//apex_available:anyapex"], 1535 naming_scheme: "framework-modules", 1536 shared_library: true, 1537 public: { 1538 jars: ["sdk_library/public/myjavalib-stubs.jar"], 1539 stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], 1540 current_api: "sdk_library/public/myjavalib.txt", 1541 removed_api: "sdk_library/public/myjavalib-removed.txt", 1542 sdk_version: "current", 1543 }, 1544 } 1545 1546 sdk_snapshot { 1547 name: "mysdk@current", 1548 java_sdk_libs: ["mysdk_myjavalib@current"], 1549 } 1550 `), 1551 checkAllCopyRules(` 1552 .intermediates/myjavalib-stubs-publicapi/android_common/javac/myjavalib-stubs-publicapi.jar -> sdk_library/public/myjavalib-stubs.jar 1553 .intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_api.txt -> sdk_library/public/myjavalib.txt 1554 .intermediates/myjavalib-stubs-srcs-publicapi/android_common/myjavalib-stubs-srcs-publicapi_removed.txt -> sdk_library/public/myjavalib-removed.txt 1555 `), 1556 checkMergeZips( 1557 ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", 1558 ), 1559 ) 1560 } 1561