example_test.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from __future__ import unicode_literals
  2. import re
  3. from typing import Any
  4. import ttfw_idf
  5. @ttfw_idf.idf_example_test(env_tag='Example_WIFI_Protocols')
  6. def test_examples_simple_sniffer(env, _): # type: (Any, Any) -> None
  7. dut = env.get_dut('simple_sniffer', 'examples/network/simple_sniffer', app_config_name='mem')
  8. dut.start_app()
  9. dut.expect('sniffer>')
  10. dut.write('pcap --open -f simple-sniffer')
  11. dut.expect('cmd_pcap: open file successfully')
  12. dut.write('sniffer -i wlan -c 2 -n 10')
  13. dut.expect('cmd_sniffer: 10 packages will be captured')
  14. dut.expect('cmd_sniffer: start WiFi promiscuous ok')
  15. dut.expect('cmd_sniffer: stop promiscuous ok')
  16. dut.write('pcap --summary -f simple-sniffer')
  17. dut.expect('cmd_pcap: Memory is to be parsed')
  18. dut.expect('Pcap packet Head:')
  19. dut.expect('Magic Number: a1b2c3d4')
  20. dut.expect(re.compile(r'Major Version: [0-9]*'))
  21. dut.expect(re.compile(r'Minor Version: [0-9]*'))
  22. dut.expect(re.compile(r'SnapLen: [0-9]*'))
  23. dut.expect(re.compile(r'LinkType: [0-9]*'))
  24. for i in range(0, 10):
  25. dut.expect('Packet ' + str(i) + ':')
  26. dut.expect(re.compile(r'Timestamp \(Seconds\): [0-9]*'))
  27. dut.expect(re.compile(r'Timestamp \(Microseconds\): [0-9]*'))
  28. dut.expect(re.compile(r'Capture Length: [0-9]*'))
  29. dut.expect(re.compile(r'Packet Length: [0-9]*'))
  30. dut.expect(re.compile(r'Packet Type: .*'))
  31. dut.expect(re.compile(r'Packet Subtype: .*'))
  32. dut.expect(re.compile(r'Destination: .*'))
  33. dut.expect(re.compile(r'Source: .*'))
  34. dut.expect('Pcap packet Number: 10')
  35. dut.write('pcap --close -f simple-sniffer')
  36. dut.expect('cmd_pcap: free memory successfully')
  37. dut.expect('cmd_pcap: .pcap file close done')
  38. dut.write('')
  39. dut.expect('sniffer>')
  40. if __name__ == '__main__':
  41. test_examples_simple_sniffer()