hostapd/tests/remote/test_monitor.py
Janusz Dziedzic 48e4680dae tests: remote: Add run_monitor test case
This is useful to run monitor quickly:
./run-tests.py -t run_monitor -m mon:36,20,36,0:1,20,1,0

In such example we will get one PCAP for 36/20 and 1/20.
After execution, PCAP file is in the log directory, e.g.:
./logs/2019_11_11_13_36_24/run_monitor_mon_wlp3s0_wlp5s0.pcap

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
2020-10-09 11:24:00 +03:00

52 lines
1.6 KiB
Python

# Monitor support
#
# This software may be distributed under the terms of the BSD license.
# See README for more details.
import remotehost
import config
import rutils
import monitor
import time
import os
import logging
logger = logging.getLogger()
def run_monitor(devices, setup_params, refs, duts, monitors, seconds=None):
try:
air_monitor = []
output = "\n\tPCAP files:\n"
# setup log dir
local_log_dir = setup_params['local_log_dir']
# add/run monitors if requested
air_monitors = monitor.create(devices, setup_params, refs, duts,
monitors)
for air_monitor in air_monitors:
monitor.setup(air_monitor)
monitor.run(air_monitor, setup_params)
logger.warning(air_monitor.name + " - monitor started ...")
if seconds != None:
time.sleep(int(seconds))
else:
input("\tPress Enter to end capturing...")
# destroy monitor / get pcap
monitor.destroy(devices, air_monitors)
for air_monitor in air_monitors:
for log in air_monitor.logs:
head, tail = os.path.split(log)
output = output + "\t" + local_log_dir + "/" + tail + "\n"
air_monitor.get_logs(local_log_dir)
return output
except:
for air_monitor in air_monitors:
monitor.destroy(devices, air_monitors)
air_monitor.get_logs(local_log_dir)
raise
def test_run_monitor(devices, setup_params, refs, duts, monitors):
"""TC run standalone monitor"""
return run_monitor(devices, setup_params, refs, duts, monitors)