]> git.ipfire.org Git - thirdparty/hostap.git/blame - tests/hwsim/hwsim_utils.py
tests: Make HS 2.0 test cases more robust
[thirdparty/hostap.git] / tests / hwsim / hwsim_utils.py
CommitLineData
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 7import os
a311c61d 8import subprocess
8a9a3b34 9import time
a311c61d 10import logging
c9aa4308 11logger = logging.getLogger()
a311c61d 12
8a9a3b34 13def 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 43def 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 48def 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 53def 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)