tests: Remove special start.sh option for concurrent P2P tests
[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 for i in 0 1 2; do
25     sed "s/ GROUP=.*$/ GROUP=$GROUP/" "$DIR/p2p$i.conf" > "$LOGDIR/p2p$i.conf"
26 done
27
28 if [ "$1" = "valgrind" ]; then
29     VALGRIND=y
30     VALGRIND_WPAS="valgrind --log-file=$LOGDIR/valgrind-wlan%d"
31     VALGRIND_HAPD="valgrind --log-file=$LOGDIR/valgrind-hostapd"
32     chmod -f a+rx $WPAS
33     chmod -f a+rx $HAPD
34     shift
35 else
36     unset VALGRIND
37     VALGRIND_WPAS=
38     VALGRIND_HAPD=
39 fi
40
41 if [ "$1" = "trace" ]; then
42     TRACE="T"
43     shift
44 else
45     TRACE=""
46 fi
47
48 $DIR/stop.sh
49 test -f /proc/modules && sudo modprobe mac80211_hwsim radios=5
50 sudo ifconfig hwsim0 up
51 sudo $WLANTEST -i hwsim0 -n $LOGDIR/hwsim0.pcapng -c -dt -L $LOGDIR/hwsim0 &
52 for i in 0 1 2; do
53     sudo $(printf -- "$VALGRIND_WPAS" $i) $WPAS -g /tmp/wpas-wlan$i -G$GROUP -Dnl80211 -iwlan$i -c $LOGDIR/p2p$i.conf \
54          -ddKt$TRACE -f $LOGDIR/log$i &
55 done
56 sudo $VALGRIND_HAPD $HAPD -ddKt$TRACE -g /var/run/hostapd-global -G $GROUP -ddKt -f $LOGDIR/hostapd &
57
58 sleep 1
59 sudo chown -f $USER $LOGDIR/hwsim0.pcapng $LOGDIR/hwsim0 $LOGDIR/log* $LOGDIR/hostapd
60 if [ "x$VALGRIND" = "xy" ]; then
61     sudo chown -f $USER $LOGDIR/*valgrind*
62 fi
63
64 if [ -x $HLR_AUC_GW ]; then
65     $HLR_AUC_GW -m $DIR/auth_serv/hlr_auc_gw.milenage_db > $LOGDIR/hlr_auc_gw &
66 fi
67
68 $HAPD -ddKt $DIR/auth_serv/as.conf > $LOGDIR/auth_serv &
69
70 # wait for programs to be fully initialized
71 for i in 0 1 2; do
72     for j in `seq 1 10`; do
73         if $WPACLI -g /tmp/wpas-wlan$i ping | grep -q PONG; then
74             break
75         fi
76         if [ $j = "10" ]; then
77             echo "Could not connect to /tmp/wpas-wlan$i"
78             exit 1
79         fi
80         sleep 1
81     done
82 done
83
84 for j in `seq 1 10`; do
85     if $WPACLI -g /var/run/hostapd-global ping | grep -q PONG; then
86         break
87     fi
88     if [ $j = "10" ]; then
89         echo "Could not connect to /var/run/hostapd-global"
90         exit 1
91     fi
92     sleep 1
93 done
94
95 exit 0