run-p2p-tests.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. print "START " + t.__name__
  49. for d in dev:
  50. d.request("NOTE TEST-START " + t.__name__)
  51. try:
  52. t(dev)
  53. passed.append(t.__name__)
  54. print "PASS " + t.__name__
  55. except Exception, e:
  56. print e
  57. failed.append(t.__name__)
  58. print "FAIL " + t.__name__
  59. for d in dev:
  60. d.request("NOTE TEST-STOP " + t.__name__)
  61. if not test_filter:
  62. for d in dev:
  63. d.reset()
  64. print "passed tests: " + str(passed)
  65. print "failed tests: " + str(failed)
  66. if len(failed):
  67. sys.exit(1)
  68. if __name__ == "__main__":
  69. main()