On windows hosts, when code is checked out using git with the default
setting of autocrlf=true, carriage returns are appended to source lines
which then prevent the version check from being successful. This removes
carriage returns to allow version matching.
Fixes #52268
Change-Id: I9acc4e907c93a20305f8742cc01687a122a88645
Reviewed-on: https://go-review.googlesource.com/c/go/+/402074
Reviewed-by: Roland Shoemaker <roland@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Dan Kortschak <dan@kortschak.io>
Reviewed-by: Ian Lance Taylor <iant@google.com>
"go/token"
"math"
"strconv"
+ "strings"
"unicode/utf8"
)
if len(lines) < 2 {
return nil, fmt.Errorf("must include version and at least one value")
}
- if string(lines[0]) != encVersion1 {
- return nil, fmt.Errorf("unknown encoding version: %s", lines[0])
+ version := strings.TrimSuffix(string(lines[0]), "\r")
+ if version != encVersion1 {
+ return nil, fmt.Errorf("unknown encoding version: %s", version)
}
var vals []any
for _, line := range lines[1:] {
}
}(),
},
+ {
+ desc: "windows new line",
+ in: "go test fuzz v1\r\nint(0)\r\n",
+ want: "go test fuzz v1\nint(0)",
+ },
}
for _, test := range tests {
t.Run(test.desc, func(t *testing.T) {