X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=tests%2Fovs-macros.at;h=6c0f58dd8e45dc515e7844814b84616e3b2c77bf;hb=fc99370f0ec7a120c33eade822d1d826b4188a3d;hp=541b0425ecaa60a30b9d1a1a753f7c3e76226909;hpb=f295c17bc7046aa0aad4db9f2bf66e00e3dfb399;p=cascardo%2Fovs.git diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at index 541b0425e..6c0f58dd8 100644 --- a/tests/ovs-macros.at +++ b/tests/ovs-macros.at @@ -38,17 +38,21 @@ ovs_setenv() { } ovs_wait () { - # First try a quick sleep, so that the test completes very quickly + # First try the condition without waiting. + ovs_wait_cond && return 0 + + # Try a quick sleep, so that the test completes very quickly # in the normal case. POSIX doesn't require fractional times to # work, so this might not work. sleep 0.1 - ovs_wait_cond && exit 0 + ovs_wait_cond && return 0 + # Then wait up to 10 seconds. for d in 0 1 2 3 4 5 6 7 8 9; do sleep 1 - ovs_wait_cond && exit 0 + ovs_wait_cond && return 0 done - exit 1 + return 1 } # Prints the integers from $1 to $2, increasing by $3 (default 1) on stdout. @@ -98,12 +102,31 @@ fi ] m4_divert_pop([PREPARE_TESTS]) -m4_define([OVS_WAIT], - [AT_CHECK( - [ovs_wait_cond () { $1 +m4_define([OVS_WAIT], [dnl +ovs_wait_cond () { + $1 } -ovs_wait], [0], [ignore], [ignore], [$2])]) +if ovs_wait; then : +else + $2 + AT_FAIL_IF([:]) +fi +]) + +dnl OVS_WAIT_UNTIL(COMMAND) +dnl +dnl Executes shell COMMAND in a loop until it returns +dnl zero return code. If COMMAND did not return +dnl zero code within reasonable time limit, then +dnl the test fails. m4_define([OVS_WAIT_UNTIL], [OVS_WAIT([$1], [$2])]) + +dnl OVS_WAIT_WHILE(COMMAND) +dnl +dnl Executes shell COMMAND in a loop until it returns +dnl non-zero return code. If COMMAND did not return +dnl non-zero code within reasonable time limit, then +dnl the test fails. m4_define([OVS_WAIT_WHILE], [OVS_WAIT([if $1; then return 1; else return 0; fi], [$2])]) @@ -130,3 +153,12 @@ on_exit () { mv cleanup.tmp cleanup } ]) + +dnl Autoconf 2.63 compatibility verison of macro introduced in Autoconf 2.64: +m4_ifndef([AS_VAR_APPEND], + [m4_divert_text([PREPARE_TESTS], + [as_var_append () { + eval $1=\$$1\$2 + } +]) + m4_define([AS_VAR_APPEND], [as_var_append $1 $2])])