3 # P2P device discovery test cases
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.
10 logger = logging.getLogger(__name__)
12 def test_discovery(dev):
13 """P2P device discovery and provision discovery"""
14 addr0 = dev[0].p2p_dev_addr()
15 addr1 = dev[1].p2p_dev_addr()
16 logger.info("Start device discovery")
19 ev0 = dev[0].wait_event(["P2P-DEVICE-FOUND"], timeout=15)
21 raise Exception("Device discovery timed out")
22 ev1 = dev[1].wait_event(["P2P-DEVICE-FOUND"], timeout=15)
24 raise Exception("Device discovery timed out")
28 raise Exception("Dev1 not found properly")
30 raise Exception("Dev0 not found properly")
32 logger.info("Test provision discovery for display")
33 dev[0].request("P2P_PROV_DISC " + addr1 + " display")
34 ev1 = dev[1].wait_event(["P2P-PROV-DISC-SHOW-PIN"], timeout=15)
36 raise Exception("Provision discovery timed out")
38 raise Exception("Dev0 not in provision discovery event")
39 ev0 = dev[0].wait_event(["P2P-PROV-DISC-ENTER-PIN"], timeout=15)
41 raise Exception("Provision discovery timed out")
43 raise Exception("Dev1 not in provision discovery event")
45 logger.info("Test provision discovery for keypad")
46 dev[0].request("P2P_PROV_DISC " + addr1 + " keypad")
47 ev1 = dev[1].wait_event(["P2P-PROV-DISC-ENTER-PIN"], timeout=15)
49 raise Exception("Provision discovery timed out")
51 raise Exception("Dev0 not in provision discovery event")
52 ev0 = dev[0].wait_event(["P2P-PROV-DISC-SHOW-PIN"], timeout=15)
54 raise Exception("Provision discovery timed out")
56 raise Exception("Dev1 not in provision discovery event")
58 logger.info("Test provision discovery for push button")
59 dev[0].request("P2P_PROV_DISC " + addr1 + " pbc")
60 ev1 = dev[1].wait_event(["P2P-PROV-DISC-PBC-REQ"], timeout=15)
62 raise Exception("Provision discovery timed out")
64 raise Exception("Dev0 not in provision discovery event")
65 ev0 = dev[0].wait_event(["P2P-PROV-DISC-PBC-RESP"], timeout=15)
67 raise Exception("Provision discovery timed out")
69 raise Exception("Dev1 not in provision discovery event")
76 tests.append(test_discovery)