Merge "Add baseline test for license with sdk" am: 0d62615468

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1699189

Change-Id: I41b1eb3945c340ac61cc083ea2b69c1d38182af5
This commit is contained in:
Paul Duffin 2021-05-12 14:40:04 +00:00 committed by Automerger Merge Worker
commit 9fbe8bb506
5 changed files with 133 additions and 13 deletions

View File

@ -8,7 +8,7 @@ import (
var prepareForLicenseTest = GroupFixturePreparers(
// General preparers in alphabetical order.
PrepareForTestWithDefaults,
prepareForTestWithLicenses,
PrepareForTestWithLicenses,
PrepareForTestWithOverrides,
PrepareForTestWithPackageModule,
PrepareForTestWithPrebuilts,

View File

@ -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

View File

@ -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

View File

@ -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",
],

95
sdk/license_sdk_test.go Normal file
View File

@ -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
`),
)
}