test_p2p_discovery.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/python
  2. #
  3. # P2P device discovery 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 logging
  9. logger = logging.getLogger(__name__)
  10. def test_discovery(dev):
  11. """P2P device discovery and provision discovery"""
  12. addr0 = dev[0].p2p_dev_addr()
  13. addr1 = dev[1].p2p_dev_addr()
  14. logger.info("Start device discovery")
  15. dev[0].p2p_find(social=True)
  16. dev[1].p2p_find(social=True)
  17. ev0 = dev[0].wait_event(["P2P-DEVICE-FOUND"], timeout=15)
  18. if ev0 is None:
  19. raise Exception("Device discovery timed out")
  20. ev1 = dev[1].wait_event(["P2P-DEVICE-FOUND"], timeout=15)
  21. if ev1 is None:
  22. raise Exception("Device discovery timed out")
  23. dev[0].dump_monitor()
  24. dev[1].dump_monitor()
  25. if addr1 not in ev0:
  26. raise Exception("Dev1 not found properly")
  27. if addr0 not in ev1:
  28. raise Exception("Dev0 not found properly")
  29. logger.info("Test provision discovery for display")
  30. dev[0].request("P2P_PROV_DISC " + addr1 + " display")
  31. ev1 = dev[1].wait_event(["P2P-PROV-DISC-SHOW-PIN"], timeout=15)
  32. if ev1 is None:
  33. raise Exception("Provision discovery timed out")
  34. if addr0 not in ev1:
  35. raise Exception("Dev0 not in provision discovery event")
  36. ev0 = dev[0].wait_event(["P2P-PROV-DISC-ENTER-PIN"], timeout=15)
  37. if ev0 is None:
  38. raise Exception("Provision discovery timed out")
  39. if addr1 not in ev0:
  40. raise Exception("Dev1 not in provision discovery event")
  41. logger.info("Test provision discovery for keypad")
  42. dev[0].request("P2P_PROV_DISC " + addr1 + " keypad")
  43. ev1 = dev[1].wait_event(["P2P-PROV-DISC-ENTER-PIN"], timeout=15)
  44. if ev1 is None:
  45. raise Exception("Provision discovery timed out")
  46. if addr0 not in ev1:
  47. raise Exception("Dev0 not in provision discovery event")
  48. ev0 = dev[0].wait_event(["P2P-PROV-DISC-SHOW-PIN"], timeout=15)
  49. if ev0 is None:
  50. raise Exception("Provision discovery timed out")
  51. if addr1 not in ev0:
  52. raise Exception("Dev1 not in provision discovery event")
  53. logger.info("Test provision discovery for push button")
  54. dev[0].request("P2P_PROV_DISC " + addr1 + " pbc")
  55. ev1 = dev[1].wait_event(["P2P-PROV-DISC-PBC-REQ"], timeout=15)
  56. if ev1 is None:
  57. raise Exception("Provision discovery timed out")
  58. if addr0 not in ev1:
  59. raise Exception("Dev0 not in provision discovery event")
  60. ev0 = dev[0].wait_event(["P2P-PROV-DISC-PBC-RESP"], timeout=15)
  61. if ev0 is None:
  62. raise Exception("Provision discovery timed out")
  63. if addr1 not in ev0:
  64. raise Exception("Dev1 not in provision discovery event")
  65. dev[0].p2p_stop_find
  66. dev[1].p2p_stop_find