Add srcjar output for platform_bootclasspath

This output contains all the transitive sources that are contained in
the bootclasspath.

It's currently limited to source-built bootclasspath components. Future
work will make this deal with sdk_library prebuilts.

Bug: 151360309
Test: unit test, as well as manual inspection of platform-bootclasspath
Change-Id: Ie05d8125e19736d8b4b9ebafb70b88a0a40069d5
This commit is contained in:
Anton Hansson
2023-09-20 13:41:30 +00:00
parent 0e73f9ee6d
commit 57162c515e
2 changed files with 41 additions and 0 deletions

View File

@@ -81,6 +81,15 @@ func TestPlatformBootclasspath(t *testing.T) {
RunTest(t)
})
fooSourceSrc := "source/a.java"
barSrc := "a.java"
checkSrcJarInputs := func(t *testing.T, result *android.TestResult, name string, expected []string) {
t.Helper()
srcjar := result.ModuleForTests(name, "android_common").Output(name + "-transitive.srcjar")
android.AssertStringDoesContain(t, "srcjar arg", srcjar.Args["jarArgs"], "-srcjar")
android.AssertArrayString(t, "srcjar inputs", expected, srcjar.Implicits.Strings())
}
t.Run("source", func(t *testing.T) {
result := android.GroupFixturePreparers(
preparer,
@@ -91,6 +100,10 @@ func TestPlatformBootclasspath(t *testing.T) {
"platform:foo",
"platform:bar",
})
checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
fooSourceSrc,
barSrc,
})
})
t.Run("prebuilt", func(t *testing.T) {
@@ -103,6 +116,10 @@ func TestPlatformBootclasspath(t *testing.T) {
"platform:prebuilt_foo",
"platform:bar",
})
checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
// TODO(b/151360309): This should also have the srcs for prebuilt_foo
barSrc,
})
})
t.Run("source+prebuilt - source preferred", func(t *testing.T) {
@@ -116,6 +133,10 @@ func TestPlatformBootclasspath(t *testing.T) {
"platform:foo",
"platform:bar",
})
checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
fooSourceSrc,
barSrc,
})
})
t.Run("source+prebuilt - prebuilt preferred", func(t *testing.T) {
@@ -129,6 +150,10 @@ func TestPlatformBootclasspath(t *testing.T) {
"platform:prebuilt_foo",
"platform:bar",
})
checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
// TODO(b/151360309): This should also have the srcs for prebuilt_foo
barSrc,
})
})
t.Run("dex import", func(t *testing.T) {
@@ -146,6 +171,10 @@ func TestPlatformBootclasspath(t *testing.T) {
"platform:prebuilt_foo",
"platform:bar",
})
checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
// TODO(b/151360309): This should also have the srcs for prebuilt_foo
barSrc,
})
})
}