This test is currently overly sensitive to compiler optimizations,
because inlining can affect the order in which cmd/link emits field
references. The order doesn't actually matter though, so this CL just
tweaks the test to sort the tracked fields before printing them.
Updates #51734.
Change-Id: I3b65ca265856b2e1102f40406d5ce34610c70d40
Reviewed-on: https://go-review.googlesource.com/c/go/+/406674
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
package main
import (
+ "sort"
"strings"
"issue20014.dir/a"
func main() {
samePackage()
crossPackage()
+
// Print fields registered with field tracking.
+ var fields []string
for _, line := range strings.Split(fieldTrackInfo, "\n") {
- if line == "" {
- continue
+ if line != "" {
+ fields = append(fields, strings.Split(line, "\t")[0])
}
- println(strings.Split(line, "\t")[0])
+ }
+ sort.Strings(fields) // for stable output, regardless of optimizations
+ for _, field := range fields {
+ println(field)
}
}