From 610202097aeaaac0c30d2ae6c0422b3750edefce Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Mon, 6 Feb 2017 21:18:35 +0100 Subject: [PATCH] test: Enable macOS shell testing * Check and install libvirt with Homebrew macOS does not have apt, dnf or yum. Add checking for homebrew for installing libvirt. * Use platform timeout for tests * Add timeout detection to test/util.sh * Use $timeout for shell test requiring timeout --- misc/make-deps.sh | 7 ++++++- test/shell/file-move-upper-dir.sh | 2 +- test/shell/prometheus-1.sh | 2 +- test/shell/prometheus-2.sh | 2 +- test/shell/t1.sh | 2 +- test/shell/t2.sh | 2 +- test/shell/t3.sh | 6 +++--- test/shell/t4.sh | 2 +- test/shell/t5.sh | 2 +- test/shell/t5b.sh | 2 +- test/shell/t6.sh | 2 +- test/shell/t7.sh | 2 +- test/shell/t8.sh | 4 ++-- test/util.sh | 6 ++++++ 14 files changed, 27 insertions(+), 16 deletions(-) diff --git a/misc/make-deps.sh b/misc/make-deps.sh index d27a48d5..bbdd9acd 100755 --- a/misc/make-deps.sh +++ b/misc/make-deps.sh @@ -14,13 +14,14 @@ sudo_command=$(which sudo) YUM=`which yum 2>/dev/null` DNF=`which dnf 2>/dev/null` APT=`which apt-get 2>/dev/null` +BREW=`which brew 2>/dev/null` # if DNF is available use it if [ -x "$DNF" ]; then YUM=$DNF fi -if [ -z "$YUM" -a -z "$APT" ]; then +if [ -z "$YUM" -a -z "$APT" -a -z "$BREW" ]; then echo "The package managers can't be found." exit 1 fi @@ -36,6 +37,10 @@ if [ ! -z "$APT" ]; then $sudo_command $APT install -y libpcap0.8-dev || true fi +if [ ! -z "$BREW" ]; then + $BREW install libvirt || true +fi + if [ $travis -eq 0 ]; then if [ ! -z "$YUM" ]; then # some go dependencies are stored in mercurial diff --git a/test/shell/file-move-upper-dir.sh b/test/shell/file-move-upper-dir.sh index 3e1db994..945bb897 100755 --- a/test/shell/file-move-upper-dir.sh +++ b/test/shell/file-move-upper-dir.sh @@ -7,7 +7,7 @@ exit 0 mkdir -p /tmp/mgmt/a/b/c/ # run empty graph, with prometheus support -timeout --kill-after=20s 15s ./mgmt run --tmp-prefix --yaml=examples/deep-dirs.yaml & +$timeout --kill-after=20s 15s ./mgmt run --tmp-prefix --yaml=examples/deep-dirs.yaml & pid=$! sleep 5s # let it converge diff --git a/test/shell/prometheus-1.sh b/test/shell/prometheus-1.sh index b43d138e..5421a679 100755 --- a/test/shell/prometheus-1.sh +++ b/test/shell/prometheus-1.sh @@ -1,7 +1,7 @@ #!/bin/bash -e # run empty graph, with prometheus support -timeout --kill-after=20s 15s ./mgmt run --tmp-prefix --prometheus & +$timeout --kill-after=20s 15s ./mgmt run --tmp-prefix --prometheus & pid=$! sleep 5s # let it converge diff --git a/test/shell/prometheus-2.sh b/test/shell/prometheus-2.sh index 1dfa1aec..733fe647 100755 --- a/test/shell/prometheus-2.sh +++ b/test/shell/prometheus-2.sh @@ -1,7 +1,7 @@ #!/bin/bash -e # run empty graph, with prometheus support -timeout --kill-after=20s 15s ./mgmt run --tmp-prefix --prometheus --prometheus-listen :52637 & +$timeout --kill-after=20s 15s ./mgmt run --tmp-prefix --prometheus --prometheus-listen :52637 & pid=$! sleep 5s # let it converge diff --git a/test/shell/t1.sh b/test/shell/t1.sh index ad0084c9..2d3b02df 100755 --- a/test/shell/t1.sh +++ b/test/shell/t1.sh @@ -9,7 +9,7 @@ set -o errexit set -o pipefail -timeout --kill-after=3s 1s ./mgmt --help # hello world! +$timeout --kill-after=3s 1s ./mgmt --help # hello world! pid=$! wait $pid # get exit status exit $? diff --git a/test/shell/t2.sh b/test/shell/t2.sh index 1923e3c8..2205fd40 100755 --- a/test/shell/t2.sh +++ b/test/shell/t2.sh @@ -7,7 +7,7 @@ if env | grep -q -e '^TRAVIS=true$'; then fi # run till completion -timeout --kill-after=15s 10s ./mgmt run --yaml t2.yaml --converged-timeout=5 --no-watch --tmp-prefix & +$timeout --kill-after=15s 10s ./mgmt run --yaml t2.yaml --converged-timeout=5 --no-watch --tmp-prefix & pid=$! wait $pid # get exit status e=$? diff --git a/test/shell/t3.sh b/test/shell/t3.sh index e285d7b3..6f226ddb 100755 --- a/test/shell/t3.sh +++ b/test/shell/t3.sh @@ -10,11 +10,11 @@ fi mkdir -p "${MGMT_TMPDIR}"mgmt{A..C} # run till completion -timeout --kill-after=15s 10s ./mgmt run --yaml t3-a.yaml --converged-timeout=5 --no-watch --tmp-prefix & +$timeout --kill-after=15s 10s ./mgmt run --yaml t3-a.yaml --converged-timeout=5 --no-watch --tmp-prefix & pid1=$! -timeout --kill-after=15s 10s ./mgmt run --yaml t3-b.yaml --converged-timeout=5 --no-watch --tmp-prefix & +$timeout --kill-after=15s 10s ./mgmt run --yaml t3-b.yaml --converged-timeout=5 --no-watch --tmp-prefix & pid2=$! -timeout --kill-after=15s 10s ./mgmt run --yaml t3-c.yaml --converged-timeout=5 --no-watch --tmp-prefix & +$timeout --kill-after=15s 10s ./mgmt run --yaml t3-c.yaml --converged-timeout=5 --no-watch --tmp-prefix & pid3=$! wait $pid1 # get exit status diff --git a/test/shell/t4.sh b/test/shell/t4.sh index 139bffa2..6eeb832d 100755 --- a/test/shell/t4.sh +++ b/test/shell/t4.sh @@ -1,7 +1,7 @@ #!/bin/bash -e # should take slightly more than 25s, but fail if we take 35s) -timeout --kill-after=35s 30s ./mgmt run --yaml t4.yaml --converged-timeout=5 --no-watch --tmp-prefix & +$timeout --kill-after=35s 30s ./mgmt run --yaml t4.yaml --converged-timeout=5 --no-watch --tmp-prefix & pid=$! wait $pid # get exit status exit $? diff --git a/test/shell/t5.sh b/test/shell/t5.sh index 48b6ee37..2053e9ab 100755 --- a/test/shell/t5.sh +++ b/test/shell/t5.sh @@ -1,7 +1,7 @@ #!/bin/bash -e # should take slightly more than 35s, but fail if we take 45s) -timeout --kill-after=45s 40s ./mgmt run --yaml t5.yaml --converged-timeout=5 --no-watch --tmp-prefix & +$timeout --kill-after=45s 40s ./mgmt run --yaml t5.yaml --converged-timeout=5 --no-watch --tmp-prefix & pid=$! wait $pid # get exit status exit $? diff --git a/test/shell/t5b.sh b/test/shell/t5b.sh index 48b6ee37..2053e9ab 100755 --- a/test/shell/t5b.sh +++ b/test/shell/t5b.sh @@ -1,7 +1,7 @@ #!/bin/bash -e # should take slightly more than 35s, but fail if we take 45s) -timeout --kill-after=45s 40s ./mgmt run --yaml t5.yaml --converged-timeout=5 --no-watch --tmp-prefix & +$timeout --kill-after=45s 40s ./mgmt run --yaml t5.yaml --converged-timeout=5 --no-watch --tmp-prefix & pid=$! wait $pid # get exit status exit $? diff --git a/test/shell/t6.sh b/test/shell/t6.sh index f01420c2..0f16399c 100755 --- a/test/shell/t6.sh +++ b/test/shell/t6.sh @@ -7,7 +7,7 @@ if env | grep -q -e '^TRAVIS=true$'; then fi # run till completion -timeout --kill-after=20s 15s ./mgmt run --yaml t6.yaml --no-watch --tmp-prefix & +$timeout --kill-after=20s 15s ./mgmt run --yaml t6.yaml --no-watch --tmp-prefix & pid=$! sleep 1s # let it converge test -e /tmp/mgmt/f1 diff --git a/test/shell/t7.sh b/test/shell/t7.sh index 655a05d6..cfbba8af 100755 --- a/test/shell/t7.sh +++ b/test/shell/t7.sh @@ -1,7 +1,7 @@ #!/bin/bash -e # run empty graph -timeout --kill-after=20s 15s ./mgmt run --tmp-prefix & +$timeout --kill-after=20s 15s ./mgmt run --tmp-prefix & pid=$! sleep 5s # let it converge $(sleep 3s && killall -SIGINT mgmt)& # send ^C to exit mgmt diff --git a/test/shell/t8.sh b/test/shell/t8.sh index ef9ad1e2..0a175633 100755 --- a/test/shell/t8.sh +++ b/test/shell/t8.sh @@ -3,11 +3,11 @@ exit 0 # XXX: test temporarily disabled till etcd or mgmt regression is fixed. # run empty graphs, we're just testing etcd clustering -timeout --kill-after=180s 120s ./mgmt run --hostname h1 --tmp-prefix & +$timeout --kill-after=180s 120s ./mgmt run --hostname h1 --tmp-prefix & pid1=$! sleep 15s # let it startup -timeout --kill-after=180s 120s ./mgmt run --hostname h2 --seeds http://127.0.0.1:2379 --client-urls http://127.0.0.1:2381 --server-urls http://127.0.0.1:2382 --tmp-prefix & +$timeout --kill-after=180s 120s ./mgmt run --hostname h2 --seeds http://127.0.0.1:2379 --client-urls http://127.0.0.1:2381 --server-urls http://127.0.0.1:2382 --tmp-prefix & pid2=$! sleep 15s diff --git a/test/util.sh b/test/util.sh index da922a17..f6ae85d3 100644 --- a/test/util.sh +++ b/test/util.sh @@ -1,5 +1,11 @@ # common settings and functions for test scripts +if [[ $(uname) == "Darwin" ]] ; then + export timeout="gtimeout" +else + export timeout="timeout" +fi + fail_test() { echo "FAIL: $@"