File: covermain

package info (click to toggle)
golang-github-mmcloughlin-avo 0.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 15,024 kB
  • sloc: xml: 71,029; asm: 14,862; sh: 194; makefile: 21; ansic: 11
file content (29 lines) | stat: -rwxr-xr-x 591 bytes parent folder | download
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
#!/bin/bash -e

main=$1
coverprofile=$2

# Temporary working directory.
workdir=$(mktemp -d tmpXXXXXXXX)

# Wrap the main function in a go test.
cp ${main} ${workdir}
cat > ${workdir}/main_test.go <<EOF
package main

import "testing"

func TestRunMain(t *testing.T) {
	main()
}
EOF

# Execute the test with coverage.
testbin="${workdir}/testbin"
output="${workdir}/cover.out"
go test -tags=integration -o ${testbin} -covermode=count -coverpkg="github.com/mmcloughlin/avo/..." ${workdir}/*.go
${testbin} -test.coverprofile=${output}
cp ${output} ${coverprofile}

# Cleanup.
rm -rf ${workdir}