123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- 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())
- }
|