diff options
Diffstat (limited to 'vendor/modernc.org/ccgo/v3/lib/cover.go')
-rw-r--r-- | vendor/modernc.org/ccgo/v3/lib/cover.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/modernc.org/ccgo/v3/lib/cover.go b/vendor/modernc.org/ccgo/v3/lib/cover.go new file mode 100644 index 000000000..fdc39f3fa --- /dev/null +++ b/vendor/modernc.org/ccgo/v3/lib/cover.go @@ -0,0 +1,39 @@ +// Copyright 2020 The CCGO Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ccgo // import "modernc.org/ccgo/v3/lib" + +import ( + "fmt" + "runtime" + "sort" + "strings" +) + +var ( + coverMap = map[uintptr]struct{}{} +) + +func pc2origin(pc uintptr) string { + f := runtime.FuncForPC(pc) + var fn, fns string + var fl int + if f != nil { + fn, fl = f.FileLine(pc) + fns = f.Name() + if x := strings.LastIndex(fns, "."); x > 0 { + fns = fns[x+1:] + } + } + return fmt.Sprintf("%s:%d:%s", fn, fl, fns) +} + +func coverReport() string { + var a []string + for pc := range coverMap { + a = append(a, pc2origin(pc)) + } + sort.Strings(a) + return strings.Join(a, "\n") +} |