| 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 { | 
 | 		outBaseDir := "outputbase" | 
 | 		result := GroupFixturePreparers( | 
 | 			PrepareForTestWithFilegroup, | 
 | 			FixtureModifyConfig(func(config Config) { | 
 | 				config.BazelContext = MockBazelContext{ | 
 | 					OutputBaseDir: outBaseDir, | 
 | 					LabelToOutputFiles: map[string][]string{ | 
 | 						"//:baz": []string{"a/b/c/d/test.aidl"}, | 
 | 					}, | 
 | 				} | 
 | 			}), | 
 | 		).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()) | 
 | } |