1// Copyright 2022 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5/*
6Covdata is a program for manipulating and generating reports
7from 2nd-generation coverage testing output files, those produced
8from running applications or integration tests. E.g.
9
10	$ mkdir ./profiledir
11	$ go build -cover -o myapp.exe .
12	$ GOCOVERDIR=./profiledir ./myapp.exe <arguments>
13	$ ls ./profiledir
14	covcounters.cce1b350af34b6d0fb59cc1725f0ee27.821598.1663006712821344241
15	covmeta.cce1b350af34b6d0fb59cc1725f0ee27
16	$
17
18Run covdata via "go tool covdata <mode>", where 'mode' is a subcommand
19selecting a specific reporting, merging, or data manipulation operation.
20Descriptions on the various modes (run "go tool cover <mode> -help" for
21specifics on usage of a given mode):
22
231. Report percent of statements covered in each profiled package
24
25	$ go tool covdata percent -i=profiledir
26	cov-example/p	coverage: 41.1% of statements
27	main	coverage: 87.5% of statements
28	$
29
302. Report import paths of packages profiled
31
32	$ go tool covdata pkglist -i=profiledir
33	cov-example/p
34	main
35	$
36
373. Report percent statements covered by function:
38
39	$ go tool covdata func -i=profiledir
40	cov-example/p/p.go:12:		emptyFn			0.0%
41	cov-example/p/p.go:32:		Small			100.0%
42	cov-example/p/p.go:47:		Medium			90.9%
43	...
44	$
45
464. Convert coverage data to legacy textual format:
47
48	$ go tool covdata textfmt -i=profiledir -o=cov.txt
49	$ head cov.txt
50	mode: set
51	cov-example/p/p.go:12.22,13.2 0 0
52	cov-example/p/p.go:15.31,16.2 1 0
53	cov-example/p/p.go:16.3,18.3 0 0
54	cov-example/p/p.go:19.3,21.3 0 0
55	...
56	$ go tool cover -html=cov.txt
57	$
58
595. Merge profiles together:
60
61	$ go tool covdata merge -i=indir1,indir2 -o=outdir -modpaths=github.com/go-delve/delve
62	$
63
646. Subtract one profile from another
65
66	$ go tool covdata subtract -i=indir1,indir2 -o=outdir
67	$
68
697. Intersect profiles
70
71	$ go tool covdata intersect -i=indir1,indir2 -o=outdir
72	$
73
748. Dump a profile for debugging purposes.
75
76	$ go tool covdata debugdump -i=indir
77	<human readable output>
78	$
79*/
80package main
81