Skip to content

Commit 02cffcd

Browse files
committed
cmd/cover: fix buglet causing differences in -m output
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 <[email protected]> Run-TryBot: Than McIntosh <[email protected]> Reviewed-by: Cherry Mui <[email protected]>
1 parent 99dc2a1 commit 02cffcd

File tree

2 files changed

+3
-32
lines changed

2 files changed

+3
-32
lines changed

src/cmd/cover/cover.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,7 @@ func (p *Package) annotateFile(name string, fd io.Writer, last bool) {
629629
}
630630
newContent := file.edit.Bytes()
631631

632-
fmt.Fprintf(fd, "//line %s:1\n", name)
632+
fmt.Fprintf(fd, "//line %s:1:1\n", name)
633633
fd.Write(newContent)
634634

635635
// After printing the source tree, add some declarations for the

src/cmd/go/testdata/script/cover_error.txt

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,12 @@
55

66
# Get errors from a go test into stderr.txt
77
! go test coverbad
8-
stderr 'p\.go:4' # look for error at coverbad/p.go:4
9-
[cgo] stderr 'p1\.go:6' # look for error at coverbad/p.go:6
8+
stderr 'p\.go:4:2' # look for error at coverbad/p.go:4
9+
[cgo] stderr 'p1\.go:6:2' # look for error at coverbad/p.go:6
1010
! stderr $WORK # make sure temporary directory isn't in error
1111

1212
cp stderr $WORK/stderr.txt
1313

14-
# Clean out character positions from stderr.txt
15-
# It's OK that stderr2 drops the character position in the error,
16-
# because of the //line directive (see golang.org/issue/22662).
17-
go run clean_charpos.go $WORK/stderr.txt &
18-
1914
# Get errors from coverage into stderr2.txt
2015
! go test -cover coverbad
2116
cp stderr $WORK/stderr2.txt
@@ -48,27 +43,3 @@ package p
4843
import "testing"
4944

5045
func Test(t *testing.T) {}
51-
-- clean_charpos.go --
52-
// +build ignore
53-
54-
package main
55-
56-
import (
57-
"log"
58-
"os"
59-
"strings"
60-
)
61-
62-
func main() {
63-
log.SetFlags(0)
64-
b, err := os.ReadFile(os.Args[1])
65-
if err != nil {
66-
log.Fatal(err)
67-
}
68-
s := strings.ReplaceAll(string(b), "p.go:4:2:", "p.go:4:")
69-
s = strings.ReplaceAll(s, "p1.go:6:2:", "p1.go:6:")
70-
os.WriteFile(os.Args[1], []byte(s), 0644)
71-
if err != nil {
72-
log.Fatal(err)
73-
}
74-
}

0 commit comments

Comments
 (0)