90 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # P2P vendor specific extension tests
 | |
| # Copyright (c) 2014, Qualcomm Atheros, Inc.
 | |
| 
 | |
| import logging
 | |
| logger = logging.getLogger()
 | |
| 
 | |
| def test_p2p_ext_discovery(dev):
 | |
|     """P2P device discovery with vendor specific extensions"""
 | |
|     addr0 = dev[0].p2p_dev_addr()
 | |
|     addr1 = dev[1].p2p_dev_addr()
 | |
| 
 | |
|     try:
 | |
|         if "OK" not in dev[0].request("VENDOR_ELEM_ADD 1 dd050011223344"):
 | |
|             raise Exception("VENDOR_ELEM_ADD failed")
 | |
|         res = dev[0].request("VENDOR_ELEM_GET 1")
 | |
|         if res != "dd050011223344":
 | |
|             raise Exception("Unexpected VENDOR_ELEM_GET result: " + res)
 | |
|         if "OK" not in dev[0].request("VENDOR_ELEM_ADD 1 dd06001122335566"):
 | |
|             raise Exception("VENDOR_ELEM_ADD failed")
 | |
|         res = dev[0].request("VENDOR_ELEM_GET 1")
 | |
|         if res != "dd050011223344dd06001122335566":
 | |
|             raise Exception("Unexpected VENDOR_ELEM_GET result(2): " + res)
 | |
|         res = dev[0].request("VENDOR_ELEM_GET 2")
 | |
|         if res != "":
 | |
|             raise Exception("Unexpected VENDOR_ELEM_GET result(3): " + res)
 | |
|         if "OK" not in dev[0].request("VENDOR_ELEM_REMOVE 1 dd050011223344"):
 | |
|             raise Exception("VENDOR_ELEM_REMOVE failed")
 | |
|         res = dev[0].request("VENDOR_ELEM_GET 1")
 | |
|         if res != "dd06001122335566":
 | |
|             raise Exception("Unexpected VENDOR_ELEM_GET result(4): " + res)
 | |
|         if "OK" not in dev[0].request("VENDOR_ELEM_REMOVE 1 dd06001122335566"):
 | |
|             raise Exception("VENDOR_ELEM_REMOVE failed")
 | |
|         res = dev[0].request("VENDOR_ELEM_GET 1")
 | |
|         if res != "":
 | |
|             raise Exception("Unexpected VENDOR_ELEM_GET result(5): " + res)
 | |
|         if "OK" not in dev[0].request("VENDOR_ELEM_ADD 1 dd050011223344dd06001122335566"):
 | |
|             raise Exception("VENDOR_ELEM_ADD failed(2)")
 | |
| 
 | |
|         if "FAIL" not in dev[0].request("VENDOR_ELEM_REMOVE 1 dd051122334455"):
 | |
|             raise Exception("Unexpected VENDOR_ELEM_REMOVE success")
 | |
|         if "FAIL" not in dev[0].request("VENDOR_ELEM_REMOVE 1 dd"):
 | |
|             raise Exception("Unexpected VENDOR_ELEM_REMOVE success(2)")
 | |
|         if "FAIL" not in dev[0].request("VENDOR_ELEM_ADD 1 ddff"):
 | |
|             raise Exception("Unexpected VENDOR_ELEM_ADD success(3)")
 | |
| 
 | |
|         dev[0].p2p_listen()
 | |
|         if not dev[1].discover_peer(addr0):
 | |
|             raise Exception("Device discovery timed out")
 | |
|         if not dev[0].discover_peer(addr1):
 | |
|             raise Exception("Device discovery timed out")
 | |
| 
 | |
|         peer = dev[1].get_peer(addr0)
 | |
|         if peer['vendor_elems'] != "dd050011223344dd06001122335566":
 | |
|             raise Exception("Vendor elements not reported correctly")
 | |
| 
 | |
|         res = dev[0].request("VENDOR_ELEM_GET 1")
 | |
|         if res != "dd050011223344dd06001122335566":
 | |
|             raise Exception("Unexpected VENDOR_ELEM_GET result(6): " + res)
 | |
|         if "OK" not in dev[0].request("VENDOR_ELEM_REMOVE 1 dd06001122335566"):
 | |
|             raise Exception("VENDOR_ELEM_REMOVE failed")
 | |
|         res = dev[0].request("VENDOR_ELEM_GET 1")
 | |
|         if res != "dd050011223344":
 | |
|             raise Exception("Unexpected VENDOR_ELEM_GET result(7): " + res)
 | |
|     finally:
 | |
|         dev[0].request("VENDOR_ELEM_REMOVE 1 *")
 | |
| 
 | |
| def test_p2p_ext_discovery_go(dev):
 | |
|     """P2P device discovery with vendor specific extensions for GO"""
 | |
|     addr0 = dev[0].p2p_dev_addr()
 | |
|     addr1 = dev[1].p2p_dev_addr()
 | |
| 
 | |
|     try:
 | |
|         if "OK" not in dev[0].request("VENDOR_ELEM_ADD 2 dd050011223344dd06001122335566"):
 | |
|             raise Exception("VENDOR_ELEM_ADD failed")
 | |
|         if "OK" not in dev[0].request("VENDOR_ELEM_ADD 3 dd050011223344dd06001122335566"):
 | |
|             raise Exception("VENDOR_ELEM_ADD failed")
 | |
|         if "OK" not in dev[0].request("VENDOR_ELEM_ADD 12 dd050011223344dd06001122335566"):
 | |
|             raise Exception("VENDOR_ELEM_ADD failed")
 | |
| 
 | |
|         dev[0].p2p_start_go(freq="2412")
 | |
|         if not dev[1].discover_peer(addr0):
 | |
|             raise Exception("Device discovery timed out")
 | |
|         peer = dev[1].get_peer(addr0)
 | |
|         if peer['vendor_elems'] != "dd050011223344dd06001122335566":
 | |
|             print peer['vendor_elems']
 | |
|             raise Exception("Vendor elements not reported correctly")
 | |
|     finally:
 | |
|         dev[0].request("VENDOR_ELEM_REMOVE 2 *")
 | |
|         dev[0].request("VENDOR_ELEM_REMOVE 3 *")
 | |
|         dev[0].request("VENDOR_ELEM_REMOVE 12 *")
 | 
