def __init__(self, name, tests, out_dir, ip_address, port, interface, affinity=None): """ Check if tcpdump is present and setup instance parameters. :param str name: Test name :param list tests: List of test tuples (name, conversation) to be run :param str out_dir: Directory where results should be stored :param str ip_address: Server IP address :param int port: Server port :param str interface: Network interface to run tcpdump on :param str affinity: The processor IDs to use for affinity of the `tcpdump` process. See taskset man page for description of --cpu-list option. """ # first check tcpdump presence if not self.check_tcpdump(): raise Exception("Could not find tcpdump, aborting timing tests") self.tests = tests self.out_dir = out_dir self.out_dir = self.create_output_directory(name) self.ip_address = ip_address self.port = port self.interface = interface self.log = Log(os.path.join(self.out_dir, "log.csv")) self.affinity = affinity self.tcpdump_running = True
def main(): """Process arguments and start extraction.""" logfile = None capture = None output = None ip_address = None port = None argv = sys.argv[1:] opts, args = getopt.getopt(argv, "l:c:h:p:o:t:", ["help"]) for opt, arg in opts: if opt == '-l': logfile = arg elif opt == '-c': capture = arg elif opt == '-o': output = arg elif opt == '-h': ip_address = arg elif opt == '-p': port = int(arg) elif opt == "--help": help_msg() sys.exit(0) if not all([logfile, capture, output, ip_address, port]): raise ValueError("Some arguments are missing!") log = Log(logfile) log.read_log() analysis = Extract(log, capture, output, ip_address, port) analysis.parse() analysis.write_csv('timing.csv')
def main(): """Process arguments and start extraction.""" logfile = None capture = None output = None ip_address = None port = None raw_times = None argv = sys.argv[1:] if not argv: help_msg() sys.exit(1) opts, args = getopt.getopt(argv, "l:c:h:p:o:t:", ["help", "raw-times="]) for opt, arg in opts: if opt == '-l': logfile = arg elif opt == '-c': capture = arg elif opt == '-o': output = arg elif opt == '-h': ip_address = arg elif opt == '-p': port = int(arg) elif opt == "--raw-times": raw_times = arg elif opt == "--help": help_msg() sys.exit(0) if raw_times and capture: raise ValueError( "Can't specify both a capture file and external timing log") if not all([logfile, output]): raise ValueError( "Specifying logfile and output is mandatory") if capture and not all([logfile, output, ip_address, port]): raise ValueError("Some arguments are missing!") log = Log(logfile) log.read_log() analysis = Extract(log, capture, output, ip_address, port, raw_times) analysis.parse() analysis.write_csv('timing.csv')
def setUp(self): self.logfile = "test.log" log_content = "A,B\n1,0\n0,1\n1,0\n0,1\n0,1\n0,1\n0,1\n1,0\n1,0\n1,0\n" self.expected = ( "B,0.000747009,0.000920462,0.001327954,0.000904547,0.000768453," "0.000752226,0.000862102,0.000706491,0.000668237,0.000992733\n" "A,0.000758130,0.000696718,0.000980080,0.000988899,0.000875510," "0.000734843,0.000754852,0.000667378,0.000671230,0.000790935\n") # fix mock not supporting iterators self.mock_log = mock.mock_open(read_data=log_content) self.mock_log.return_value.__iter__ = lambda s: iter(s.readline, '') with mock.patch('__main__.__builtins__.open', self.mock_log): self.log = Log(self.logfile) self.log.read_log()
def setUp(self): self.logfile = join(dirname(abspath(__file__)), "test.log") log_content = "A,B\n1,0\n0,1\n1,0\n0,1\n0,1\n0,1\n0,1\n1,0\n1,0\n1,0\n" self.expected = ( "B,0.000747009,0.000920462,0.001327954,0.000904547,0.000768453," "0.000752226,0.000862102,0.000706491,0.000668237,0.000992733\n" "A,0.000758130,0.000696718,0.000980080,0.000988899,0.000875510," "0.000734843,0.000754852,0.000667378,0.000671230,0.000790935\n") self.time_vals = "\n".join(["some random header"] + list(str(i) for i in range(20))) # fix mock not supporting iterators self.mock_log = mock.mock_open(read_data=log_content) self.mock_log.return_value.__iter__ = lambda s: iter(s.readline, '') with mock.patch('__main__.__builtins__.open', self.mock_log): self.log = Log(self.logfile) self.log.read_log()
def setUp(self): self.logfile = "test.log" self.log = Log(self.logfile)