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
This commit is contained in:
parent
05f86890ee
commit
e96108d797
|
@ -8,7 +8,7 @@ import (
|
||||||
var prepareForLicenseTest = GroupFixturePreparers(
|
var prepareForLicenseTest = GroupFixturePreparers(
|
||||||
// General preparers in alphabetical order.
|
// General preparers in alphabetical order.
|
||||||
PrepareForTestWithDefaults,
|
PrepareForTestWithDefaults,
|
||||||
prepareForTestWithLicenses,
|
PrepareForTestWithLicenses,
|
||||||
PrepareForTestWithOverrides,
|
PrepareForTestWithOverrides,
|
||||||
PrepareForTestWithPackageModule,
|
PrepareForTestWithPackageModule,
|
||||||
PrepareForTestWithPrebuilts,
|
PrepareForTestWithPrebuilts,
|
||||||
|
|
|
@ -6,18 +6,6 @@ import (
|
||||||
"github.com/google/blueprint"
|
"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 {
|
var licensesTests = []struct {
|
||||||
name string
|
name string
|
||||||
fs MockFS
|
fs MockFS
|
||||||
|
|
|
@ -74,6 +74,42 @@ var PrepareForTestWithOverrides = FixtureRegisterWithContext(func(ctx Registrati
|
||||||
ctx.PostDepsMutators(RegisterOverridePostDepsMutators)
|
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.
|
// 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
|
// Singletons and mutators should only be added here if they are needed for a majority of java
|
||||||
|
|
|
@ -26,6 +26,7 @@ bootstrap_go_package {
|
||||||
"compat_config_sdk_test.go",
|
"compat_config_sdk_test.go",
|
||||||
"exports_test.go",
|
"exports_test.go",
|
||||||
"java_sdk_test.go",
|
"java_sdk_test.go",
|
||||||
|
"license_sdk_test.go",
|
||||||
"sdk_test.go",
|
"sdk_test.go",
|
||||||
"testing.go",
|
"testing.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
|
||||||
|
`),
|
||||||
|
)
|
||||||
|
}
|
Loading…
Reference in New Issue