| // 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 | |