1 AT_TESTED([ovs-vswitchd])
5 m4_include([m4/compat.at])
7 dnl Make AT_SETUP automatically run the ovs_init() shell function
8 dnl as the first step in every test.
9 m4_rename([AT_SETUP], [OVS_AT_SETUP])
10 m4_define([AT_SETUP], [OVS_AT_SETUP($@)
13 m4_divert_push([PREPARE_TESTS])
15 # Set ovs_base to the base directory in which the test is running and
16 # initialize the OVS_*DIR environment variables to point to this
20 trap '. "$ovs_base/cleanup"' 0
22 OVS_RUNDIR=$ovs_base; export OVS_RUNDIR
23 OVS_LOGDIR=$ovs_base; export OVS_LOGDIR
24 OVS_DBDIR=$ovs_base; export OVS_DBDIR
25 OVS_SYSCONFDIR=$ovs_base; export OVS_SYSCONFDIR
26 OVS_PKGDATADIR=$ovs_base; export OVS_PKGDATADIR
30 # First try a quick sleep, so that the test completes very quickly
31 # in the normal case. POSIX doesn't require fractional times to
32 # work, so this might not work.
34 ovs_wait_cond && exit 0
35 # Then wait up to 10 seconds.
36 for d in 0 1 2 3 4 5 6 7 8 9; do
38 ovs_wait_cond && exit 0
43 # Prints the integers from $1 to $2, increasing by $3 (default 1) on stdout.
45 while test $1 -le $2; do
47 set `expr $1 + ${3-1}` $2 $3
51 if test "$IS_WIN32" = "yes"; then
57 command diff --strip-trailing-cr "$@"
60 # tskill is more effective than taskkill but it isn't always installed.
61 if (tskill //?) >/dev/null 2>&1; then :; else
62 tskill () { taskkill //F //PID $1 >/dev/null; }
72 # tasklist always returns 0.
73 # If pid does exist, there will be a line with the pid.
74 if tasklist //fi "PID eq $arg" | grep $arg >/dev/null; then
75 if test "X$signal" != "X-0"; then
88 m4_divert_pop([PREPARE_TESTS])
92 [ovs_wait_cond () { $1
94 ovs_wait], [0], [ignore], [ignore], [$2])])
95 m4_define([OVS_WAIT_UNTIL], [OVS_WAIT([$1], [$2])])
96 m4_define([OVS_WAIT_WHILE],
97 [OVS_WAIT([if $1; then return 1; else return 0; fi], [$2])])
99 dnl OVS_APP_EXIT_AND_WAIT(DAEMON)
101 dnl Ask the daemon named DAEMON to exit, via ovs-appctl, and then waits for it
103 m4_define([OVS_APP_EXIT_AND_WAIT],
104 [ovs-appctl -t $1 exit
105 OVS_WAIT_WHILE([test -e $1.pid])])
107 dnl on_exit "COMMAND"
109 dnl Add the shell COMMAND to a collection executed when the current test
110 dnl completes, as a cleanup action. (The most common use is to kill a
111 dnl daemon started by the test. This is important to prevent tests that
112 dnl start daemons from hanging at exit.)
114 dnl Cleanup commands are executed in the reverse order of calls to this
116 m4_divert_text([PREPARE_TESTS], [dnl
118 (echo "$1"; cat cleanup) > cleanup.tmp
119 mv cleanup.tmp cleanup