Files
avo/script/covermain
Michael McLoughlin 3426f8bd2d ci: github actions (#107)
Github actions workflow for CI.

Updates #106
2020-01-03 17:32:09 -08:00

30 lines
573 B
Bash
Executable File

#!/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 -o ${testbin} -covermode=count -coverpkg="github.com/mmcloughlin/avo/..." ${workdir}/*.go
${testbin} -test.coverprofile=${output}
cp ${output} ${coverprofile}
# Cleanup.
rm -rf ${workdir}