example_test.py 1.9 KB

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