From baefa18475971968998071fb6f92c4b1c48e2aa1 Mon Sep 17 00:00:00 2001 From: Alexander Bezzubov Date: Wed, 20 Feb 2019 15:46:27 +0100 Subject: [PATCH] gen: compare generated code to gold ignoring whitespaces Reason is that gofmt can change between versions e.g see https://go-review.googlesource.com/c/go/+/122295/ and this would avoid breaking tests and edit wars Signed-off-by: Alexander Bezzubov --- .../code-generator/generator/generator_test.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/internal/code-generator/generator/generator_test.go b/internal/code-generator/generator/generator_test.go index 045d30b..ee46db6 100644 --- a/internal/code-generator/generator/generator_test.go +++ b/internal/code-generator/generator/generator_test.go @@ -6,6 +6,7 @@ import ( "os" "os/exec" "path/filepath" + "strings" "testing" "github.com/stretchr/testify/assert" @@ -282,6 +283,17 @@ func (s *GeneratorTestSuite) TestGenerationFiles() { assert.NoError(s.T(), err) out, err := ioutil.ReadFile(outPath.Name()) assert.NoError(s.T(), err) - assert.Equal(s.T(), string(gold), string(out)) + + expected := normalizeSpaces(string(gold)) + actual := normalizeSpaces(string(out)) + assert.Equal(s.T(), expected, actual, "Test %s", test.name) } } + +// normalizeSpaces returns a copy of str with whitespaces normalizeds. +// We use this to compare generated source as gofmt format may change. +// E.g for changines beteween Go 1.10 and 1.11 see +// https://go-review.googlesource.com/c/go/+/122295/ +func normalizeSpaces(str string) string { + return strings.Join(strings.Fields(str), " ") +}