]>
Commit | Line | Data |
---|---|---|
a311c61d | 1 | # hwsim testing utilities |
8a9a3b34 | 2 | # Copyright (c) 2013-2014, Jouni Malinen <j@w1.fi> |
a311c61d JM |
3 | # |
4 | # This software may be distributed under the terms of the BSD license. | |
5 | # See README for more details. | |
6 | ||
280cd8a9 | 7 | import os |
a311c61d | 8 | import subprocess |
8a9a3b34 | 9 | import time |
a311c61d | 10 | import logging |
c9aa4308 | 11 | logger = logging.getLogger() |
a311c61d | 12 | |
8a9a3b34 | 13 | def test_connectivity(ifname1, ifname2, dscp=None, tos=None, max_tries=1): |
280cd8a9 JM |
14 | if os.path.isfile("../../mac80211_hwsim/tools/hwsim_test"): |
15 | hwsim_test = "../../mac80211_hwsim/tools/hwsim_test" | |
16 | else: | |
17 | hwsim_test = "hwsim_test" | |
a311c61d | 18 | cmd = ["sudo", |
280cd8a9 | 19 | hwsim_test, |
a311c61d JM |
20 | ifname1, |
21 | ifname2] | |
65249f6c JM |
22 | if dscp: |
23 | cmd.append('-D') | |
24 | cmd.append(str(dscp)) | |
25 | elif tos: | |
26 | cmd.append('-t') | |
27 | cmd.append(str(tos)) | |
8a9a3b34 JM |
28 | success = False |
29 | for i in range(0, max_tries): | |
30 | try: | |
31 | s = subprocess.check_output(cmd) | |
32 | logger.debug(s) | |
33 | success = True | |
34 | break | |
35 | except subprocess.CalledProcessError, e: | |
36 | logger.info("hwsim failed: " + str(e.returncode)) | |
37 | logger.info(e.output) | |
38 | if i + 1 < max_tries: | |
39 | time.sleep(1) | |
40 | if not success: | |
41 | raise Exception("hwsim_test failed") | |
a311c61d | 42 | |
65249f6c | 43 | def test_connectivity_p2p(dev1, dev2, dscp=None, tos=None): |
f3f8ee88 JM |
44 | ifname1 = dev1.group_ifname if dev1.group_ifname else dev1.ifname |
45 | ifname2 = dev2.group_ifname if dev2.group_ifname else dev2.ifname | |
65249f6c | 46 | test_connectivity(ifname1, ifname2, dscp, tos) |
81266da7 | 47 | |
65249f6c | 48 | def test_connectivity_p2p_sta(dev1, dev2, dscp=None, tos=None): |
b162675f JM |
49 | ifname1 = dev1.group_ifname if dev1.group_ifname else dev1.ifname |
50 | ifname2 = dev2.ifname | |
65249f6c | 51 | test_connectivity(ifname1, ifname2, dscp, tos) |
b162675f | 52 | |
65249f6c | 53 | def test_connectivity_sta(dev1, dev2, dscp=None, tos=None): |
81266da7 JM |
54 | ifname1 = dev1.ifname |
55 | ifname2 = dev2.ifname | |
65249f6c | 56 | test_connectivity(ifname1, ifname2, dscp, tos) |