summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Paul Duffin <paulduffin@google.com> 2021-05-06 16:39:27 +0100
committer Paul Duffin <paulduffin@google.com> 2021-05-11 08:24:59 +0100
commite96108d797f71bd59d3296d1190246ac707d98e6 (patch)
tree0bda7d847aa62637199088633b503b005d299e88
parent05f86890eeca7c8fd412734a7b5bde396a5efb82 (diff)
Add baseline test for license with sdk
This change adds a test that includes license modules that are used by modules which are part of an sdk but which does not yet copy the license module into the snapshot. It includes the refactoring changes needed to allow license modules to be used in an sdk test and provides a baseline against which future changes can be compared. Bug: 181569894 Test: m nothing Change-Id: I60722f43cc9cc8375d97f46eb4c281e6c38987cd
-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
+`),
+ )
+}