aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/cavp.py14
-rwxr-xr-xtest/file.py14
-rwxr-xr-xtest/nist.py14
-rw-r--r--test/toolkit.py18
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):