summaryrefslogtreecommitdiffstats
path: root/src/cmd/covdata/doc.go
blob: 924a742ed588f3a4ec82b5f5903cf78058528ab0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// 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