diff options
author | Jonathan Metzman <metzman@chromium.org> | 2021-01-20 15:52:20 -0800 |
---|---|---|
committer | Jonathan Metzman <metzman@chromium.org> | 2021-01-20 15:52:20 -0800 |
commit | adebf8ece3a56ef621b930922def169d286e41b0 (patch) | |
tree | 4902a926321581306b15f7fdf59d99d372f5ea5f /infra/presubmit.py | |
parent | 9ce539763fea276cda54dcfc6aea043ca483c862 (diff) | |
download | oss-fuzz-adebf8ece3a56ef621b930922def169d286e41b0.tar.gz |
implement blocklist
Diffstat (limited to 'infra/presubmit.py')
-rwxr-xr-x | infra/presubmit.py | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/infra/presubmit.py b/infra/presubmit.py index b779fa00d..52e28e27d 100755 --- a/infra/presubmit.py +++ b/infra/presubmit.py @@ -19,15 +19,19 @@ import argparse import pathlib import os +import re import subprocess import sys import unittest import yaml _SRC_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -TEST_DIR_BLOCKLIST = { - os.path.join(_SRC_ROOT, 'infra/base-images/base-sanitizer-libs-builder') -} +TEST_BLOCKLIST = [ + re.compile(r'.*\/infra\/base-images\/base-sanitizer-libs-builder'), + # TODO(https://github.com/google/oss-fuzz/issues/5025): Reenable these + # tests. + re.compile(r'.*\/infra\/build(\/?).*'), +] def _is_project_file(actual_path, expected_filename): @@ -331,17 +335,27 @@ def get_changed_files(): ] +def is_test_dir_blocklisted(directory): + for blocklisted_regex in TEST_BLOCKLIST: + if blocklisted_regex.search(directory): + return True + return False + def run_tests(relevant_files): """Run all unit tests in directories that are different from HEAD.""" changed_dirs = set() for file_path in relevant_files: directory = os.path.dirname(file_path) - if directory in TEST_DIR_BLOCKLIST: - continue - if not directory.endswith('build'): + if is_test_dir_blocklisted(directory): continue changed_dirs.add(directory) + for d in changed_dirs: + if 'functions' in directory: + import ipdb; ipdb.set_trace() + pass + + # TODO(metzman): This approach for running tests is flawed since tests can # fail even if their directory isn't changed. Figure out if it is needed (to # save time) and remove it if it isn't. @@ -351,6 +365,7 @@ def run_tests(relevant_files): pattern='*_test.py')) suite = unittest.TestSuite(suite_list) result = unittest.TextTestRunner().run(suite) + return not result.failures and not result.errors |