def test_validate_experiment_requests_one_valid_one_invalid(): """Tests that validate_experiment_requests returns False even if some requests are valid.""" requests = [ { 'experiment': EXPERIMENT, 'fuzzers': ['afl'] }, { 'experiment': '2020-02-02', 'fuzzers': [] }, ] assert not automatic_run_experiment.validate_experiment_requests(requests)
def test_validate_experiment_requests_duplicate_experiments(): """Tests that validate_experiment_requests returns False if the experiment names are duplicated.""" requests = [ { 'experiment': EXPERIMENT, 'fuzzers': ['afl'] }, { 'experiment': EXPERIMENT, 'fuzzers': ['libfuzzer'] }, ] assert not automatic_run_experiment.validate_experiment_requests(requests)
def validate_experiment_requests(paths: List[Path]): """Returns False if service/experiment-requests.yaml it is in |paths| and is not valid.""" if Path(automatic_run_experiment.REQUESTED_EXPERIMENTS_PATH) not in paths: return True try: experiment_requests = yaml_utils.read( automatic_run_experiment.REQUESTED_EXPERIMENTS_PATH) except yaml.parser.ParserError: print('Error parsing %s.' % automatic_run_experiment.REQUESTED_EXPERIMENTS_PATH) return False result = automatic_run_experiment.validate_experiment_requests( experiment_requests) if not result: print('%s is not valid.' % automatic_run_experiment.REQUESTED_EXPERIMENTS_PATH) return result
def test_validate_experiment_requests(exp_request, expected_result): """Tests that validate_experiment_requests returns True for valid fuzzres and False for invalid ones.""" assert (automatic_run_experiment.validate_experiment_requests( [exp_request]) is expected_result)