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