42f56da70d6f3739de295e61a5c6125f28d124ca
[mech_eap.git] / tests / hwsim / start.sh
1 #!/bin/sh
2
3 DIR="$( cd "$( dirname "$0" )" && pwd )"
4 WPAS=$DIR/../../wpa_supplicant/wpa_supplicant
5 WPACLI=$DIR/../../wpa_supplicant/wpa_cli
6 HAPD=$DIR/../../hostapd/hostapd
7 WLANTEST=$DIR/../../wlantest/wlantest
8
9 if [ "$1" = "concurrent" ]; then
10     CONCURRENT=y
11     shift
12 else
13     unset CONCURRENT
14 fi
15
16 if [ "$1" = "valgrind" ]; then
17     VALGRIND=y
18     shift
19 else
20     unset VALGRIND
21 fi
22
23 if [ "$1" = "trace" ]; then
24     TRACE="T"
25     shift
26 else
27     TRACE=""
28 fi
29
30 $DIR/stop-wifi.sh
31 sudo modprobe mac80211_hwsim radios=5
32 if [ "$CONCURRENT" = "y" ]; then
33     sudo iw wlan0 interface add sta0 type station
34     sudo iw wlan1 interface add sta1 type station
35     sudo iw wlan2 interface add sta2 type station
36 fi
37 mkdir -p $DIR/logs
38 DATE=`date +%s`
39 sudo ifconfig hwsim0 up
40 sudo $WLANTEST -i hwsim0 -c -d > $DIR/logs/$DATE-hwsim0 &
41 sudo tcpdump -ni hwsim0 -s 2500 -w $DIR/logs/$DATE-hwsim0.dump > $DIR/logs/$DATE-tcpdump 2>&1 &
42 if [ "$VALGRIND" = "y" ]; then
43     for i in 0 1 2; do
44         chmod a+rx $WPAS
45         if [ "$CONCURRENT" = "y" ]; then
46             sudo valgrind --log-file=$DIR/logs/$DATE-valgrind-wlan$i $WPAS -g /tmp/wpas-wlan$i -Gadmin -Dnl80211 -iwlan$i -c $DIR/p2p$i.conf -N -Dnl80211 -ista$i -c $DIR/sta-dummy.conf -ddKt$TRACE > $DIR/logs/$DATE-log$i &
47         else
48             sudo valgrind --log-file=$DIR/logs/$DATE-valgrind-wlan$i $WPAS -g /tmp/wpas-wlan$i -Gadmin -Dnl80211 -iwlan$i -c $DIR/p2p$i.conf -ddKt$TRACE > $DIR/logs/$DATE-log$i &
49         fi
50     done
51     chmod a+rx $HAPD
52     sudo valgrind --log-file=$DIR/logs/$DATE-valgrind-hostapd $HAPD -ddKt -g /var/run/hostapd-global -G admin -ddKt > $DIR/logs/$DATE-hostapd &
53 else
54     for i in 0 1 2; do
55         if [ "$CONCURRENT" = "y" ]; then
56             sudo $WPAS -g /tmp/wpas-wlan$i -Gadmin -Dnl80211 -iwlan$i -c $DIR/p2p$i.conf -N -Dnl80211 -ista$i -c $DIR/sta-dummy.conf -ddKt$TRACE > $DIR/logs/$DATE-log$i &
57         else
58             sudo $WPAS -g /tmp/wpas-wlan$i -Gadmin -Dnl80211 -iwlan$i -c $DIR/p2p$i.conf -ddKt$TRACE > $DIR/logs/$DATE-log$i &
59         fi
60     done
61     sudo $HAPD -ddKt -g /var/run/hostapd-global -G admin -ddKt > $DIR/logs/$DATE-hostapd &
62 fi
63 sleep 1
64 sudo chown $USER $DIR/logs/$DATE-hwsim0.dump
65 if [ "x$VALGRIND" = "xy" ]; then
66     sudo chown $USER $DIR/logs/$DATE-*valgrind*
67 fi
68
69 # wait for programs to be fully initialized
70 for i in 0 1 2; do
71     for j in `seq 1 10`; do
72         if $WPACLI -g /tmp/wpas-wlan$i ping | grep -q PONG; then
73             break
74         fi
75         if [ $j = "10" ]; then
76             echo "Could not connect to /tmp/wpas-wlan$i"
77             exit 1
78         fi
79         sleep 1
80     done
81 done
82
83 for j in `seq 1 10`; do
84     if $WPACLI -g /var/run/hostapd-global ping | grep -q PONG; then
85         break
86     fi
87     if [ $j = "10" ]; then
88         echo "Could not connect to /var/run/hostapd-global"
89         exit 1
90     fi
91     sleep 1
92 done
93
94 exit 0