Merge "Disallow missing api source files for java_api_library module"

This commit is contained in:
Jihoon Kang
2023-05-19 00:12:22 +00:00
committed by Gerrit Code Review
3 changed files with 31 additions and 5 deletions

View File

@@ -1650,7 +1650,7 @@ type JavaApiLibraryProperties struct {
// list of api.txt files relative to this directory that contribute to the // list of api.txt files relative to this directory that contribute to the
// API surface. // API surface.
// This is a list of relative paths // This is a list of relative paths
Api_files []string Api_files []string `android:"path"`
// List of flags to be passed to the javac compiler to generate jar file // List of flags to be passed to the javac compiler to generate jar file
Javacflags []string Javacflags []string
@@ -1832,9 +1832,7 @@ func (al *ApiLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {
// Add the api_files inputs // Add the api_files inputs
for _, api := range al.properties.Api_files { for _, api := range al.properties.Api_files {
// Use MaybeExistentPathForSource since the api file might not exist during analysis. srcFiles = append(srcFiles, android.PathForModuleSrc(ctx, api))
// This will be provided by the orchestrator in the combined execution.
srcFiles = append(srcFiles, android.MaybeExistentPathForSource(ctx, ctx.ModuleDir(), api))
} }
if srcFiles == nil { if srcFiles == nil {

View File

@@ -2252,6 +2252,29 @@ func TestJavaApiLibraryDepApiSrcs(t *testing.T) {
android.AssertStringDoesContain(t, "Command expected to contain output files list text file flag", manifestCommand, "--out __SBOX_SANDBOX_DIR__/out/sources.txt") android.AssertStringDoesContain(t, "Command expected to contain output files list text file flag", manifestCommand, "--out __SBOX_SANDBOX_DIR__/out/sources.txt")
} }
func TestJavaApiLibraryFilegroupInput(t *testing.T) {
ctx, _ := testJavaWithFS(t, `
filegroup {
name: "default_current.txt",
srcs: ["current.txt"],
}
java_api_library {
name: "foo",
api_files: [":default_current.txt"],
}
`,
map[string][]byte{
"current.txt": nil,
})
m := ctx.ModuleForTests("foo", "android_common")
outputs := fmt.Sprint(m.AllOutputs())
if !strings.Contains(outputs, "foo/foo.jar") {
t.Errorf("Module output does not contain expected jar %s", "foo/foo.jar")
}
}
func TestTradefedOptions(t *testing.T) { func TestTradefedOptions(t *testing.T) {
result := PrepareForTestWithJavaBuildComponents.RunTestWithBp(t, ` result := PrepareForTestWithJavaBuildComponents.RunTestWithBp(t, `
java_test_host { java_test_host {

View File

@@ -71,7 +71,12 @@ var prepareForTestWithFrameworkDeps = android.GroupFixturePreparers(
// Needed for framework // Needed for framework
defaultJavaDir + "/framework/aidl": nil, defaultJavaDir + "/framework/aidl": nil,
// Needed for various deps defined in GatherRequiredDepsForTest() // Needed for various deps defined in GatherRequiredDepsForTest()
defaultJavaDir + "/a.java": nil, defaultJavaDir + "/a.java": nil,
defaultJavaDir + "/api/current.txt": nil,
defaultJavaDir + "/api/system-current.txt": nil,
defaultJavaDir + "/api/test-current.txt": nil,
defaultJavaDir + "/api/module-lib-current.txt": nil,
defaultJavaDir + "/api/system-server-current.txt": nil,
// Needed for R8 rules on apps // Needed for R8 rules on apps
"build/make/core/proguard.flags": nil, "build/make/core/proguard.flags": nil,