test_p2p_autogo.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. import time
  9. import logging
  10. logger = logging.getLogger(__name__)
  11. import hwsim_utils
  12. def autogo(go):
  13. logger.info("Start autonomous GO " + go.ifname)
  14. res = go.p2p_start_go()
  15. logger.debug("res: " + str(res))
  16. def connect_cli(go, client):
  17. logger.info("Try to connect the client to the GO")
  18. pin = client.wps_read_pin()
  19. go.p2p_go_authorize_client(pin)
  20. client.p2p_connect_group(go.p2p_dev_addr(), pin, timeout=60)
  21. logger.info("Client connected")
  22. hwsim_utils.test_connectivity_p2p(go, client)
  23. def test_autogo(dev):
  24. autogo(dev[0])
  25. connect_cli(dev[0], dev[1])
  26. dev[0].remove_group()
  27. try:
  28. dev[1].remove_group()
  29. except:
  30. pass
  31. def test_autogo_2cli(dev):
  32. autogo(dev[0])
  33. connect_cli(dev[0], dev[1])
  34. connect_cli(dev[0], dev[2])
  35. hwsim_utils.test_connectivity_p2p(dev[1], dev[2])
  36. dev[2].remove_group()
  37. dev[1].remove_group()
  38. dev[0].remove_group()
  39. def test_autogo_tdls(dev):
  40. autogo(dev[0])
  41. connect_cli(dev[0], dev[1])
  42. connect_cli(dev[0], dev[2])
  43. hwsim_utils.test_connectivity_p2p(dev[1], dev[2])
  44. addr2 = dev[2].p2p_interface_addr()
  45. dev[1].tdls_setup(addr2)
  46. time.sleep(1)
  47. hwsim_utils.test_connectivity_p2p(dev[1], dev[2])
  48. dev[1].tdls_teardown(addr2)
  49. time.sleep(1)
  50. hwsim_utils.test_connectivity_p2p(dev[1], dev[2])
  51. dev[2].remove_group()
  52. dev[1].remove_group()
  53. dev[0].remove_group()
  54. def add_tests(tests):
  55. tests.append(test_autogo)
  56. tests.append(test_autogo_2cli)
  57. tests.append(test_autogo_tdls)