cov

Imports

Imports #

"cmd/internal/bio"
"io"
"os"
"cmd/internal/bio"
"fmt"
"internal/coverage"
"internal/coverage/decodecounter"
"internal/coverage/decodemeta"
"internal/coverage/pods"
"io"
"os"

Constants & Variables

CovDataReaderNoFlags const #

const CovDataReaderNoFlags CovDataReaderFlags = 0

PanicOnError const #

const PanicOnError = *ast.BinaryExpr

PanicOnWarning const #

const PanicOnWarning

Type Aliases

CovDataReaderFlags type #

type CovDataReaderFlags uint32

Interfaces

CovDataVisitor interface #

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()
}

Structs

CovDataReader struct #

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
}

MReader struct #

type MReader struct {
f *os.File
rdr *bio.Reader
fileView []byte
off int64
}

Functions

MakeCovDataReader function #

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

NewMreader function #

func NewMreader(f *os.File) (*MReader, error)

Read method #

func (r *MReader) Read(p []byte) (int, error)

ReadByte method #

func (r *MReader) ReadByte() (byte, error)

Seek method #

func (r *MReader) Seek(offset int64, whence int) (int64, error)

Visit method #

func (r *CovDataReader) Visit() error

fatal method #

func (r *CovDataReader) fatal(s string, a ...interface{}) error

processPackage method #

func (r *CovDataReader) processPackage(mfname string, pd *decodemeta.CoverageMetaDataDecoder, pkgIdx uint32) error

verb method #

func (r *CovDataReader) verb(vlevel int, s string, a ...interface{})

visitPod method #

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

warn method #

func (r *CovDataReader) warn(s string, a ...interface{})

Generated with Arrow