tests: Add autogo test with two clients
[mech_eap.git] / tests / hwsim / test_p2p_autogo.py
1 #!/usr/bin/python
2 #
3 # P2P autonomous GO test cases
4 # Copyright (c) 2013, Jouni Malinen <j@w1.fi>
5 #
6 # This software may be distributed under the terms of the BSD license.
7 # See README for more details.
8
9 import logging
10 logger = logging.getLogger(__name__)
11
12 import hwsim_utils
13
14 def autogo(go):
15     logger.info("Start autonomous GO " + go.ifname)
16     res = go.p2p_start_go()
17     logger.debug("res: " + str(res))
18
19 def connect_cli(go, client):
20     logger.info("Try to connect the client to the GO")
21     pin = client.wps_read_pin()
22     go.p2p_go_authorize_client(pin)
23     client.p2p_connect_group(go.p2p_dev_addr(), pin, timeout=60)
24     logger.info("Client connected")
25     hwsim_utils.test_connectivity_p2p(go, client)
26
27 def test_autogo(dev):
28     autogo(dev[0])
29     connect_cli(dev[0], dev[1])
30     dev[0].remove_group()
31     try:
32         dev[1].remove_group()
33     except:
34         pass
35
36 def test_autogo_2cli(dev):
37     autogo(dev[0])
38     connect_cli(dev[0], dev[1])
39     connect_cli(dev[0], dev[2])
40     hwsim_utils.test_connectivity_p2p(dev[1], dev[2])
41     dev[2].remove_group()
42     dev[1].remove_group()
43     dev[0].remove_group()
44
45 def add_tests(tests):
46     tests.append(test_autogo)
47     tests.append(test_autogo_2cli)