tests: Disable support_p2p_device by default
[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 HAPD_AS=$DIR/../../hostapd/hostapd
8 WLANTEST=$DIR/../../wlantest/wlantest
9 HLR_AUC_GW=$DIR/../../hostapd/hlr_auc_gw
10 DATE="$(date +%s)"
11
12 if [ -z "$LOGDIR" ] ; then
13     LOGDIR="$DIR/logs/$DATE"
14     mkdir -p $LOGDIR
15 else
16     if [ -e $LOGDIR/alt-wpa_supplicant/wpa_supplicant/wpa_supplicant ]; then
17         WPAS=$LOGDIR/alt-wpa_supplicant/wpa_supplicant/wpa_supplicant
18     fi
19     if [ -e $LOGDIR/alt-hostapd/hostapd/hostapd ]; then
20         HAPD=$LOGDIR/alt-hostapd/hostapd/hostapd
21     fi
22     if [ -e $LOGDIR/alt-hostapd-as/hostapd/hostapd ]; then
23         HAPD_AS=$LOGDIR/alt-hostapd-as/hostapd/hostapd
24     fi
25     if [ -e $LOGDIR/alt-hlr_auc_gw/hostapd/hlr_auc_gw ]; then
26         HLR_AUC_GW=$LOGDIR/alt-hlr_auc_gw/hostapd/hlr_auc_gw
27     fi
28 fi
29
30 if test -w "$DIR/logs" ; then
31     rm -rf $DIR/logs/current
32     ln -sf $DATE $DIR/logs/current
33 fi
34
35 if groups | tr ' ' "\n" | grep -q ^admin$; then
36     GROUP=admin
37 else
38     GROUP=adm
39 fi
40
41 for i in 0 1 2; do
42     sed "s/ GROUP=.*$/ GROUP=$GROUP/" "$DIR/p2p$i.conf" > "$LOGDIR/p2p$i.conf"
43 done
44
45 sed "s/group=admin/group=$GROUP/" "$DIR/auth_serv/as.conf" > "$LOGDIR/as.conf"
46 sed "s/group=admin/group=$GROUP/;s%LOGDIR%$LOGDIR%" "$DIR/auth_serv/as2.conf" > "$LOGDIR/as2.conf"
47
48 if [ "$1" = "valgrind" ]; then
49     VALGRIND=y
50     VALGRIND_WPAS="valgrind --log-file=$LOGDIR/valgrind-wlan%d"
51     VALGRIND_HAPD="valgrind --log-file=$LOGDIR/valgrind-hostapd"
52     chmod -f a+rx $WPAS
53     chmod -f a+rx $HAPD
54     chmod -f a+rx $HAPD_AS
55     HAPD_AS="valgrind --log-file=$LOGDIR/valgrind-auth-serv $HAPD_AS"
56     shift
57 else
58     unset VALGRIND
59     VALGRIND_WPAS=
60     VALGRIND_HAPD=
61 fi
62
63 if [ "$1" = "trace" ]; then
64     TRACE="T"
65     shift
66 else
67     TRACE=""
68 fi
69
70 $DIR/stop.sh
71
72 TMP=$1
73 if [ x${TMP%=[0-9]*} = "xchannels" ]; then
74         NUM_CH=${TMP#channels=}
75         shift
76 else
77         NUM_CH=1
78 fi
79
80 test -f /proc/modules && sudo modprobe mac80211_hwsim radios=6 channels=$NUM_CH support_p2p_device=0
81 sudo ifconfig hwsim0 up
82 sudo $WLANTEST -i hwsim0 -n $LOGDIR/hwsim0.pcapng -c -dt -L $LOGDIR/hwsim0 &
83 for i in 0 1 2; do
84     sudo $(printf -- "$VALGRIND_WPAS" $i) $WPAS -g /tmp/wpas-wlan$i -G$GROUP -Dnl80211 -iwlan$i -c $LOGDIR/p2p$i.conf \
85          -ddKt$TRACE -f $LOGDIR/log$i &
86 done
87 sudo $(printf -- "$VALGRIND_WPAS" 5) $WPAS -g /tmp/wpas-wlan5 -G$GROUP \
88     -ddKt$TRACE -f $LOGDIR/log5 &
89 sudo $VALGRIND_HAPD $HAPD -ddKt$TRACE -g /var/run/hostapd-global -G $GROUP -ddKt -f $LOGDIR/hostapd &
90
91 sleep 1
92 sudo chown -f $USER $LOGDIR/hwsim0.pcapng $LOGDIR/hwsim0 $LOGDIR/log* $LOGDIR/hostapd
93
94 if [ -x $HLR_AUC_GW ]; then
95     cp $DIR/auth_serv/hlr_auc_gw.milenage_db $LOGDIR/hlr_auc_gw.milenage_db
96     sudo $HLR_AUC_GW -u -m $LOGDIR/hlr_auc_gw.milenage_db -g $DIR/auth_serv/hlr_auc_gw.gsm > $LOGDIR/hlr_auc_gw &
97 fi
98
99 touch $LOGDIR/hostapd.db
100 sudo $HAPD_AS -ddKt $LOGDIR/as.conf $LOGDIR/as2.conf > $LOGDIR/auth_serv &
101 if [ "x$VALGRIND" = "xy" ]; then
102     sleep 1
103     sudo chown -f $USER $LOGDIR/*valgrind*
104 fi
105
106 # wait for programs to be fully initialized
107 for i in 0 1 2; do
108     for j in `seq 1 10`; do
109         if $WPACLI -g /tmp/wpas-wlan$i ping | grep -q PONG; then
110             break
111         fi
112         if [ $j = "10" ]; then
113             echo "Could not connect to /tmp/wpas-wlan$i"
114             exit 1
115         fi
116         sleep 1
117     done
118 done
119
120 for j in `seq 1 10`; do
121     if $WPACLI -g /var/run/hostapd-global ping | grep -q PONG; then
122         break
123     fi
124     if [ $j = "10" ]; then
125         echo "Could not connect to /var/run/hostapd-global"
126         exit 1
127     fi
128     sleep 1
129 done
130
131 exit 0