1
1
mirror of https://github.com/henrydcase/pqc.git synced 2024-11-27 09:51:30 +00:00
pqcrypto/test/test_api_h.py

36 lines
851 B
Python
Raw Normal View History

2019-04-09 16:14:34 +01:00
import os
import re
import helpers
2019-04-09 16:14:34 +01:00
import pqclean
def test_api_h():
2019-04-09 16:14:34 +01:00
for scheme in pqclean.Scheme.all_schemes():
for implementation in scheme.implementations:
yield check_api_h, implementation
2019-04-09 16:14:34 +01:00
@helpers.filtered_test
def check_api_h(implementation: pqclean.Implementation):
2019-04-09 16:14:34 +01:00
apipath = os.path.join(implementation.path(), 'api.h')
errors = []
p = re.compile(r'^\s*#include\s*"')
with open(apipath) as f:
for i, line in enumerate(f):
if p.match(line):
errors.append("\n at {}:{}".format(apipath, i+1))
if errors:
raise AssertionError(
"Prohibited external include in api.h" + "".join(errors)
)
2019-04-09 16:14:34 +01:00
if __name__ == "__main__":
try:
import nose2
nose2.main()
except ImportError:
import nose
nose.runmodule()