mirror of
https://github.com/octoleo/syncthing.git
synced 2025-04-01 15:21:55 +00:00
build, jenkins: Move test coverage stuff to jenkins/
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4178
This commit is contained in:
parent
719c313b23
commit
3f1fa04725
34
build.sh
34
build.sh
@ -93,40 +93,6 @@ case "${1:-default}" in
|
|||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
|
||||||
test-cov)
|
|
||||||
ulimit -t 600 &>/dev/null || true
|
|
||||||
ulimit -d 512000 &>/dev/null || true
|
|
||||||
ulimit -m 512000 &>/dev/null || true
|
|
||||||
|
|
||||||
echo "mode: set" > coverage.out
|
|
||||||
fail=0
|
|
||||||
|
|
||||||
# For every package in the repo
|
|
||||||
for dir in $(go list ./lib/... ./cmd/...) ; do
|
|
||||||
# run the tests
|
|
||||||
GOPATH="$(pwd)/Godeps/_workspace:$GOPATH" go test -coverprofile=profile.out $dir
|
|
||||||
if [ -f profile.out ] ; then
|
|
||||||
# and if there was test output, append it to coverage.out
|
|
||||||
grep -v "mode: " profile.out >> coverage.out
|
|
||||||
rm profile.out
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
notCovered=$(egrep -c '\s0$' coverage.out)
|
|
||||||
total=$(wc -l coverage.out | awk '{print $1}')
|
|
||||||
coverPct=$(awk "BEGIN{print (1 - $notCovered / $total) * 100}")
|
|
||||||
echo "Total coverage is $coverPct%"
|
|
||||||
|
|
||||||
gocov convert coverage.out | gocov-xml > coverage.xml
|
|
||||||
|
|
||||||
# This is usually run from within Jenkins. If it is, we need to
|
|
||||||
# tweak the paths in coverage.xml so cobertura finds the
|
|
||||||
# source.
|
|
||||||
if [[ "${WORKSPACE:-default}" != "default" ]] ; then
|
|
||||||
sed "s#$WORKSPACE##g" < coverage.xml > coverage.xml.new && mv coverage.xml.new coverage.xml
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
test-xunit)
|
test-xunit)
|
||||||
ulimit -t 600 &>/dev/null || true
|
ulimit -t 600 &>/dev/null || true
|
||||||
ulimit -d 512000 &>/dev/null || true
|
ulimit -d 512000 &>/dev/null || true
|
||||||
|
@ -65,7 +65,30 @@ function test {
|
|||||||
|
|
||||||
function testWithCoverage {
|
function testWithCoverage {
|
||||||
echo Test with coverage
|
echo Test with coverage
|
||||||
CGO_ENABLED=1 ./build.sh test-cov
|
CGO_ENABLED=1
|
||||||
|
|
||||||
|
echo "mode: set" > coverage.out
|
||||||
|
fail=0
|
||||||
|
|
||||||
|
# For every package in the repo
|
||||||
|
for dir in $(go list ./lib/... ./cmd/...) ; do
|
||||||
|
# run the tests
|
||||||
|
GOPATH="$(pwd)/Godeps/_workspace:$GOPATH" go test -coverprofile=profile.out $dir
|
||||||
|
if [ -f profile.out ] ; then
|
||||||
|
# and if there was test output, append it to coverage.out
|
||||||
|
grep -v "mode: " profile.out >> coverage.out
|
||||||
|
rm profile.out
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
gocov convert coverage.out | gocov-xml > coverage.xml
|
||||||
|
|
||||||
|
# This is usually run from within Jenkins. If it is, we need to
|
||||||
|
# tweak the paths in coverage.xml so cobertura finds the
|
||||||
|
# source.
|
||||||
|
if [[ "${WORKSPACE:-default}" != "default" ]] ; then
|
||||||
|
sed "s#$WORKSPACE##g" < coverage.xml > coverage.xml.new && mv coverage.xml.new coverage.xml
|
||||||
|
fi
|
||||||
|
|
||||||
notCovered=$(egrep -c '\s0$' coverage.out)
|
notCovered=$(egrep -c '\s0$' coverage.out)
|
||||||
total=$(wc -l coverage.out | awk '{print $1}')
|
total=$(wc -l coverage.out | awk '{print $1}')
|
||||||
@ -73,6 +96,8 @@ function testWithCoverage {
|
|||||||
echo "$coverPct" > "coverage.txt"
|
echo "$coverPct" > "coverage.txt"
|
||||||
echo "Test coverage is $coverPct%%"
|
echo "Test coverage is $coverPct%%"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
CGO_ENABLED=0 # reset to before
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildSource {
|
function buildSource {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user