# When changing this file, you can (and should) validate your changes by
# running |./site_utils/suite_scheduler/suite_scheduler.py --sanity|
#
# When adding tests to a suite, if one (or more) of the tests contains
# DEPENDENCIES, then the number of different host specifications required
# can increase. This means that the number of physical machines the suite
# must ask for increases, as if a suite needs two different machines, and
# only asks for one, then there's going to be some set of tests that can't
# run. The sanity check will describe to you what suites to set at what
# number of machines to make sure all suites can run.

#[nightly_params]
#always_handle: True

[WeeklyKernelRegressions]
run_on: weekly
suite: kernel_weekly_regression
branch_specs: >=R21
pool: suites
num: 2

[WeeklyPowerRequirements]
run_on: weekly
suite: power_requirements
branch_specs: >=R22
pool: power

[WeeklyVideoRegressions]
run_on: weekly
suite: video_weekly_regression
branch_specs: >=R27
pool: suites
num: 2

[WeeklyStoraqequal]
run_on: weekly
suite: storagequal
branch_specs: >=R30
pool: suites

[NightlyGraphics]
run_on: nightly
suite: graphics
branch_specs: >=R21
pool: suites

[PerBuildGraphics]
run_on: new_build
suite: graphics_per-build
branch_specs: >=R28
pool: suites

[GraphicsGLES]
run_on: nightly
suite: graphicsGLES
branch_specs: >=R22
pool: snow

[GpuHang]
run_on: new_build
suite: gpu_hang
branch_specs: >=R31
pool: suites

[NightlyHwQual]
run_on: nightly
suite: hwqual
branch_specs: >=R21
pool: suites
num: 3

[KernelDailyRegression]
run_on: nightly
suite: kernel_daily_regression
branch_specs: >=R21
pool: suites
num: 2

[KernelDailyBenchmarks]
run_on: nightly
suite: kernel_daily_benchmarks
branch_specs: >=R21
pool: suites

[KernelPerBuildRegression]
run_on: new_build
suite: kernel_per-build_regression
branch_specs: >=R21
pool: suites
num: 2

[KernelPerBuildBenchmarks]
run_on: new_build
suite: kernel_per-build_benchmarks
branch_specs: >=R21
pool: suites

[NightlyRegression]
run_on: nightly
suite: regression
branch_specs: >=R21
pool: suites
num: 2

[Network3g]
run_on: nightly
suite: network3g
branch_specs: >=R25
pool: cellular
num: 7

[Network3g_tmobile]
run_on: nightly
suite: network3g_tmobile
branch_specs: >=R28
pool: cellular
num: 4

[Network3g_verizon]
run_on: nightly
suite: network3g_verizon
branch_specs: >=R28
pool: cellular
num: 2

[Network3g_pseudomodem]
run_on: new_build
suite: network3g_pseudomodem
branch_specs: >=R29
pool: suites

[NetworkUI]
run_on: new_build
suite: network_ui
branch_specs: >=R30
pool: suites

[OncCellSuite]
run_on: nightly
suite: onccell
pool: onccell
branch_specs: >=R26

[PowerDaily]
run_on: nightly
suite: power_daily
branch_specs: >=R21
pool: power

[Perfalerts]
# Not a part of perf build because it requires 3 machines.
run_on: new_build
suite: perfalerts
branch_specs: >=R21
pool: suites
num: 1

[SecuritySuite]
run_on: new_build
suite: security
branch_specs: >=R21
pool: suites

[Power_build]
run_on: new_build
suite: power_build
branch_specs: >=R21
pool: power

[pyauto]
run_on: new_build
suite: pyauto
branch_specs: >=R21
pool: suites

[pyauto_perf]
run_on: new_build
suite: pyauto_perf
branch_specs: >=R21
pool: suites

[pyauto_perf_snow]
run_on: new_build
suite: pyauto_perf
branch_specs: >=R22
pool: snow

[pyauto_basic]
run_on: new_build
suite: pyauto_basic
branch_specs: >=R21
pool: suites

[pagecycler]
run_on: new_build
suite: pagecycler
branch_specs: >=R21
pool: suites

[audio]
run_on: new_build
suite: audio
branch_specs: >=R21
pool: suites

[video]
run_on: new_build
suite: video
branch_specs: >=R26
pool: suites
num: 4

[youtube_mse_eme]
run_on: new_build
suite: youtube_mse_eme
branch_specs: >=R30
pool: suites

[youtube_page]
run_on: new_build
suite: youtube_page
branch_specs: >=R30
pool: suites

[WebRTC]
run_on: nightly
suite: webrtc
branch_specs: >=R26
pool: suites

[sync]
run_on: new_build
suite: sync
branch_specs: >=R21
pool: suites

[browsertests]
run_on: new_build
suite: browsertests
branch_specs: >=R21
pool: suites

# run only and post-ALEX platforms (so do not run mario, zgb, and alex)
[VDA]
run_on: new_build
suite: vda
branch_specs: >=R23
pool: vda
num: 2

[LinkPerf]
run_on: new_build
suite: link_perf
branch_specs: >=R23
pool: link_perf

[FirmwarePerBuildRegression_normal]
run_on: new_build
suite: faft_normal
pool: faft-normal
branch_specs: >=R26

[FirmwarePerBuildRegression_dev]
run_on: new_build
suite: faft_dev
pool: faft-dev
branch_specs: >=R26

[FirmwarePerBuildRegression_ec]
run_on: new_build
suite: faft_ec
pool: faft-ec
branch_specs: >=R26

#[Network_wifi]
# We need to figure out how we can work out the scheduling of this test.
#run_on: nightly
#suite: network_wifi
#branch_specs: >=R21
#pool: ????

# Disabled until crbug.com/294923 is fixed
# [perf_v2]
# run_on: new_build
# suite: perf_v2
# branch_specs: >=R27
# pool: suites

[NetworkNightly]
run_on: nightly
suite: network_nightly
branch_specs: >=R29
pool: suites

[WiFi_MatFuncDaily]
run_on: nightly
suite: wifi_matfunc
branch_specs: >=R29
pool: wificell

[WiFi_FlakyTests]
run_on: nightly
suite: wifi_flaky
branch_specs: >=R30
pool: wificell

[SecurityWeekly]
run_on: weekly
suite: security_weekly
branch_specs: >=R30
pool: suites
