internal/gocore: add sanity checking to TestVersions

This strengthens the guarantees about what viewcore(1) supports.
Specifically, we have binaries built with PIE which appear to load
properly (`Core(...)` doesn't return an error, but return (e.g.) zero
goroutines. Tests should fail if this happens, there's always at least
one goroutine.

The sanity checking functions are defined separately so we can re-use
them in a test extension patch where we supply several types of binaries
built with non-standard flags (and without the `go build` tool).

Change-Id: I492724a7a9d371ce694829368c7dfb73066bb821
Reviewed-on: https://go-review.googlesource.com/c/debug/+/618976
Reviewed-by: Nicolas Hillegeer <aktau@google.com>
Auto-Submit: Nicolas Hillegeer <aktau@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Nicolas Hillegeer <aktau@google.com>
2 files changed
tree: bc32403079979b7bfd5b8771ec5a7fd3bf51dc64
  1. cmd/
  2. dwtest/
  3. internal/
  4. codereview.cfg
  5. CONTRIBUTING.md
  6. go.mod
  7. go.sum
  8. LICENSE
  9. README.md
README.md

Go Debug

Go Reference

This repository holds utilities and libraries for debugging Go programs.

WARNING! Please expect breaking changes and unstable APIs. Most of them are currently are at an early, experimental stage.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.

The main issue tracker for the debug repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/debug:” in the subject line, so it is easy to find.