@@ -41,7 +41,15 @@ func Generate() {
|
|||||||
flag.Parse()
|
flag.Parse()
|
||||||
}
|
}
|
||||||
cfg := flags.Config()
|
cfg := flags.Config()
|
||||||
os.Exit(Main(cfg, ctx))
|
|
||||||
|
status := Main(cfg, ctx)
|
||||||
|
|
||||||
|
// To record coverage of integration tests we wrap main() functions in a test
|
||||||
|
// functions. In this case we need the main function to terminate, therefore we
|
||||||
|
// only exit for failure status codes.
|
||||||
|
if status != 0 {
|
||||||
|
os.Exit(status)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GP8v() reg.GPVirtual { return ctx.GP8v() }
|
func GP8v() reg.GPVirtual { return ctx.GP8v() }
|
||||||
|
|||||||
29
script/covermain
Executable file
29
script/covermain
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
main=$1
|
||||||
|
coverprofile=$2
|
||||||
|
|
||||||
|
# Temporary working directory.
|
||||||
|
workdir=$(mktemp -d)
|
||||||
|
|
||||||
|
# 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}
|
||||||
Reference in New Issue
Block a user