Browse Source

tests: Wait for hostapd/wpa_supplicant to reply at start (concurrent)

Instead of waiting for a fixed duration, poll hostapd/wpa_supplicant
through the control interface until they are ready to reply in order to
avoid starting test case execution too early. This is like commit
b76579e0c09a1a763b70d63613377b407cbc405f but for the concurrent P2P test
cases that were forgotten from that commit.

Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen 11 years ago
parent
commit
15f7b02c95
1 changed files with 24 additions and 1 deletions
  1. 24 1
      tests/hwsim/start-p2p-concurrent.sh

+ 24 - 1
tests/hwsim/start-p2p-concurrent.sh

@@ -2,6 +2,7 @@
 
 DIR="$( cd "$( dirname "$0" )" && pwd )"
 WPAS=$DIR/../../wpa_supplicant/wpa_supplicant
+WPACLI=$DIR/../../wpa_supplicant/wpa_cli
 HAPD=$DIR/../../hostapd/hostapd
 WLANTEST=$DIR/../../wlantest/wlantest
 
@@ -36,5 +37,27 @@ sleep 1
 sudo chown $USER $DIR/logs/$DATE-hwsim0.dump
 if [ "x$VALGRIND" = "xy" ]; then
     sudo chown $USER $DIR/logs/$DATE-valgrind*
-    sleep 10
 fi
+
+# wait for programs to be fully initialized
+for i in 0 1 2; do
+    for j in `seq 1 10`; do
+	if $WPACLI -g /tmp/wpas-wlan$i ping | grep -q PONG; then
+	    break
+	fi
+	if [ $j = "10" ]; then
+	    echo "Could not connect to /tmp/wpas-wlan$i"
+	fi
+	sleep 1
+    done
+done
+
+for j in `seq 1 10`; do
+    if $WPACLI -g /var/run/hostapd-global ping | grep -q PONG; then
+	break
+    fi
+    if [ $j = "10" ]; then
+	echo "Could not connect to /var/run/hostapd-global"
+    fi
+    sleep 1
+done