From 0532fb0d4c2f477f6b87ecbc9d715dde322c509c Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 2 Oct 2017 16:57:40 -0700 Subject: [PATCH] Fix excluding resource directories Using a glob as a path failed the existence check. Append the glob after converting the path to a string. Test: TestExcludeResources in java_test.go Change-Id: Ic1fd40aa283f3b0d59c1c589dbeec411583eddf1 --- java/java_test.go | 38 ++++++++++++++++++++++++++++++++++++++ java/resources.go | 3 ++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/java/java_test.go b/java/java_test.go index 7154f5e37..3b73fddd5 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -96,6 +96,8 @@ func testJava(t *testing.T, bp string) *android.TestContext { "b.jar": nil, "res/a": nil, "res/b": nil, + "res2/a": nil, + "prebuilts/sdk/14/android.jar": nil, "prebuilts/sdk/14/framework.aidl": nil, }) @@ -434,6 +436,42 @@ func TestResources(t *testing.T) { } } +func TestExcludeResources(t *testing.T) { + ctx := testJava(t, ` + java_library { + name: "foo", + srcs: ["a.java"], + java_resource_dirs: ["res", "res2"], + exclude_java_resource_dirs: ["res2"], + } + + java_library { + name: "bar", + srcs: ["a.java"], + java_resources: ["res/*"], + exclude_java_resources: ["res/b"], + } + `) + + fooRes := ctx.ModuleForTests("foo", "android_common").Output("res.jar") + + expected := "-C res -l " + fooRes.Implicits[0].String() + if fooRes.Args["jarArgs"] != expected { + t.Errorf("foo resource jar args %q is not %q", + fooRes.Args["jarArgs"], expected) + + } + + barRes := ctx.ModuleForTests("bar", "android_common").Output("res.jar") + + expected = "-C . -f res/a" + if barRes.Args["jarArgs"] != expected { + t.Errorf("bar resource jar args %q is not %q", + barRes.Args["jarArgs"], expected) + + } +} + func fail(t *testing.T, errs []error) { if len(errs) > 0 { for _, err := range errs { diff --git a/java/resources.go b/java/resources.go index 9f5e5e0ce..85ebd52fa 100644 --- a/java/resources.go +++ b/java/resources.go @@ -47,7 +47,8 @@ func ResourceDirsToJarArgs(ctx android.ModuleContext, var excludes []string for _, exclude := range excludeDirs { - excludes = append(excludes, android.PathForModuleSrc(ctx, exclude, "**/*").String()) + excludes = append(excludes, + filepath.Join(android.PathForModuleSrc(ctx, exclude).String(), "**/*")) } excludes = append(excludes, resourceExcludes...)