# 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

[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

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

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

[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: 10

[WifiCellSuite]
run_on: nightly
suite: wificell
pool: wificell
branch_specs: >=R26

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

[WiFiChaosSuite]
run_on: nightly
suite: wifichaos
pool: wifichaos
branch_specs: >=R27

[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: 2

[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

[ButterflyBVT]
run_on: new_build
suite: bvt
branch_specs: >=R22
pool: butterfly
num: 4

# 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

[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: ????

[Telemetry_Benchmarks]
run_on: new_build
suite: telemetry_benchmarks
branch_specs: >=R27
pool: suites
