From facc293a21c2f9db03ba2d48943d12e52a81a8ad Mon Sep 17 00:00:00 2001 From: Thom Wiggers Date: Wed, 27 Feb 2019 15:50:25 +0100 Subject: [PATCH] Add format tests to python tests --- Makefile | 9 --------- test/pqclean.py | 6 ++++++ test/test_format.py | 30 ++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 test/test_format.py diff --git a/Makefile b/Makefile index 44d53d92..a1c5b4cc 100644 --- a/Makefile +++ b/Makefile @@ -72,14 +72,6 @@ bin/shared_$(subst /,_,$(SCHEME))_clean.so: $(wildcard $(SCHEME)/clean/*.c) | re clean: rm -rf bin -.PHONY: format -format: - astyle --project crypto_*/*/*/*.[ch] common/*.[ch] - -.PHONY: check-format -check-format: - astyle --dry-run --project crypto_*/*/*/*.[ch] common/*.[ch] | grep Formatted && exit 1 || exit 0 - .PHONY: tidy tidy: $(MAKE) do-tidy @@ -107,7 +99,6 @@ help: @echo "make run-valgrind SCHEME=scheme Run valgrind checks for SCHEME" @echo "make run-valgrind-all Run valgrind checks all schemes" @echo "make clean Clean up the bin/ folder" - @echo "make format Automatically formats all the source code" @echo "make tidy SCHEME=scheme Runs the clang-tidy linter against SCHEME" @echo "make apply-tidy SCHEME=scheme Tries to automatically fix the issues found by clang-tidy in SCHEME" @echo "make tidy-all Runs the clang-tidy linter against all schemes" diff --git a/test/pqclean.py b/test/pqclean.py index 23b2efd2..e4a7cb6a 100644 --- a/test/pqclean.py +++ b/test/pqclean.py @@ -92,6 +92,12 @@ class Implementation: return '{}{}_'.format(self.scheme.namespace_prefix(), self.name.upper()).replace('-', '') + def __str__(self): + return "{} implementation of {}".format(self.name, self.scheme.name) + + def __repr__(self): + return "".format(self.name, self.scheme.name) + class KEM(Scheme): diff --git a/test/test_format.py b/test/test_format.py new file mode 100644 index 00000000..6dc92084 --- /dev/null +++ b/test/test_format.py @@ -0,0 +1,30 @@ +import os +from glob import glob + +import pqclean +from helpers import run_subprocess + + +def test_formatting(): + for scheme in pqclean.Scheme.all_schemes(): + for implementation in scheme.implementations: + yield check_format, implementation + + +def check_format(implementation: pqclean.Implementation): + cfiles = glob(os.path.join(implementation.path(), '*.c')) + hfiles = glob(os.path.join(implementation.path(), '*.h')) + run_subprocess(['astyle', + '--dry-run', + '--options=../.astylerc', + *cfiles, + *hfiles]) + + +if __name__ == "__main__": + try: + import nose2 + nose2.main() + except ImportError: + import nose + nose.runmodule()