Add format tests to python tests

Cette révision appartient à :
Thom Wiggers 2019-02-27 15:50:25 +01:00
Parent ed8e845f77
révision facc293a21
Signature inconnue de Gitea
ID de la clé GPG: 001BB0A7CE26E363
3 fichiers modifiés avec 36 ajouts et 9 suppressions

Voir le fichier

@ -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"

Voir le fichier

@ -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 "<Implementation({}, {})>".format(self.name, self.scheme.name)
class KEM(Scheme):

30
test/test_format.py Fichier normal
Voir le fichier

@ -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()