--- /dev/null
+#!/usr/bin/python
+#
+# Test script for wpaspy
+# Copyright (c) 2013, Jouni Malinen <j@w1.fi>
+#
+# This software may be distributed under the terms of the BSD license.
+# See README for more details.
+
+import os
+import sys
+import time
+import wpaspy
+
+wpas_ctrl = '/var/run/wpa_supplicant'
+
+def wpas_connect(host=None, port=9877):
+ ifaces = []
+
+ if host != None:
+ try:
+ wpas = wpaspy.Ctrl(host, port)
+ return wpas
+ except:
+ print "Could not connect to host: ", host
+ return None
+
+ if os.path.isdir(wpas_ctrl):
+ try:
+ ifaces = [os.path.join(wpas_ctrl, i) for i in os.listdir(wpas_ctrl)]
+ except OSError, error:
+ print "Could not find wpa_supplicant: ", error
+ return None
+
+ if len(ifaces) < 1:
+ print "No wpa_supplicant control interface found"
+ return None
+
+ for ctrl in ifaces:
+ try:
+ wpas = wpaspy.Ctrl(ctrl)
+ return wpas
+ except Exception, e:
+ pass
+ return None
+
+
+def main(host=None, port=9877):
+ print "Testing wpa_supplicant control interface connection"
+ wpas = wpas_connect(host, port)
+ if wpas is None:
+ return
+ print "Connected to wpa_supplicant"
+ print wpas.request('PING')
+
+ mon = wpas_connect(host, port)
+ if mon is None:
+ print "Could not open event monitor connection"
+ return
+
+ mon.attach()
+ print "Scan"
+ print wpas.request('SCAN')
+
+ count = 0
+ while count < 10:
+ count += 1
+ time.sleep(1)
+ while mon.pending():
+ ev = mon.recv()
+ print ev
+ if 'CTRL-EVENT-SCAN-RESULTS' in ev:
+ print 'Scan completed'
+ print wpas.request('SCAN_RESULTS')
+ count = 10
+ pass
+
+
+if __name__ == "__main__":
+ if len(sys.argv) > 2:
+ main(host=sys.argv[1], port=int(sys.argv[2]))
+ else:
+ main()