From: Alberto Donizetti Date: Tue, 21 Aug 2018 12:02:56 +0000 (+0200) Subject: cmd/gofmt: skip gofmt idempotency check on known issue X-Git-Tag: go1.12beta1~1366 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3649fe299d452b11a8a458096deda38ed9df5947;p=gostls13.git cmd/gofmt: skip gofmt idempotency check on known issue gofmt's TestAll runs gofmt on all the go files in the tree and checks, among other things, that gofmt is idempotent (i.e. that a second invocation does not change the input again). There's a known bug of gofmt not being idempotent (Issue #24472), and unfortunately the fixedbugs/issue22662.go file triggers it. We can't just gofmt the file, because it tests the effect of various line directives inside weirdly-placed comments, and gofmt moves those comments, making the test useless. Instead, just skip the idempotency check when gofmt-ing the problematic file. This fixes go test on the cmd/gofmt package, and a failure seen on the longtest builder. Updates #24472 Change-Id: Ib06300977cd8fce6c609e688b222e9b2186f5aa7 Reviewed-on: https://go-review.googlesource.com/130377 Reviewed-by: Daniel Martí Reviewed-by: Robert Griesemer Run-TryBot: Daniel Martí TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/gofmt/long_test.go b/src/cmd/gofmt/long_test.go index 237b86021b..e2a6208f87 100644 --- a/src/cmd/gofmt/long_test.go +++ b/src/cmd/gofmt/long_test.go @@ -85,6 +85,12 @@ func testFile(t *testing.T, b1, b2 *bytes.Buffer, filename string) { // the first and 2nd result should be identical if !bytes.Equal(b1.Bytes(), b2.Bytes()) { + // A known instance of gofmt not being idempotent + // (see Issue #24472) + if strings.HasSuffix(filename, "issue22662.go") { + t.Log("known gofmt idempotency bug (Issue #24472)") + return + } t.Errorf("gofmt %s not idempotent", filename) } }