Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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)