diff options
| -rwxr-xr-x | test/cavp.py | 14 | ||||
| -rwxr-xr-x | test/file.py | 14 | ||||
| -rwxr-xr-x | test/nist.py | 14 | ||||
| -rw-r--r-- | test/toolkit.py | 18 |
4 files changed, 30 insertions, 30 deletions
diff --git a/test/cavp.py b/test/cavp.py index 42998d9..047f254 100755 --- a/test/cavp.py +++ b/test/cavp.py @@ -21,7 +21,7 @@ import sys from tempfile import TemporaryDirectory import zipfile -from toolkit import Algorithm, BlockInput, Mode, Tools +from toolkit import Algorithm, BlockInput, Mode, Tools, setup_logging class _MultiOrderedDict(OrderedDict): @@ -209,17 +209,9 @@ class TestArchive(zipfile.ZipFile): _script_dir = os.path.dirname(__file__) -def _setup_logging(verbose=False): - level = logging.DEBUG if verbose else logging.INFO - logging.basicConfig( - format="%(asctime)s | %(module)s | %(levelname)s | %(message)s", level=level - ) - - def run_tests( archive_path, tools_path=(), use_sde=False, use_boxes=False, verbose=False ): - _setup_logging(verbose) tools = Tools(tools_path, use_sde=use_sde) archive = TestArchive(archive_path) exit_codes = [] @@ -284,7 +276,9 @@ def _parse_args(args=None): def main(args=None): - return run_tests(**vars(_parse_args(args))) + args = _parse_args(args) + with setup_logging(args.verbose): + return run_tests(**vars(args)) if __name__ == "__main__": diff --git a/test/file.py b/test/file.py index e68d7a7..7c15f67 100755 --- a/test/file.py +++ b/test/file.py @@ -17,7 +17,7 @@ from subprocess import CalledProcessError import sys from tempfile import NamedTemporaryFile -from toolkit import Algorithm, Mode, Tools +from toolkit import Algorithm, Mode, Tools, setup_logging class TestExitCode(Enum): @@ -175,15 +175,7 @@ _script_dir = os.path.dirname(__file__) _script_name = os.path.splitext(os.path.basename(__file__))[0] -def _setup_logging(verbose=False): - level = logging.DEBUG if verbose else logging.INFO - logging.basicConfig( - format="%(asctime)s | %(module)s | %(levelname)s | %(message)s", level=level - ) - - def run_tests(suite_path, tools_path=(), verbose=False, use_sde=False, force=False): - _setup_logging(verbose) tools = Tools(tools_path, use_sde=use_sde) exit_codes = [] @@ -242,7 +234,9 @@ def _parse_args(args=None): def main(args=None): - return run_tests(**vars(_parse_args(args))) + args = _parse_args(args) + with setup_logging(args.verbose): + return run_tests(**vars(args)) if __name__ == "__main__": diff --git a/test/nist.py b/test/nist.py index d9b0477..447d34d 100755 --- a/test/nist.py +++ b/test/nist.py @@ -11,7 +11,7 @@ import logging from subprocess import CalledProcessError import sys -from toolkit import Algorithm, BlockInput, Mode, Tools +from toolkit import Algorithm, BlockInput, Mode, Tools, setup_logging # The data is from "Example Vectors for Modes of Operation of the AES": # https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf @@ -226,15 +226,7 @@ def run_decryption_test(tools, algorithm, mode, use_boxes=False): return TestExitCode.ERROR -def _setup_logging(verbose=False): - level = logging.DEBUG if verbose else logging.INFO - logging.basicConfig( - format="%(asctime)s | %(module)s | %(levelname)s | %(message)s", level=level - ) - - def run_tests(tools_path=(), use_sde=False, use_boxes=False, verbose=False): - _setup_logging(verbose) tools = Tools(tools_path, use_sde=use_sde) exit_codes = [] @@ -294,7 +286,9 @@ def _parse_args(args=None): def main(args=None): - return run_tests(**vars(_parse_args(args))) + args = _parse_args(args) + with setup_logging(args.verbose): + return run_tests(**vars(args)) if __name__ == "__main__": diff --git a/test/toolkit.py b/test/toolkit.py index 4d8431d..7ef2b71 100644 --- a/test/toolkit.py +++ b/test/toolkit.py @@ -4,10 +4,28 @@ # Distributed under the MIT License. from collections.abc import Iterable +from contextlib import contextmanager from enum import Enum import logging import os.path import subprocess +import sys + + +@contextmanager +def setup_logging(verbose=False): + level = logging.DEBUG if verbose else logging.INFO + logging.basicConfig( + level=level, + datefmt="%Y-%m-%d %H:%M:%S%z", + # The 8 below is for "CRITICAL" + format="%(asctime)s | %(levelname)8s | %(message)s", + ) + try: + yield + except Exception as e: + logging.exception(e) + sys.exit(1) class Algorithm(Enum): |
