summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/license_test.go2
-rw-r--r--android/licenses_test.go12
-rw-r--r--android/testing.go36
-rw-r--r--sdk/Android.bp1
-rw-r--r--sdk/license_sdk_test.go95
5 files changed, 133 insertions, 13 deletions
diff --git a/android/license_test.go b/android/license_test.go
index 2b09a4f69..26b33c367 100644
--- a/android/license_test.go
+++ b/android/license_test.go
@@ -8,7 +8,7 @@ import (
var prepareForLicenseTest = GroupFixturePreparers(
// General preparers in alphabetical order.
PrepareForTestWithDefaults,
- prepareForTestWithLicenses,
+ PrepareForTestWithLicenses,
PrepareForTestWithOverrides,
PrepareForTestWithPackageModule,
PrepareForTestWithPrebuilts,
diff --git a/android/licenses_test.go b/android/licenses_test.go
index 913dc8842..9b2e06c17 100644
--- a/android/licenses_test.go
+++ b/android/licenses_test.go
@@ -6,18 +6,6 @@ import (
"github.com/google/blueprint"
)
-var prepareForTestWithLicenses = GroupFixturePreparers(
- FixtureRegisterWithContext(RegisterLicenseKindBuildComponents),
- FixtureRegisterWithContext(RegisterLicenseBuildComponents),
- FixtureRegisterWithContext(registerLicenseMutators),
-)
-
-func registerLicenseMutators(ctx RegistrationContext) {
- ctx.PreArchMutators(RegisterLicensesPackageMapper)
- ctx.PreArchMutators(RegisterLicensesPropertyGatherer)
- ctx.PostDepsMutators(RegisterLicensesDependencyChecker)
-}
-
var licensesTests = []struct {
name string
fs MockFS
diff --git a/android/testing.go b/android/testing.go
index ce27fca04..191cb8d02 100644
--- a/android/testing.go
+++ b/android/testing.go
@@ -74,6 +74,42 @@ var PrepareForTestWithOverrides = FixtureRegisterWithContext(func(ctx Registrati
ctx.PostDepsMutators(RegisterOverridePostDepsMutators)
})
+var PrepareForTestWithLicenses = GroupFixturePreparers(
+ FixtureRegisterWithContext(RegisterLicenseKindBuildComponents),
+ FixtureRegisterWithContext(RegisterLicenseBuildComponents),
+ FixtureRegisterWithContext(registerLicenseMutators),
+)
+
+func registerLicenseMutators(ctx RegistrationContext) {
+ ctx.PreArchMutators(RegisterLicensesPackageMapper)
+ ctx.PreArchMutators(RegisterLicensesPropertyGatherer)
+ ctx.PostDepsMutators(RegisterLicensesDependencyChecker)
+}
+
+var PrepareForTestWithLicenseDefaultModules = GroupFixturePreparers(
+ FixtureAddTextFile("build/soong/licenses/Android.bp", `
+ license {
+ name: "Android-Apache-2.0",
+ package_name: "Android",
+ license_kinds: ["SPDX-license-identifier-Apache-2.0"],
+ copyright_notice: "Copyright (C) The Android Open Source Project",
+ license_text: ["LICENSE"],
+ }
+
+ license_kind {
+ name: "SPDX-license-identifier-Apache-2.0",
+ conditions: ["notice"],
+ url: "https://spdx.org/licenses/Apache-2.0.html",
+ }
+
+ license_kind {
+ name: "legacy_unencumbered",
+ conditions: ["unencumbered"],
+ }
+ `),
+ FixtureAddFile("build/soong/licenses/LICENSE", nil),
+)
+
// Test fixture preparer that will register most java build components.
//
// Singletons and mutators should only be added here if they are needed for a majority of java
diff --git a/sdk/Android.bp b/sdk/Android.bp
index 09a7286dc..368c03aec 100644
--- a/sdk/Android.bp
+++ b/sdk/Android.bp
@@ -26,6 +26,7 @@ bootstrap_go_package {
"compat_config_sdk_test.go",
"exports_test.go",
"java_sdk_test.go",
+ "license_sdk_test.go",
"sdk_test.go",
"testing.go",
],
diff --git a/sdk/license_sdk_test.go b/sdk/license_sdk_test.go
new file mode 100644
index 000000000..9d6ab0698
--- /dev/null
+++ b/sdk/license_sdk_test.go
@@ -0,0 +1,95 @@
+// 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", "",
+ checkUnversionedAndroidBpContents(`
+// This is auto-generated. DO NOT EDIT.
+
+java_import {
+ name: "myjavalib",
+ prefer: false,
+ visibility: ["//visibility:public"],
+ apex_available: ["//apex_available:platform"],
+ jars: ["java/myjavalib.jar"],
+}
+`),
+ checkVersionedAndroidBpContents(`
+// This is auto-generated. DO NOT EDIT.
+
+java_import {
+ name: "mysdk_myjavalib@current",
+ sdk_member_name: "myjavalib",
+ visibility: ["//visibility:public"],
+ apex_available: ["//apex_available:platform"],
+ jars: ["java/myjavalib.jar"],
+}
+
+sdk_snapshot {
+ name: "mysdk@current",
+ visibility: ["//visibility:public"],
+ java_header_libs: ["mysdk_myjavalib@current"],
+}
+`),
+ checkAllCopyRules(`
+.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
+`),
+ )
+}