Skip to content

Commit

Permalink
Minor fixes based on PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
gustavogaldinoo committed May 7, 2024
1 parent dbcc1df commit 8fdb44b
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 17 deletions.
21 changes: 8 additions & 13 deletions common/benchmark_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,18 +165,13 @@ def get_language(benchmark):
return config.get('language', 'c++')


def are_benchmarks_mixed(benchmarks):
""""Returns True if benchmarks list
is a mix of bugs and coverage benchmarks"""
if not benchmarks:
return False

selected_coverage_benchmarks = get_coverage_benchmarks(benchmarks)
only_coverage_benchmarks = len(selected_coverage_benchmarks) == len(
benchmarks)
only_bug_benchmarks = len(selected_coverage_benchmarks) == 0
def are_benchmarks_mixed(benchmarks=None):
"""Returns True if benchmarks list
is a mix of bugs and coverage benchmarks."""
if benchmarks is None:
benchmarks = get_all_benchmarks()

if only_bug_benchmarks or only_coverage_benchmarks:
return False
unique_benchmarks_types = set(
get_type(benchmark) for benchmark in benchmarks)

return True
return len(unique_benchmarks_types) > 1
4 changes: 2 additions & 2 deletions common/test_benchmark_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def test_get_default_type(_):
def test_are_benchmarks_mixed_valid(benchmarks):
"""Tests that are_benchmarks_mixed returns True
for a list that have both bug and coverage benchmarks"""
assert benchmark_utils.are_benchmarks_mixed(benchmarks) is True
assert benchmark_utils.are_benchmarks_mixed(benchmarks)


@pytest.mark.parametrize(
Expand All @@ -99,4 +99,4 @@ def test_are_benchmarks_mixed_valid(benchmarks):
def test_are_benchmarks_mixed_invalid(benchmarks):
"""Tests that are_benchmarks_mixed returns False
for a list that have only bug or only coverage benchmarks"""
assert benchmark_utils.are_benchmarks_mixed(benchmarks) is False
assert not benchmark_utils.are_benchmarks_mixed(benchmarks)
7 changes: 5 additions & 2 deletions experiment/run_experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -745,9 +745,12 @@ def run_experiment_main(args=None):
'"oss_fuzz_corpus" at the same time')

if benchmark_utils.are_benchmarks_mixed(args.benchmarks):
benchmark_types = ';'.join(
[f'{b}: {benchmark_utils.get_type(b)}' for b in args.benchmarks])
raise ValidationError(
'Selected benchmarks are a mix between coverage '
'and bug benchmarks. This is currently not supported.')
'Selected benchmarks are a mix between coverage'
'and bug benchmarks. This is currently not supported.'
f'Selected benchmarks: {benchmark_types}')

start_experiment(args.experiment_name,
args.experiment_config,
Expand Down

0 comments on commit 8fdb44b

Please sign in to comment.