|  | package android | 
|  |  | 
|  | import ( | 
|  | "path/filepath" | 
|  | "testing" | 
|  | ) | 
|  |  | 
|  | func TestFileGroupWithPathProp(t *testing.T) { | 
|  | // TODO(b/247782695), TODO(b/242847534) Fix mixed builds for filegroups | 
|  | t.Skip("Re-enable once filegroups are corrected for mixed builds") | 
|  | outBaseDir := "outputbase" | 
|  | pathPrefix := outBaseDir + "/execroot/__main__" | 
|  | expectedOutputfile := filepath.Join(pathPrefix, "a/b/c/d/test.aidl") | 
|  |  | 
|  | testCases := []struct { | 
|  | bp  string | 
|  | rel string | 
|  | }{ | 
|  | { | 
|  | bp: ` | 
|  | filegroup { | 
|  | name: "baz", | 
|  | srcs: ["a/b/c/d/test.aidl"], | 
|  | path: "a/b", | 
|  | bazel_module: { label: "//:baz" }, | 
|  | } | 
|  | `, | 
|  | rel: "c/d/test.aidl", | 
|  | }, | 
|  | { | 
|  | bp: ` | 
|  | filegroup { | 
|  | name: "baz", | 
|  | srcs: ["a/b/c/d/test.aidl"], | 
|  | bazel_module: { label: "//:baz" }, | 
|  | } | 
|  | `, | 
|  | rel: "a/b/c/d/test.aidl", | 
|  | }, | 
|  | } | 
|  |  | 
|  | for _, testCase := range testCases { | 
|  | result := GroupFixturePreparers( | 
|  | PrepareForTestWithFilegroup, | 
|  | ).RunTestWithBp(t, testCase.bp) | 
|  |  | 
|  | fg := result.Module("baz", "").(*fileGroup) | 
|  | AssertStringEquals(t, "src relativeRoot", testCase.rel, fg.srcs[0].Rel()) | 
|  | AssertStringEquals(t, "src full path", expectedOutputfile, fg.srcs[0].String()) | 
|  | } | 
|  | } | 
|  |  | 
|  | func TestFilegroupDefaults(t *testing.T) { | 
|  | bp := FixtureAddTextFile("p/Android.bp", ` | 
|  | filegroup_defaults { | 
|  | name: "defaults", | 
|  | visibility: ["//x"], | 
|  | } | 
|  | filegroup { | 
|  | name: "foo", | 
|  | defaults: ["defaults"], | 
|  | visibility: ["//y"], | 
|  | } | 
|  | `) | 
|  | result := GroupFixturePreparers( | 
|  | PrepareForTestWithFilegroup, | 
|  | PrepareForTestWithDefaults, | 
|  | PrepareForTestWithVisibility, | 
|  | bp).RunTest(t) | 
|  | rules := effectiveVisibilityRules(result.Config, qualifiedModuleName{pkg: "p", name: "foo"}) | 
|  | AssertDeepEquals(t, "visibility", []string{"//x", "//y"}, rules.Strings()) | 
|  | } |