2019-04-09 16:14:34 +01:00
|
|
|
import os
|
|
|
|
import re
|
|
|
|
|
2019-07-29 09:38:25 +01:00
|
|
|
import pytest
|
|
|
|
|
2019-04-10 22:03:02 +01:00
|
|
|
import helpers
|
2019-04-09 16:14:34 +01:00
|
|
|
import pqclean
|
|
|
|
|
2019-07-29 09:38:25 +01:00
|
|
|
pattern = re.compile(r'^\s*#include\s*"')
|
2019-04-09 16:14:34 +01:00
|
|
|
|
|
|
|
|
2019-07-29 09:38:25 +01:00
|
|
|
@pytest.mark.parametrize(
|
|
|
|
'implementation',
|
|
|
|
pqclean.Scheme.all_implementations(),
|
|
|
|
ids=str,
|
|
|
|
)
|
2019-04-18 09:00:08 +01:00
|
|
|
@helpers.filtered_test
|
2019-07-29 09:38:25 +01:00
|
|
|
def test_api_h(implementation: pqclean.Implementation):
|
2019-04-09 16:14:34 +01:00
|
|
|
apipath = os.path.join(implementation.path(), 'api.h')
|
|
|
|
errors = []
|
|
|
|
with open(apipath) as f:
|
|
|
|
for i, line in enumerate(f):
|
2019-07-29 09:38:25 +01:00
|
|
|
if pattern.match(line):
|
2019-04-09 16:14:34 +01:00
|
|
|
errors.append("\n at {}:{}".format(apipath, i+1))
|
|
|
|
if errors:
|
|
|
|
raise AssertionError(
|
|
|
|
"Prohibited external include in api.h" + "".join(errors)
|
|
|
|
)
|
|
|
|
|
2019-04-18 09:00:08 +01:00
|
|
|
|
2019-07-29 09:38:25 +01:00
|
|
|
if __name__ == '__main__':
|
|
|
|
import sys
|
|
|
|
pytest.main(sys.argv)
|