diff options
-rwxr-xr-x | testing/serial/test-serial.py | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/testing/serial/test-serial.py b/testing/serial/test-serial.py index 8287e9c..e5a855e 100755 --- a/testing/serial/test-serial.py +++ b/testing/serial/test-serial.py @@ -59,7 +59,12 @@ def update_serial_settings(tx, rx, baudrate, size): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("-b", "--baudrate", type=int, default=115200) + parser.add_argument( + "-b", "--baudrate", + type=int, + action='append', + help="Baudrate to test. Repeat the option for different baudrates to choose from" + ), parser.add_argument( "--rs485", action="store_true", @@ -140,13 +145,24 @@ if __name__ == "__main__": set_rs485_mode(rx, args.rs485) size = args.size - baudrate = args.baudrate - baudrate_choices = list( - filter( - lambda baud: args.min_baudrate <= baud <= args.max_baudrate, tx.BAUDRATES - ) - ) - update_serial_settings(tx, rx, baudrate, size) + + if (not args.fuzz or "baudrate" not in args.fuzz) and args.baudrate and len(args.baudrate) > 1: + raise Exception("Please enable baudrate fuzzing when passing more than one baudrate") + + if args.fuzz and "baudrate" in args.fuzz: + if args.baudrate and len(args.baudrate) > 1: + baudrate_choices = args.baudrate + elif args.baudrate: + raise Exception("More baudrate arguments are required for fuzzing") + else: + baudrate_choices = list( + filter( + lambda baud: args.min_baudrate <= baud <= args.max_baudrate, tx.BAUDRATES + ) + ) + else: + baudrate = args.baudrate[0] if args.baudrate else 115200 + update_serial_settings(tx, rx, baudrate, size) tx_errors = 0 rx_errors = 0 |