hostapd/tests/remote/test_monitor.py

53 lines
1.6 KiB
Python
Raw Normal View History

# 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)