aboutsummaryrefslogtreecommitdiff
path: root/contrib/wpa/wpaspy/test.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/wpa/wpaspy/test.py')
-rwxr-xr-xcontrib/wpa/wpaspy/test.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/contrib/wpa/wpaspy/test.py b/contrib/wpa/wpaspy/test.py
new file mode 100755
index 000000000000..5e18fb23f744
--- /dev/null
+++ b/contrib/wpa/wpaspy/test.py
@@ -0,0 +1,82 @@
+#!/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 as 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 as 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()