Merge pull request #60 from PQClean/format-check-in-python
Add formatting tests to the python-based testing framework.
This commit is contained in:
commit
7a36262f6a
@ -8,6 +8,10 @@ matrix:
|
|||||||
- pip3 install -r requirements.txt
|
- pip3 install -r requirements.txt
|
||||||
script:
|
script:
|
||||||
- "cd test && python3 -m nose --rednose --verbose"
|
- "cd test && python3 -m nose --rednose --verbose"
|
||||||
|
addons:
|
||||||
|
homebrew:
|
||||||
|
packages:
|
||||||
|
- astyle
|
||||||
- name: "MacOS + GCC8"
|
- name: "MacOS + GCC8"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode10.1
|
osx_image: xcode10.1
|
||||||
@ -15,6 +19,7 @@ matrix:
|
|||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
- astyle
|
||||||
- gcc@8
|
- gcc@8
|
||||||
before_install:
|
before_install:
|
||||||
- pip3 install -r requirements.txt
|
- pip3 install -r requirements.txt
|
||||||
|
9
Makefile
9
Makefile
@ -13,14 +13,6 @@ endif
|
|||||||
clean:
|
clean:
|
||||||
rm -rf bin
|
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
|
.PHONY: tidy
|
||||||
tidy:
|
tidy:
|
||||||
$(MAKE) do-tidy
|
$(MAKE) do-tidy
|
||||||
@ -40,7 +32,6 @@ apply-tidy:
|
|||||||
.PHONY: help
|
.PHONY: help
|
||||||
help:
|
help:
|
||||||
@echo "make clean Clean up the bin/ folder"
|
@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 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 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"
|
@echo "make tidy-all Runs the clang-tidy linter against all schemes"
|
||||||
|
@ -92,6 +92,12 @@ class Implementation:
|
|||||||
return '{}{}_'.format(self.scheme.namespace_prefix(),
|
return '{}{}_'.format(self.scheme.namespace_prefix(),
|
||||||
self.name.upper()).replace('-', '')
|
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):
|
class KEM(Scheme):
|
||||||
|
|
||||||
|
30
test/test_format.py
Normal file
30
test/test_format.py
Normal file
@ -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()
|
Loading…
Reference in New Issue
Block a user