Documentation ¶
Overview ¶
Package annotation provides the utils for filtering.
There are two kinds of ignore.
Ignore the whole go file. `//+gocover:ignore:file`
Ignore a go code block. `//+gocover:ignore:block`
Code block concept comes from the go coverage profile, the detail can be found at https://cs.opensource.google/go/x/tools/+/master:cover/profile.go;drc=81efdbcac4736176ac97c60577b0069f76414c44;l=28 https://go.dev/ref/spec#Blocks gives more details about it. For example: pf, err := os.Open(fileName) if err != nil { -| return nil, err | -> code block } -|
{ fmt.Println() -| profile, err := parseIgnoreProfilesFromReader(pf) | -> code block profile.Filename = fileName -| }
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // IgnoreRegexp the regexp for the gocover ignore pattern. // Two kinds of ignore pattern are supported: // - block // - file // // This regexp matches the lines that // starts with any characters, then follows `//+gocover:ignore:` and following either `file` or `block`, // then comments about the intention. IgnoreRegexp = regexp.MustCompile(`.*//\s*\+gocover:ignore:(file|block)(\s*)(.*)`) ErrCommentsRequired = errors.New("comments required") ErrWrongAnnotationFormat = errors.New("wrong ignore annotation format") )
Functions ¶
This section is empty.
Types ¶
type IgnoreBlock ¶
type IgnoreBlock struct { Annotation string // concrete ignore pattern AnnotationLineNumber int // line number the ignore pattern locates at Contents []string // ignore contents Lines []int // corresponding code line number of the ignore contents Comments string // comments about block ignore }
IgnoreBlock represents a single block of ignore profiling data.
type IgnoreProfile ¶
type IgnoreProfile struct { // type of the ignore profile. // when it's BLOCK_IGNORE, IgnoreBlocks contains the concrete ignore data. Type IgnoreType Filename string IgnoreBlocks map[cover.ProfileBlock]*IgnoreBlock Comments string // comments about file ignore Annotation string // concrete ignore pattern }
IgnoreProfile represents the ignore profiling data for a specific file.
func ParseIgnoreProfiles ¶
func ParseIgnoreProfiles(fileName string, coverProfile *cover.Profile) (*IgnoreProfile, error)
ParseIgnoreProfiles parses ignore profile data in the specified file with the help of go unit test cover profile, and returns a ignore profile. The ProfileBlock in the cover profile is already sorted.
type IgnoreType ¶
type IgnoreType string
IgnoreType indicates the type of the ignore profile. - FILE_IGNORE means the profile ignore the whole input file. - BLOCK_IGNORE means the profile ignore several code block of the input file.
const ( FILE_IGNORE IgnoreType = "file" BLOCK_IGNORE IgnoreType = "block" )