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