]> Cypherpunks.ru repositories - gostls13.git/commit
runtime: add hook to register coverage-instrumented packages
authorThan McIntosh <thanm@google.com>
Tue, 19 Apr 2022 22:45:06 +0000 (18:45 -0400)
committerThan McIntosh <thanm@google.com>
Mon, 26 Sep 2022 21:48:50 +0000 (21:48 +0000)
commitcf83a490e495e5bfa7065cd97811e689101a687e
tree59ddb5355c3332e27433d90f011a0b970fa54e18
parentefa3f1749fabe3b3062edff7651baa8cb1f574ab
runtime: add hook to register coverage-instrumented packages

Add support to the runtime for registering coverage-instrumented
packages, using a new hook that can be called from the init function
of an instrumented package. The hook records the meta-data symbol for
the package (chaining it onto a list), and returns a package ID to be
used to identify functions in the package. This new hook is not yet
called; that will be added in a subsequent patch. The list of
registered meta-data objects will be used (again in a future patch) as
part of coverage data file writing.

Special handling is required for packages such as "runtime" or
"internal/cpu", where functions in the package execute before the
package "init" func runs. For these packages hard-code the package ID,
then record the position of the package in the overall list so that we
can fix things up later on.

Updates #51430.

Change-Id: I6ca3ddf535197442a2603c6d7a0a9798b8496f40
Reviewed-on: https://go-review.googlesource.com/c/go/+/401234
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Than McIntosh <thanm@google.com>
src/cmd/go/go_test.go
src/go/build/deps_test.go
src/internal/coverage/pkid.go [new file with mode: 0644]
src/internal/coverage/rtcov/rtcov.go [new file with mode: 0644]
src/runtime/covermeta.go [new file with mode: 0644]