-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
run_tests
executable file
·130 lines (115 loc) · 4.32 KB
/
run_tests
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/bash
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# ARG_OPTIONAL_BOOLEAN([tear-down],[t],[tear down the docker containers after testing],[on])
# ARG_OPTIONAL_BOOLEAN([parallel],[p],[run tests in parallel (GNU Parallel required)],[on])
# ARG_HELP([run tests])
# ARGBASH_GO()
# needed because of Argbash --> m4_ignore([
### START OF CODE GENERATED BY Argbash v2.9.0 one line above ###
# Argbash is a bash code generator used to get arguments parsing right.
# Argbash is FREE SOFTWARE, see https://argbash.io for more info
# Generated online by https://argbash.io/generate
die()
{
local _ret="${2:-1}"
test "${_PRINT_HELP:-no}" = yes && print_help >&2
echo "$1" >&2
exit "${_ret}"
}
begins_with_short_option()
{
local first_option all_short_options='tph'
first_option="${1:0:1}"
test "$all_short_options" = "${all_short_options/$first_option/}" && return 1 || return 0
}
# THE DEFAULTS INITIALIZATION - OPTIONALS
_arg_tear_down="on"
_arg_parallel="on"
print_help()
{
printf '%s\n' "run tests"
printf 'Usage: %s [-t|--(no-)tear-down] [-p|--(no-)parallel] [-h|--help]\n' "$0"
printf '\t%s\n' "-t, --tear-down, --no-tear-down: tear down the docker containers after testing (on by default)"
printf '\t%s\n' "-p, --parallel, --no-parallel: run tests in parallel (GNU Parallel required) (on by default)"
printf '\t%s\n' "-h, --help: Prints help"
}
parse_commandline()
{
while test $# -gt 0
do
_key="$1"
case "$_key" in
-t|--no-tear-down|--tear-down)
_arg_tear_down="on"
test "${1:0:5}" = "--no-" && _arg_tear_down="off"
;;
-t*)
_arg_tear_down="on"
_next="${_key##-t}"
if test -n "$_next" -a "$_next" != "$_key"
then
{ begins_with_short_option "$_next" && shift && set -- "-t" "-${_next}" "$@"; } || die "The short option '$_key' can't be decomposed to ${_key:0:2} and -${_key:2}, because ${_key:0:2} doesn't accept value and '-${_key:2:1}' doesn't correspond to a short option."
fi
;;
-p|--no-parallel|--parallel)
_arg_parallel="on"
test "${1:0:5}" = "--no-" && _arg_parallel="off"
;;
-p*)
_arg_parallel="on"
_next="${_key##-p}"
if test -n "$_next" -a "$_next" != "$_key"
then
{ begins_with_short_option "$_next" && shift && set -- "-p" "-${_next}" "$@"; } || die "The short option '$_key' can't be decomposed to ${_key:0:2} and -${_key:2}, because ${_key:0:2} doesn't accept value and '-${_key:2:1}' doesn't correspond to a short option."
fi
;;
-h|--help)
print_help
exit 0
;;
-h*)
print_help
exit 0
;;
*)
_PRINT_HELP=yes die "FATAL ERROR: Got an unexpected argument '$1'" 1
;;
esac
shift
done
}
parse_commandline "$@"
# OTHER STUFF GENERATED BY Argbash
### END OF CODE GENERATED BY Argbash (sortof) ### ])
# [ <-- needed because of Argbash
if [[ $_arg_parallel == 'on' ]]
then
pdk validate --parallel &&
pdk test unit --parallel
else
pdk validate &&
pdk test unit
fi &&
{
pdk bundle exec rake litmus:tear_down
pdk bundle exec rake 'litmus:provision_list[default]' &&
pdk bundle exec rake litmus:install_agent &&
pdk bundle exec rake litmus:install_module &&
if [[ $_arg_parallel == 'on' ]]
then
parallel \
'TARGET_HOST=localhost:222{1} pdk bundle exec rspec spec/acceptance/bind_{2}spec.rb' \
::: 2 3 4 5 :::+ '' backport_ resolvconf_service_ authoritative_
else
TARGET_HOST=localhost:2222 pdk bundle exec rspec spec/acceptance/bind_spec.rb &&
TARGET_HOST=localhost:2223 pdk bundle exec rspec spec/acceptance/bind_backport_spec.rb &&
TARGET_HOST=localhost:2224 pdk bundle exec rspec spec/acceptance/bind_resolvconf_service_spec.rb &&
TARGET_HOST=localhost:2225 pdk bundle exec rspec spec/acceptance/bind_authoritative_spec.rb
fi &&
if [[ $_arg_tear_down == 'on' ]]
then
pdk bundle exec rake litmus:tear_down
fi
}
# ] <-- needed because of Argbash