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