tests: Add Autoconf 2.63 compatibility support for AS_VAR_APPEND.
[cascardo/ovs.git] / tests / ovs-macros.at
index 541b042..6c0f58d 100644 (file)
@@ -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])])