From a92e844d163c70e7e5a098411affce9f365d8219 Mon Sep 17 00:00:00 2001 From: Liz Kammer Date: Wed, 7 Apr 2021 20:25:21 -0400 Subject: [PATCH] Make MockBazelContext more specific to cquerys Rather than having a single storage container, make multiple so that it is easier to unit test building modules with bazel with MockBazelContext Test: go test genrule_test Change-Id: I1da85d28f096d5102ad889b9518fdda6914342b1 --- android/bazel_handler.go | 18 ++++++++++-------- genrule/genrule_test.go | 3 ++- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/android/bazel_handler.go b/android/bazel_handler.go index 28c0e5307..7911632b6 100644 --- a/android/bazel_handler.go +++ b/android/bazel_handler.go @@ -117,21 +117,25 @@ var _ BazelContext = noopBazelContext{} // A bazel context to use for tests. type MockBazelContext struct { - AllFiles map[string][]string + OutputBaseDir string + + LabelToOutputFiles map[string][]string + LabelToOutputFilesAndCcObjectFiles map[string]cquery.GetOutputFilesAndCcObjectFiles_Result + LabelToCcStaticLibraryFiles map[string][]string } func (m MockBazelContext) GetOutputFiles(label string, archType ArchType) ([]string, bool) { - result, ok := m.AllFiles[label] + result, ok := m.LabelToOutputFiles[label] return result, ok } func (m MockBazelContext) GetOutputFilesAndCcObjectFiles(label string, archType ArchType) ([]string, []string, bool) { - result, ok := m.AllFiles[label] - return result, result, ok + result, ok := m.LabelToOutputFilesAndCcObjectFiles[label] + return result.OutputFiles, result.CcObjectFiles, ok } func (m MockBazelContext) GetPrebuiltCcStaticLibraryFiles(label string, archType ArchType) ([]string, bool) { - result, ok := m.AllFiles[label] + result, ok := m.LabelToCcStaticLibraryFiles[label] return result, ok } @@ -143,9 +147,7 @@ func (m MockBazelContext) BazelEnabled() bool { return true } -func (m MockBazelContext) OutputBase() string { - return "outputbase" -} +func (m MockBazelContext) OutputBase() string { return m.OutputBaseDir } func (m MockBazelContext) BuildStatementsToRegister() []bazel.BuildStatement { return []bazel.BuildStatement{} diff --git a/genrule/genrule_test.go b/genrule/genrule_test.go index 3f1e9f3b9..3ce4f85f9 100644 --- a/genrule/genrule_test.go +++ b/genrule/genrule_test.go @@ -696,7 +696,8 @@ func TestGenruleWithBazel(t *testing.T) { result := android.GroupFixturePreparers( prepareForGenRuleTest, android.FixtureModifyConfig(func(config android.Config) { config.BazelContext = android.MockBazelContext{ - AllFiles: map[string][]string{ + OutputBaseDir: "outputbase", + LabelToOutputFiles: map[string][]string{ "//foo/bar:bar": []string{"bazelone.txt", "bazeltwo.txt"}}} })).RunTestWithBp(t, testGenruleBp()+bp)