diff options
Diffstat (limited to 'build')
-rwxr-xr-x | build/env.sh | 6 | ||||
-rwxr-xr-x | build/ldflags.sh | 13 | ||||
-rwxr-xr-x | build/test-global-coverage.sh | 26 |
3 files changed, 44 insertions, 1 deletions
diff --git a/build/env.sh b/build/env.sh index b28ad6259..04401a3e1 100755 --- a/build/env.sh +++ b/build/env.sh @@ -24,5 +24,9 @@ GOPATH="$ethdir/go-ethereum/Godeps/_workspace:$workspace" GOBIN="$PWD/build/bin" export GOPATH GOBIN +# Run the command inside the workspace. +cd "$ethdir/go-ethereum" +PWD="$ethdir/go-ethereum" + # Launch the arguments with the configured environment. -exec $@ +exec "$@" diff --git a/build/ldflags.sh b/build/ldflags.sh new file mode 100755 index 000000000..9e17ca498 --- /dev/null +++ b/build/ldflags.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +if [ ! -f "build/env.sh" ]; then + echo "$0 must be run from the root of the repository." + exit 2 +fi + +# set gitCommit when running from a Git checkout. +if [ -f ".git/HEAD" ]; then + echo "-ldflags '-X main.gitCommit $(git rev-parse HEAD)'" +fi diff --git a/build/test-global-coverage.sh b/build/test-global-coverage.sh new file mode 100755 index 000000000..417c829f4 --- /dev/null +++ b/build/test-global-coverage.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# This script runs all package tests and merges the resulting coverage +# profiles. Coverage is accounted per package under test. + +set -e + +if [ ! -f "build/env.sh" ]; then + echo "$0 must be run from the root of the repository." + exit 2 +fi + +echo "mode: count" > profile.cov + +for pkg in $(go list ./...); do + # drop the namespace prefix. + dir=${pkg##github.com/ethereum/go-ethereum/} + + if [[ $dir != "tests/vm" ]]; then + go test -covermode=count -coverprofile=$dir/profile.tmp $pkg + fi + if [[ -f $dir/profile.tmp ]]; then + tail -n +2 $dir/profile.tmp >> profile.cov + rm $dir/profile.tmp + fi +done |