Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 707c3a4b authored by Jihoon Kang's avatar Jihoon Kang Committed by Automerger Merge Worker
Browse files

Merge "Disallow missing api source files for java_api_library module" am:...

Merge "Disallow missing api source files for java_api_library module" am: 0393174f am: 8faf87a3 am: 3a910094

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



Change-Id: I883e7d22cf1d1ce48400b6627539aaf711cf4329
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 5db689a3 3a910094
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -1650,7 +1650,7 @@ type JavaApiLibraryProperties struct {
	// list of api.txt files relative to this directory that contribute to the
	// API surface.
	// 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
	Javacflags []string
@@ -1832,9 +1832,7 @@ func (al *ApiLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {

	// Add the api_files inputs
	for _, api := range al.properties.Api_files {
		// Use MaybeExistentPathForSource since the api file might not exist during analysis.
		// This will be provided by the orchestrator in the combined execution.
		srcFiles = append(srcFiles, android.MaybeExistentPathForSource(ctx, ctx.ModuleDir(), api))
		srcFiles = append(srcFiles, android.PathForModuleSrc(ctx, api))
	}

	if srcFiles == nil {
+23 −0
Original line number Diff line number Diff line
@@ -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")
}

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) {
	result := PrepareForTestWithJavaBuildComponents.RunTestWithBp(t, `
java_test_host {
+6 −1
Original line number Diff line number Diff line
@@ -72,6 +72,11 @@ var prepareForTestWithFrameworkDeps = android.GroupFixturePreparers(
		defaultJavaDir + "/framework/aidl": nil,
		// Needed for various deps defined in GatherRequiredDepsForTest()
		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
		"build/make/core/proguard.flags":             nil,