def test_dynamic_memory(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('dynamic_memory', implementation): # Keep this loop outside, to allow multiple assertions for function in ['malloc', 'free', 'realloc', 'calloc']: yield (check_dynamic_memory, implementation, function)
def test_char(): if not(os.path.exists(os.path.join('pycparser', '.git'))): helpers.run_subprocess( ['git', 'submodule', 'update', '--init'] ) for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('char', implementation): yield check_char, implementation
def test_makefile_dependencies(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('makefile_dependencies', implementation): # initial build - want to have *all* files in place at beginning helpers.make('clean', working_dir=implementation.path()) helpers.make(working_dir=implementation.path()) # test case for each candidate file cfiles = glob.glob(os.path.join(implementation.path(), '*.c')) hfiles = glob.glob(os.path.join(implementation.path(), '*.h')) for file in (cfiles + hfiles): yield (check_makefile_dependencies, implementation, file)
def test_duplicate_consistency(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('duplicate_consistency', implementation): if os.path.isfile( os.path.join( 'duplicate_consistency', '{}_{}.yml'.format(scheme.name, implementation.name))): metafile = os.path.join( 'duplicate_consistency', '{}_{}.yml'.format(implementation.scheme.name, implementation.name)) with open(metafile, encoding='utf-8') as f: metadata = yaml.load(f.read()) for group in metadata['consistency_checks']: source = pqclean.Implementation.by_name( group['source']['scheme'], group['source']['implementation']) for file in group['files']: yield check_duplicate_consistency, implementation, source, file
def test_functest(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('valgrind', implementation): yield check_valgrind, implementation
def test_metadata_sizes(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('metadata_sizes', implementation): yield check_metadata_sizes, implementation
def test_compile_lib(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('compile_lib', implementation): yield check_compile_lib, implementation
def test_preprocessor(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('preprocessor', implementation): yield check_preprocessor, implementation
def test_nistkat(): for scheme in pqclean.Scheme.all_schemes(): if scheme.type != 'kem': continue for implementation in scheme.implementations: if helpers.permit_test('nistkat', implementation): yield check_nistkat, implementation
def test_symbol_namespace(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('symbol_namespace', implementation): yield check_symbol_namespace, implementation
def test_clang_tidy(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('linter', implementation): yield check_tidy, implementation
def test_no_symlinks(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('no_symlinks', implementation): yield check_no_symlinks, implementation
def test_license(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('license', implementation): yield check_license, implementation
def test_functest_sanitizers(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('functest_sanitizers', implementation): yield check_functest_sanitizers, implementation
def test_common(): for d in os.listdir('common'): primitive = re.sub(r"\.c$", "", d) if helpers.permit_test('common', None): yield check_common, primitive
def test_testvectors(): for scheme in pqclean.Scheme.all_schemes(): for implementation in scheme.implementations: if helpers.permit_test('testvectors', implementation): yield check_vectors, implementation
def test_metadata(): for scheme in pqclean.Scheme.all_schemes(): if helpers.permit_test('metadata', scheme): yield check_metadata, scheme