]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/cover: fix buglet causing differences in -m output
authorThan McIntosh <thanm@google.com>
Fri, 28 Oct 2022 17:46:32 +0000 (13:46 -0400)
committerThan McIntosh <thanm@google.com>
Tue, 1 Nov 2022 14:12:36 +0000 (14:12 +0000)
Use a slightly different line number pragma when emitting instrumented
code, so as to ensure that we don't get any changes in the
"-gcflags=-m" output for coverage vs non-coverage.

Fixes #56475.

Change-Id: I3079171fdf83c0434ed6ea0ce3eb2797c2280c55
Reviewed-on: https://go-review.googlesource.com/c/go/+/446259
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Than McIntosh <thanm@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/cmd/cover/cover.go
src/cmd/go/testdata/script/cover_error.txt

index 53a5b6df41d2c8c2a89697bf5d1c98eceaf50ff6..989c109a79ab6d9734480d13b66ea65229bde6f9 100644 (file)
@@ -629,7 +629,7 @@ func (p *Package) annotateFile(name string, fd io.Writer, last bool) {
        }
        newContent := file.edit.Bytes()
 
-       fmt.Fprintf(fd, "//line %s:1\n", name)
+       fmt.Fprintf(fd, "//line %s:1:1\n", name)
        fd.Write(newContent)
 
        // After printing the source tree, add some declarations for the
index 15838d5609d15a98a299c4339edaeca77036a818..fa4b58bff7f6f151e01fa64b6b55bde279b97c52 100644 (file)
@@ -5,17 +5,12 @@
 
 # Get errors from a go test into stderr.txt
 ! go test coverbad
-stderr 'p\.go:4' # look for error at coverbad/p.go:4
-[cgo] stderr 'p1\.go:6' # look for error at coverbad/p.go:6
+stderr 'p\.go:4:2' # look for error at coverbad/p.go:4
+[cgo] stderr 'p1\.go:6:2' # look for error at coverbad/p.go:6
 ! stderr $WORK # make sure temporary directory isn't in error
 
 cp stderr $WORK/stderr.txt
 
-# Clean out character positions from stderr.txt
-# It's OK that stderr2 drops the character position in the error,
-# because of the //line directive (see golang.org/issue/22662).
-go run clean_charpos.go $WORK/stderr.txt &
-
 # Get errors from coverage into stderr2.txt
 ! go test -cover coverbad
 cp stderr $WORK/stderr2.txt
@@ -48,27 +43,3 @@ package p
 import "testing"
 
 func Test(t *testing.T) {}
--- clean_charpos.go --
-// +build ignore
-
-package main
-
-import (
-       "log"
-       "os"
-       "strings"
-)
-
-func main() {
-       log.SetFlags(0)
-       b, err := os.ReadFile(os.Args[1])
-       if err != nil {
-               log.Fatal(err)
-       }
-       s := strings.ReplaceAll(string(b), "p.go:4:2:", "p.go:4:")
-       s = strings.ReplaceAll(s, "p1.go:6:2:", "p1.go:6:")
-       os.WriteFile(os.Args[1], []byte(s), 0644)
-       if err != nil {
-               log.Fatal(err)
-       }
-}