package cfile

Import Path
	internal/coverage/cfile (on go.dev)

Dependency Relation
	imports 24 packages, and imported by one package

Involved Source Files apis.go Package cfile implements management of coverage files. It provides functionality exported in runtime/coverage as well as additional functionality used directly by package testing through testing/internal/testdeps. hooks.go testsupport.go
Package-Level Functions (total 9)
ClearCounters implements [runtime/coverage.ClearCounters].
InitHook is invoked from the main package "init" routine in programs built with "-cover". This function is intended to be called only by the compiler (via runtime/coverage.initHook). If 'istest' is false, it indicates we're building a regular program ("go build -cover ..."), in which case we immediately try to write out the meta-data file, and register emitCounterData as an exit hook. If 'istest' is true (indicating that the program in question is a Go test binary), then we tentatively queue up both emitMetaData and emitCounterData as exit hooks. In the normal case (e.g. regular "go test -cover" run) the testmain.go boilerplate will run at the end of the test, write out the coverage percentage, and then invoke MarkProfileEmitted to indicate that no more work needs to be done. If however that call is never made, this is a sign that the test binary is being used as a replacement binary for the tool being tested, hence we do want to run exit hooks when the program terminates.
MarkProfileEmitted signals the coverage machinery that coverage data output files have already been written out, and there is no need to take any additional action at exit time. This function is called from the coverage-related boilerplate code in _testmain.go emitted for go unit tests.
ProcessCoverTestDir is called from testmain code when "go test -cover" is in effect. It is not intended to be used other than internally by the Go command's generated code.
Snapshot returns a snapshot of coverage percentage at a moment of time within a running test, so as to support the testing.Coverage() function. This version doesn't examine coverage meta-data, so the result it returns will be less accurate (more "slop") due to the fact that we don't look at the meta data to see how many statements are associated with each counter.
WriteCounters implements [runtime/coverage.WriteCounters].
WriteCountersDir implements [runtime/coverage.WriteCountersDir].
WriteMeta implements [runtime/coverage.WriteMeta].
WriteMetaDir implements [runtime/coverage.WriteMetaDir].