# Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS-IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This file is a simplified version of fruit_wiki_benchs_{fruit,boost_di}.yml used to debug benchmarking code.
# When using this, the benchmarks will run much faster, but the results will be unreliable and incomplete.

global:
  max_runs: 20
  max_hours_per_combination: 2

# These values are ignored, they are here just to be referenced below.
constants:
  compilers: &compilers
    - "g++-9"
    - "clang++-10"
  num_classes: &num_classes
    - 100
    - 250
    - 1000

benchmarks:
  - name:
    - "new_delete_run_time"
    - "simple_di_compile_time"
    - "simple_di_compile_memory"
    - "simple_di_incremental_compile_time"
    - "simple_di_run_time"
    - "simple_di_startup_time"
    - "simple_di_executable_size"
    - "simple_di_with_interfaces_compile_memory"
    - "simple_di_with_interfaces_compile_time"
    - "simple_di_with_interfaces_incremental_compile_time"
    - "simple_di_with_interfaces_run_time"
    - "simple_di_with_interfaces_startup_time"
    - "simple_di_with_interfaces_executable_size"
    - "simple_di_with_interfaces_and_new_delete_compile_memory"
    - "simple_di_with_interfaces_and_new_delete_compile_time"
    - "simple_di_with_interfaces_and_new_delete_incremental_compile_time"
    - "simple_di_with_interfaces_and_new_delete_run_time"
    - "simple_di_with_interfaces_and_new_delete_startup_time"
    - "simple_di_with_interfaces_and_new_delete_executable_size"
    loop_factor: 1.0
    num_classes: *num_classes
    compiler: *compilers
    cxx_std: "c++11"
    additional_cmake_args:
      - []
    benchmark_generation_flags:
      - []

  - name:
    - "simple_di_executable_size_without_exceptions_and_rtti"
    - "simple_di_with_interfaces_executable_size_without_exceptions_and_rtti"
    - "simple_di_with_interfaces_and_new_delete_executable_size_without_exceptions_and_rtti"
    loop_factor: 1.0
    num_classes: *num_classes
    compiler: *compilers
    cxx_std: "c++11"
    additional_cmake_args:
      - ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']
    benchmark_generation_flags:
      - []
