b432df9cda
Adds a FinalDeps mutator to add dependencies from the platform_bootclasspath to the configured boot jars which can be from either the platform or any apex. It adds dependencies for every configured boot jar, whether in ArtApexJars, BootJars or UpdatableBootJars. At the moment the dependencies are only used for testing purposes but following changes will make more use of them. Bug: 177892522 Test: m nothing Change-Id: I981305bf45bc20539a3d36987252f490e2b885cc
133 lines
3.4 KiB
Go
133 lines
3.4 KiB
Go
// 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 java
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"android/soong/android"
|
|
"android/soong/dexpreopt"
|
|
)
|
|
|
|
// Contains some simple tests for platform_bootclasspath.
|
|
|
|
var prepareForTestWithPlatformBootclasspath = android.GroupFixturePreparers(
|
|
PrepareForTestWithJavaDefaultModules,
|
|
dexpreopt.PrepareForTestByEnablingDexpreopt,
|
|
)
|
|
|
|
func TestPlatformBootclasspath(t *testing.T) {
|
|
preparer := android.GroupFixturePreparers(
|
|
prepareForTestWithPlatformBootclasspath,
|
|
dexpreopt.FixtureSetBootJars("platform:foo", "platform:bar"),
|
|
android.FixtureWithRootAndroidBp(`
|
|
platform_bootclasspath {
|
|
name: "platform-bootclasspath",
|
|
}
|
|
|
|
java_library {
|
|
name: "bar",
|
|
srcs: ["a.java"],
|
|
system_modules: "none",
|
|
sdk_version: "none",
|
|
compile_dex: true,
|
|
}
|
|
`),
|
|
)
|
|
|
|
var addSourceBootclassPathModule = android.FixtureAddTextFile("source/Android.bp", `
|
|
java_library {
|
|
name: "foo",
|
|
srcs: ["a.java"],
|
|
system_modules: "none",
|
|
sdk_version: "none",
|
|
compile_dex: true,
|
|
}
|
|
`)
|
|
|
|
var addPrebuiltBootclassPathModule = android.FixtureAddTextFile("prebuilt/Android.bp", `
|
|
java_import {
|
|
name: "foo",
|
|
jars: ["a.jar"],
|
|
compile_dex: true,
|
|
prefer: false,
|
|
}
|
|
`)
|
|
|
|
var addPrebuiltPreferredBootclassPathModule = android.FixtureAddTextFile("prebuilt/Android.bp", `
|
|
java_import {
|
|
name: "foo",
|
|
jars: ["a.jar"],
|
|
compile_dex: true,
|
|
prefer: true,
|
|
}
|
|
`)
|
|
|
|
t.Run("missing", func(t *testing.T) {
|
|
preparer.
|
|
ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(`"platform-bootclasspath" depends on undefined module "foo"`)).
|
|
RunTest(t)
|
|
})
|
|
|
|
t.Run("source", func(t *testing.T) {
|
|
result := android.GroupFixturePreparers(
|
|
preparer,
|
|
addSourceBootclassPathModule,
|
|
).RunTest(t)
|
|
|
|
CheckPlatformBootclasspathModules(t, result, "platform-bootclasspath", []string{
|
|
"platform:foo",
|
|
"platform:bar",
|
|
})
|
|
})
|
|
|
|
t.Run("prebuilt", func(t *testing.T) {
|
|
result := android.GroupFixturePreparers(
|
|
preparer,
|
|
addPrebuiltBootclassPathModule,
|
|
).RunTest(t)
|
|
|
|
CheckPlatformBootclasspathModules(t, result, "platform-bootclasspath", []string{
|
|
"platform:prebuilt_foo",
|
|
"platform:bar",
|
|
})
|
|
})
|
|
|
|
t.Run("source+prebuilt - source preferred", func(t *testing.T) {
|
|
result := android.GroupFixturePreparers(
|
|
preparer,
|
|
addSourceBootclassPathModule,
|
|
addPrebuiltBootclassPathModule,
|
|
).RunTest(t)
|
|
|
|
CheckPlatformBootclasspathModules(t, result, "platform-bootclasspath", []string{
|
|
"platform:foo",
|
|
"platform:bar",
|
|
})
|
|
})
|
|
|
|
t.Run("source+prebuilt - prebuilt preferred", func(t *testing.T) {
|
|
result := android.GroupFixturePreparers(
|
|
preparer,
|
|
addSourceBootclassPathModule,
|
|
addPrebuiltPreferredBootclassPathModule,
|
|
).RunTest(t)
|
|
|
|
CheckPlatformBootclasspathModules(t, result, "platform-bootclasspath", []string{
|
|
"platform:prebuilt_foo",
|
|
"platform:bar",
|
|
})
|
|
})
|
|
}
|