From b190a036916958d5f17e0c87bbdd8468fb2d3c5d Mon Sep 17 00:00:00 2001 From: Ori Hoch Date: Mon, 30 May 2022 17:11:24 +0300 Subject: [PATCH] minor improvements to load generator script --no-deploy --- tests/load_generator.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tests/load_generator.py b/tests/load_generator.py index 0bade29..63c7316 100644 --- a/tests/load_generator.py +++ b/tests/load_generator.py @@ -1,5 +1,8 @@ import sys +import datetime import subprocess +from pprint import pprint +from collections import defaultdict def main(num_processes): @@ -10,10 +13,24 @@ def main(num_processes): processes[process_num] = subprocess.Popen([ 'nslookup', '-port=10053', 'foobar.com', '-', '127.0.0.1' ], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + start_time = datetime.datetime.now() print('waiting for processes to terminate') + stats = defaultdict(int) for process_num, process in processes.items(): returncode = process.wait() - print(f'{process_num}: returncode {returncode} output {process.stdout.read()}') + output = process.stdout.read().decode() + if returncode == 0: + if 'Address: 127.0.0.1' in output: + stats['success'] += 1 + else: + raise Exception(f'Success with unknown output: {output}') + elif 'connection timed out; no servers could be reached' in output: + stats['timed out'] += 1 + if not stats['seconds to first timeout']: + stats['seconds to first timeout'] = (datetime.datetime.now() - start_time).total_seconds() + else: + raise Exception(f'Failed with unknown output: {output}') + pprint(dict(stats)) main(*sys.argv[1:])