mirror of https://go.googlesource.com/go
81 lines
2.0 KiB
Go
81 lines
2.0 KiB
Go
// Copyright 2022 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
/*
|
|
Covdata is a program for manipulating and generating reports
|
|
from 2nd-generation coverage testing output files, those produced
|
|
from running applications or integration tests. E.g.
|
|
|
|
$ mkdir ./profiledir
|
|
$ go build -cover -o myapp.exe .
|
|
$ GOCOVERDIR=./profiledir ./myapp.exe <arguments>
|
|
$ ls ./profiledir
|
|
covcounters.cce1b350af34b6d0fb59cc1725f0ee27.821598.1663006712821344241
|
|
covmeta.cce1b350af34b6d0fb59cc1725f0ee27
|
|
$
|
|
|
|
Run covdata via "go tool covdata <mode>", where 'mode' is a subcommand
|
|
selecting a specific reporting, merging, or data manipulation operation.
|
|
Descriptions on the various modes (run "go tool cover <mode> -help" for
|
|
specifics on usage of a given mode):
|
|
|
|
1. Report percent of statements covered in each profiled package
|
|
|
|
$ go tool covdata percent -i=profiledir
|
|
cov-example/p coverage: 41.1% of statements
|
|
main coverage: 87.5% of statements
|
|
$
|
|
|
|
2. Report import paths of packages profiled
|
|
|
|
$ go tool covdata pkglist -i=profiledir
|
|
cov-example/p
|
|
main
|
|
$
|
|
|
|
3. Report percent statements covered by function:
|
|
|
|
$ go tool covdata func -i=profiledir
|
|
cov-example/p/p.go:12: emptyFn 0.0%
|
|
cov-example/p/p.go:32: Small 100.0%
|
|
cov-example/p/p.go:47: Medium 90.9%
|
|
...
|
|
$
|
|
|
|
4. Convert coverage data to legacy textual format:
|
|
|
|
$ go tool covdata textfmt -i=profiledir -o=cov.txt
|
|
$ head cov.txt
|
|
mode: set
|
|
cov-example/p/p.go:12.22,13.2 0 0
|
|
cov-example/p/p.go:15.31,16.2 1 0
|
|
cov-example/p/p.go:16.3,18.3 0 0
|
|
cov-example/p/p.go:19.3,21.3 0 0
|
|
...
|
|
$ go tool cover -html=cov.txt
|
|
$
|
|
|
|
5. Merge profiles together:
|
|
|
|
$ go tool covdata merge -i=indir1,indir2 -o=outdir -modpaths=github.com/go-delve/delve
|
|
$
|
|
|
|
6. Subtract one profile from another
|
|
|
|
$ go tool covdata subtract -i=indir1,indir2 -o=outdir
|
|
$
|
|
|
|
7. Intersect profiles
|
|
|
|
$ go tool covdata intersect -i=indir1,indir2 -o=outdir
|
|
$
|
|
|
|
8. Dump a profile for debugging purposes.
|
|
|
|
$ go tool covdata debugdump -i=indir
|
|
<human readable output>
|
|
$
|
|
*/
|
|
package main
|