Imports #
"cmd/internal/bio"
"io"
"os"
"cmd/internal/bio"
"fmt"
"internal/coverage"
"internal/coverage/decodecounter"
"internal/coverage/decodemeta"
"internal/coverage/pods"
"io"
"os"
"cmd/internal/bio"
"io"
"os"
"cmd/internal/bio"
"fmt"
"internal/coverage"
"internal/coverage/decodecounter"
"internal/coverage/decodemeta"
"internal/coverage/pods"
"io"
"os"
const CovDataReaderNoFlags CovDataReaderFlags = 0
const PanicOnError = *ast.BinaryExpr
const PanicOnWarning
type CovDataReaderFlags uint32
type CovDataVisitor interface {
BeginPod(p pods.Pod)
EndPod(p pods.Pod)
VisitMetaDataFile(mdf string, mfr *decodemeta.CoverageMetaFileReader)
BeginCounterDataFile(cdf string, cdr *decodecounter.CounterDataReader, dirIdx int)
EndCounterDataFile(cdf string, cdr *decodecounter.CounterDataReader, dirIdx int)
VisitFuncCounterData(payload decodecounter.FuncPayload)
EndCounters()
BeginPackage(pd *decodemeta.CoverageMetaDataDecoder, pkgIdx uint32)
EndPackage(pd *decodemeta.CoverageMetaDataDecoder, pkgIdx uint32)
VisitFunc(pkgIdx uint32, fnIdx uint32, fd *coverage.FuncDesc)
Finish()
}
CovDataReader is a general-purpose helper/visitor object for reading coverage data files in a structured way. Clients create a CovDataReader to process a given collection of coverage data file directories, then pass in a visitor object with methods that get invoked at various important points. CovDataReader is intended to facilitate common coverage data file operations such as merging or intersecting data files, analyzing data files, or dumping data files.
type CovDataReader struct {
vis CovDataVisitor
indirs []string
matchpkg func(name string) bool
flags CovDataReaderFlags
err error
verbosityLevel int
}
type MReader struct {
f *os.File
rdr *bio.Reader
fileView []byte
off int64
}
MakeCovDataReader creates a CovDataReader object to process the given set of input directories. Here 'vis' is a visitor object providing methods to be invoked as we walk through the data, 'indirs' is the set of coverage data directories to examine, 'verbosityLevel' controls the level of debugging trace messages (zero for off, higher for more output), 'flags' stores flags that indicate what to do if errors are detected, and 'matchpkg' is a caller-provided function that can be used to select specific packages by name (if nil, then all packages are included).
func MakeCovDataReader(vis CovDataVisitor, indirs []string, verbosityLevel int, flags CovDataReaderFlags, matchpkg func(name string) bool) *CovDataReader
func NewMreader(f *os.File) (*MReader, error)
func (r *MReader) Read(p []byte) (int, error)
func (r *MReader) ReadByte() (byte, error)
func (r *MReader) Seek(offset int64, whence int) (int64, error)
func (r *CovDataReader) Visit() error
func (r *CovDataReader) fatal(s string, a ...interface{}) error
func (r *CovDataReader) processPackage(mfname string, pd *decodemeta.CoverageMetaDataDecoder, pkgIdx uint32) error
func (r *CovDataReader) verb(vlevel int, s string, a ...interface{})
visitPod examines a coverage data 'pod', that is, a meta-data file and zero or more counter data files that refer to that meta-data file.
func (r *CovDataReader) visitPod(p pods.Pod) error
func (r *CovDataReader) warn(s string, a ...interface{})
Generated with Arrow