diff --git a/test b/test index c5810607e..0730399df 100755 --- a/test +++ b/test @@ -21,6 +21,12 @@ fail=0 TESTDIRS=$(find . -type f -name '*_test.go' | xargs -n1 dirname | grep -v prog | sort -u) +# If running on circle, use the scheduler to work out what tests to run on what shard +if [ -n "$CIRCLECI" -a -z "$NO_SCHEDULER" -a -x "$DIR/sched" ]; then + TESTDIRS=$(echo $TESTDIRS | "$DIR/sched" sched units-$CIRCLE_BUILD_NUM $CIRCLE_NODE_TOTAL $CIRCLE_NODE_INDEX) + echo $TESTDIRS +fi + for dir in $TESTDIRS; do go get -t -tags netgo $dir @@ -38,7 +44,7 @@ for dir in $TESTDIRS; do RUNTIME=$(( $(date +%s) - $START )) # Report test runtime when running on circle, to help scheduler - if [ -n "$CIRCLECI" -a -z "$NO_SCHEDULER" ]; then + if [ -n "$CIRCLECI" -a -z "$NO_SCHEDULER" -a -x "$DIR/sched" ]; then "$DIR/sched" time $dir $RUNTIME fi done