]> git.proxmox.com Git - mirror_ovs.git/blame - tests/ovs-macros.at
autotest: refactor OVS_VSWITCHD_START MACRO
[mirror_ovs.git] / tests / ovs-macros.at
CommitLineData
02e6f2f7
AZ
1AT_TESTED([ovs-vswitchd])
2AT_TESTED([ovs-vsctl])
3AT_TESTED([perl])
4
5m4_include([m4/compat.at])
6
7m4_divert_push([PREPARE_TESTS])
8[
9ovs_wait () {
10 # First try a quick sleep, so that the test completes very quickly
11 # in the normal case. POSIX doesn't require fractional times to
12 # work, so this might not work.
13 sleep 0.1
14 ovs_wait_cond && exit 0
15 # Then wait up to 10 seconds.
16 for d in 0 1 2 3 4 5 6 7 8 9; do
17 sleep 1
18 ovs_wait_cond && exit 0
19 done
20 exit 1
21}
22
23# Prints the integers from $1 to $2, increasing by $3 (default 1) on stdout.
24seq () {
25 while test $1 -le $2; do
26 echo $1
27 set `expr $1 + ${3-1}` $2 $3
28 done
29}
30
31if test "$IS_WIN32" = "yes"; then
32 pwd () {
33 command pwd -W "$@"
34 }
35
36 diff () {
37 command diff --strip-trailing-cr "$@"
38 }
39
40 kill () {
41 case "$1" in
42 -0)
43 shift
44 for i in $*; do
45 # tasklist will always have return code 0.
46 # If pid does exist, there will be a line with the pid.
47 if tasklist //fi "PID eq $i" | grep $i >/dev/null; then
48 :
49 else
50 return 1
51 fi
52 done
53 return 0
54 ;;
55 -[1-9]*)
56 shift
57 for i in $*; do
58 taskkill //F //PID $i >/dev/null
59 done
60 ;;
61 [1-9][0-9]*)
62 for i in $*; do
63 taskkill //F //PID $i >/dev/null
64 done
65 ;;
66 esac
67 }
68fi
69]
70m4_divert_pop([PREPARE_TESTS])
71
72m4_define([OVS_WAIT],
73 [AT_CHECK(
74 [ovs_wait_cond () { $1
75}
76ovs_wait], [0], [ignore], [ignore], [$2])])
77m4_define([OVS_WAIT_UNTIL], [OVS_WAIT([$1], [$2])])
78m4_define([OVS_WAIT_WHILE],
79 [OVS_WAIT([if $1; then return 1; else return 0; fi], [$2])])
80
81dnl OVS_APP_EXIT_AND_WAIT(DAEMON)
82dnl
83dnl Ask the daemon named DAEMON to exit, via ovs-appctl, and then waits for it
84dnl to exit.
85m4_define([OVS_APP_EXIT_AND_WAIT],
86 [ovs-appctl -t $1 exit
87 OVS_WAIT_WHILE([test -e $1.pid])])
88
89dnl ON_EXIT([COMMANDS])
90dnl
91dnl Adds the shell COMMANDS to a collection executed when the current test
92dnl completes, as a cleanup action. (The most common use is to kill a
93dnl daemon started by the test. This is important to prevent tests that
94dnl start daemons from hanging at exit.)
95m4_define([ON_EXIT], [trap '. ./cleanup' 0; cat >>cleanup <<'EOF'
96$1
97EOF
98])