From 8fdb44b815977854bf8b20c60da10ef802a2ae67 Mon Sep 17 00:00:00 2001 From: gustavogaldinoo Date: Tue, 7 May 2024 14:35:40 +0000 Subject: [PATCH] Minor fixes based on PR feedback --- common/benchmark_utils.py | 21 ++++++++------------- common/test_benchmark_utils.py | 4 ++-- experiment/run_experiment.py | 7 +++++-- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/common/benchmark_utils.py b/common/benchmark_utils.py index 331eedad4..88f7a1abe 100644 --- a/common/benchmark_utils.py +++ b/common/benchmark_utils.py @@ -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 diff --git a/common/test_benchmark_utils.py b/common/test_benchmark_utils.py index 3144a79af..b45b7ed9c 100644 --- a/common/test_benchmark_utils.py +++ b/common/test_benchmark_utils.py @@ -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( @@ -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) diff --git a/experiment/run_experiment.py b/experiment/run_experiment.py index c5ddf90c2..620d3cb97 100644 --- a/experiment/run_experiment.py +++ b/experiment/run_experiment.py @@ -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,