]>
git.ipfire.org Git - thirdparty/hostap.git/blob - tests/hwsim/run-tests.py
4 # Copyright (c) 2013, Jouni Malinen <j@w1.fi>
6 # This software may be distributed under the terms of the BSD license.
7 # See README for more details.
15 logger
= logging
.getLogger(__name__
)
17 from wpasupplicant
import WpaSupplicant
18 from hostapd
import HostapdGlobal
20 def reset_devs(dev
, apdev
):
21 hapd
= HostapdGlobal()
25 hapd
.remove(ap
['ifname'])
31 if len(sys
.argv
) > 1 and sys
.argv
[1] == '-d':
32 logging
.basicConfig(level
=logging
.DEBUG
)
34 elif len(sys
.argv
) > 1 and sys
.argv
[1] == '-q':
35 logging
.basicConfig(level
=logging
.WARNING
)
38 logging
.basicConfig(level
=logging
.INFO
)
40 if len(sys
.argv
) > idx
+ 1 and sys
.argv
[idx
] == '-e':
41 error_file
= sys
.argv
[idx
+ 1]
44 if len(sys
.argv
) > idx
+ 1 and sys
.argv
[idx
] == '-f':
45 test_file
= sys
.argv
[idx
+ 1]
48 if len(sys
.argv
) > idx
:
49 test_filter
= sys
.argv
[idx
]
53 dev0
= WpaSupplicant('wlan0', '/tmp/wpas-wlan0')
54 dev1
= WpaSupplicant('wlan1', '/tmp/wpas-wlan1')
55 dev2
= WpaSupplicant('wlan2', '/tmp/wpas-wlan2')
56 dev
= [ dev0
, dev1
, dev2
]
58 apdev
.append({"ifname": 'wlan3', "bssid": "02:00:00:00:03:00"})
59 apdev
.append({"ifname": 'wlan4', "bssid": "02:00:00:00:04:00"})
63 logger
.info(d
.ifname
+ ": No response from wpa_supplicant")
65 logger
.info("DEV: " + d
.ifname
+ ": " + d
.p2p_dev_addr())
67 logger
.info("APDEV: " + ap
['ifname'])
70 for t
in os
.listdir("."):
71 m
= re
.match(r
'(test_.*)\.py$', t
)
73 if test_file
and test_file
not in t
:
75 logger
.info("Import test cases from " + t
)
76 mod
= __import__(m
.group(1))
78 if s
.startswith("test_"):
79 func
= mod
.__dict
__.get(s
)
87 if test_filter
!= t
.__name
__:
89 reset_devs(dev
, apdev
)
90 logger
.info("START " + t
.__name
__)
92 logger
.info("Test: " + t
.__doc
__)
95 d
.request("NOTE TEST-START " + t
.__name
__)
97 logger
.info("Failed to issue TEST-START before " + t
.__name
__ + " for " + d
.ifname
)
100 if t
.func_code
.co_argcount
> 1:
104 passed
.append(t
.__name
__)
105 logger
.info("PASS " + t
.__name
__)
108 failed
.append(t
.__name
__)
109 logger
.info("FAIL " + t
.__name
__)
112 d
.request("NOTE TEST-STOP " + t
.__name
__)
114 logger
.info("Failed to issue TEST-STOP after " + t
.__name
__ + " for " + d
.ifname
)
118 reset_devs(dev
, apdev
)
121 logger
.info("passed " + str(len(passed
)) + " test case(s)")
122 logger
.info("failed tests: " + str(failed
))
124 f
= open(error_file
, 'w')
125 f
.write(str(failed
) + '\n')
128 logger
.info("passed all " + str(len(passed
)) + " test case(s)")
130 if __name__
== "__main__":