run-p2p-tests.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/usr/bin/python
  2. #
  3. # P2P tests
  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 os
  9. import sys
  10. import time
  11. import logging
  12. from wpasupplicant import WpaSupplicant
  13. import test_p2p_grpform
  14. import test_p2p_autogo
  15. def main():
  16. idx = 1
  17. if len(sys.argv) > 1 and sys.argv[1] == '-d':
  18. logging.basicConfig(level=logging.DEBUG)
  19. idx = idx + 1
  20. elif len(sys.argv) > 1 and sys.argv[1] == '-q':
  21. logging.basicConfig(level=logging.WARNING)
  22. idx = idx + 1
  23. else:
  24. logging.basicConfig(level=logging.INFO)
  25. if len(sys.argv) > idx:
  26. test_filter = sys.argv[idx]
  27. else:
  28. test_filter = None
  29. dev0 = WpaSupplicant('wlan0')
  30. dev1 = WpaSupplicant('wlan1')
  31. dev2 = WpaSupplicant('wlan2')
  32. dev = [ dev0, dev1, dev2 ]
  33. for d in dev:
  34. if not d.ping():
  35. print d.ifname + ": No response from wpa_supplicant"
  36. return
  37. d.reset()
  38. print "DEV: " + d.ifname + ": " + d.p2p_dev_addr()
  39. tests = []
  40. test_p2p_grpform.add_tests(tests)
  41. test_p2p_autogo.add_tests(tests)
  42. passed = []
  43. failed = []
  44. for t in tests:
  45. if test_filter:
  46. if test_filter not in t.__name__:
  47. continue
  48. for d in dev:
  49. d.reset()
  50. print "START " + t.__name__
  51. for d in dev:
  52. d.request("NOTE TEST-START " + t.__name__)
  53. try:
  54. t(dev)
  55. passed.append(t.__name__)
  56. print "PASS " + t.__name__
  57. except Exception, e:
  58. print e
  59. failed.append(t.__name__)
  60. print "FAIL " + t.__name__
  61. for d in dev:
  62. d.request("NOTE TEST-STOP " + t.__name__)
  63. if not test_filter:
  64. for d in dev:
  65. d.reset()
  66. print "passed tests: " + str(passed)
  67. print "failed tests: " + str(failed)
  68. if len(failed):
  69. sys.exit(1)
  70. if __name__ == "__main__":
  71. main()