aboutsummaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rwxr-xr-xbuild/env.sh6
-rwxr-xr-xbuild/ldflags.sh13
-rwxr-xr-xbuild/test-global-coverage.sh26
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