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