7d6dd8bb33
Allows specifying shared filegroup attributes in a central place. Test: filegroup_test.go Change-Id: I82feac37ae6998313a0004f8af58f3decf7a514e
81 lines
1.9 KiB
Go
81 lines
1.9 KiB
Go
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())
|
|
}
|