|  | // Copyright (C) 2021 The Android Open Source Project | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //     http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | package sdk | 
|  |  | 
|  | import ( | 
|  | "testing" | 
|  |  | 
|  | "android/soong/android" | 
|  | ) | 
|  |  | 
|  | func TestSnapshotWithPackageDefaultLicense(t *testing.T) { | 
|  | result := android.GroupFixturePreparers( | 
|  | prepareForSdkTestWithJava, | 
|  | android.PrepareForTestWithLicenses, | 
|  | android.PrepareForTestWithLicenseDefaultModules, | 
|  | android.MockFS{ | 
|  | "NOTICE1": nil, | 
|  | "NOTICE2": nil, | 
|  | }.AddToFixture(), | 
|  | ).RunTestWithBp(t, ` | 
|  | package { | 
|  | default_applicable_licenses: ["mylicense"], | 
|  | } | 
|  |  | 
|  | license { | 
|  | name: "mylicense", | 
|  | license_kinds: [ | 
|  | "SPDX-license-identifier-Apache-2.0", | 
|  | "legacy_unencumbered", | 
|  | ], | 
|  | license_text: [ | 
|  | "NOTICE1", | 
|  | "NOTICE2", | 
|  | ], | 
|  | } | 
|  |  | 
|  | sdk { | 
|  | name: "mysdk", | 
|  | java_header_libs: ["myjavalib"], | 
|  | } | 
|  |  | 
|  | java_library { | 
|  | name: "myjavalib", | 
|  | srcs: ["Test.java"], | 
|  | system_modules: "none", | 
|  | sdk_version: "none", | 
|  | } | 
|  | `) | 
|  |  | 
|  | CheckSnapshot(t, result, "mysdk", "", | 
|  | checkAndroidBpContents(` | 
|  | // This is auto-generated. DO NOT EDIT. | 
|  |  | 
|  | package { | 
|  | // A default list here prevents the license LSC from adding its own list which would | 
|  | // be unnecessary as every module in the sdk already has its own licenses property. | 
|  | default_applicable_licenses: ["Android-Apache-2.0"], | 
|  | } | 
|  |  | 
|  | apex_contributions_defaults { | 
|  | name: "mysdk.contributions", | 
|  | contents: ["prebuilt_myjavalib"], | 
|  | } | 
|  |  | 
|  | java_import { | 
|  | name: "myjavalib", | 
|  | prefer: false, | 
|  | visibility: ["//visibility:public"], | 
|  | apex_available: ["//apex_available:platform"], | 
|  | licenses: ["mysdk_mylicense"], | 
|  | jars: ["java/myjavalib.jar"], | 
|  | } | 
|  |  | 
|  | license { | 
|  | name: "mysdk_mylicense", | 
|  | visibility: ["//visibility:private"], | 
|  | license_kinds: [ | 
|  | "SPDX-license-identifier-Apache-2.0", | 
|  | "legacy_unencumbered", | 
|  | ], | 
|  | license_text: [ | 
|  | "licenses/NOTICE1", | 
|  | "licenses/NOTICE2", | 
|  | ], | 
|  | } | 
|  | `), | 
|  | checkAllCopyRules(` | 
|  | .intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar | 
|  | NOTICE1 -> licenses/NOTICE1 | 
|  | NOTICE2 -> licenses/NOTICE2 | 
|  | `), | 
|  | ) | 
|  | } |