# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import json

DEPS = [
    'auto_bisect_staging',
    'chromium',
    'chromium_tests',
    'recipe_engine/json',
    'depot_tools/gclient',
    'recipe_engine/path',
    'recipe_engine/platform',
    'recipe_engine/properties',
    'recipe_engine/raw_io',
    'recipe_engine/step',
]

"""This file is a recipe demonstrating the auto_bisect_staging recipe module.

For more information about recipes, see: https://goo.gl/xKnjz6
"""


def RunSteps(api):
  # Dupe of bisection/desktop_bisect recipe.
  mastername = api.properties.get('mastername')
  buildername = api.properties.get('buildername')
  bot_config = api.chromium_tests.create_bot_config_object(mastername,
                                                           buildername)
  api.chromium_tests.configure_build(bot_config)
  api.gclient.apply_config('perf')
  api.gclient.c.got_revision_mapping.pop('catapult', None)
  update_step, bot_db = api.chromium_tests.prepare_checkout(bot_config)
  api.path.c.dynamic_paths['catapult'] = (
      api.auto_bisect_staging.working_dir.join('catapult'))
  api.path.c.dynamic_paths['bisect_results'] = api.path['start_dir'].join(
      'bisect_results')
  api.auto_bisect_staging.start_try_job(
      api, update_step=update_step, bot_db=bot_db,
      do_not_nest_wait_for_revision=True)

def GenTests(api):
  yield (
      api.test('basic_linux_bisect')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314017',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
              'gsutil_exists': 10 * [False]
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [12, 13, 16, 7],
              'test_results': 5 * [{'retcode': 0}],
              'gsutil_exists': [True],
              'cl_info': {
                  'author': 'DummyAuthor',
                  'email': 'dummy@nowhere.com',
                  'subject': 'Some random CL',
                  'date': '01/01/2015',
                  'body': ('A long description for a CL.\n'
                           'Containing multiple lines'),
              },
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [12, 13, 16, 7],
              'test_results': 5 * [{'retcode': 0}],
          }]))
  yield (
      api.test('basic_buildbot_bisect')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('./src/out/Release/cc_perftests '
                    '--test-launcher-print-test-stdio=always --verbose'),
              'good_revision': '314015',
              'bad_revision': '314017',
              'metric': 'calc_draw_props_time/touch_region_heavy',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
              'gsutil_exists': 10 * [False]
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [12, 13, 16, 7],
              'test_results': 5 * [{'retcode': 0}],
              'gsutil_exists': [True],
              'cl_info': {
                  'author': 'DummyAuthor',
                  'email': 'dummy@nowhere.com',
                  'subject': 'Some random CL',
                  'date': '01/01/2015',
                  'body': ('A long description for a CL.\n'
                           'Containing multiple lines'),
              },
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [12, 13, 16, 7],
              'test_results': 5 * [{'retcode': 0}],
          }]))
  yield (
      api.test('basic_resource_sizes_bisect')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('./src/build/android/test_runner.py perf '
                    '--print-step "resource_sizes MonochromePublic.apk" '
                    '--adb-path {ADB_PATH}'
                    '--verbose --output-chartjson-data={OUTPUT_FILE}'),
              'good_revision': '314015',
              'bad_revision': '314017',
              'metric': 'calc_draw_props_time/touch_region_heavy',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
              'gsutil_exists': 10 * [False]
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [12, 13, 16, 7],
              'test_results': 5 * [{'retcode': 0}],
              'gsutil_exists': [True],
              'cl_info': {
                  'author': 'DummyAuthor',
                  'email': 'dummy@nowhere.com',
                  'subject': 'Some random CL',
                  'date': '01/01/2015',
                  'body': ('A long description for a CL.\n'
                           'Containing multiple lines'),
              },
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [12, 13, 16, 7],
              'test_results': 5 * [{'retcode': 0}],
          }]))
  yield (
      api.test('v8_roll_bisect_bis')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314017',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 21, 22, 1],
              'test_results': 5 * [{'retcode': 0}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [19, 20, 21, 22, 1],
              'test_results': 5 * [{'retcode': 0}],
              "DEPS": ("vars={'v8_revision': '001'};"
                       "deps = {'src/v8': 'v8.git@' + Var('v8_revision'),"
                       "'src/third_party/WebKit': 'webkit.git@010'}"),
          },
          {
              'depot':'v8',
              'hash': '002',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 5 * [{'retcode': 0}],
              'gsutil_exists': 10 * [False],
              'cl_info': {
                  'author': 'DummyAuthor',
                  'email': 'dummy@nowhere.com',
                  'subject': 'Some random CL',
                  'date': '01/01/2015',
                  'body': ('A long description for a CL.\n'
                           'Containing multiple lines'),
              },
          },
          {
              'depot':'v8',
              'hash': '003',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 5 * [{'retcode': 0}],
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 5 * [{'retcode': 0}],
              'DEPS_change': 'True',
              "DEPS": ("vars={'v8_revision': '004'};"
                       "deps = {'src/v8': 'v8.git@' + Var('v8_revision'),"
                       "'src/third_party/WebKit': 'webkit.git@010'}"),
              'DEPS_interval': {'v8': '002 003 004'.split()},
          }]))
  yield (
      api.test('v8_roll_bisect')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314017',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 21, 22, 1],
              'test_results': 5 * [{'retcode': 0}],
              "DEPS": ("vars={'v8_revision': '001'};"
                       "deps = {'src/v8': 'v8.git@' + Var('v8_revision'),"
                       "'src/third_party/WebKit': 'webkit.git@010'}"),
          },
          {
              'depot':'v8',
              'hash': '002',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 5 * [{'retcode': 0}],
              'gsutil_exists': 10 * [False],
              'cl_info': {
                  'author': 'DummyAuthor',
                  'email': 'dummy@nowhere.com',
                  'subject': 'Some random CL',
                  'date': '01/01/2015',
                  'body': ('A long description for a CL.\n'
                           'Containing multiple lines'),
              },
          },
          {
              'depot':'v8',
              'hash': '003',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 5 * [{'retcode': 0}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 5 * [{'retcode': 0}],
              'DEPS_change': 'True',
              "DEPS": ("vars={'v8_revision': '004'};"
                       "deps = {'src/v8': 'v8.git@' + Var('v8_revision'),"
                       "'src/third_party/WebKit': 'webkit.git@010'}"),
              'DEPS_interval': {'v8': '002 003 004'.split()},
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 5 * [{'retcode': 0}],
          }]))
  yield (
      api.test('retest_bisect')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314017',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': 10 * [0] + [1],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': 20 * [0] + [7],
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': 10 * [0] + [7],
          }]))
  yield (
      api.test('bad_config')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314016',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': 'crbug.com/123123',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          }))
  yield (
      api.test('return_code')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'return_code',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314014',
              'bad_revision': '314017',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': '0a1b2c3d4f0a1b2c3d4f0a1b2c3d4f0a1b2c3d4f',
              'commit_pos': '314014',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
          },
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [20, 19, 23, 7],
              'test_results': 5 * [{'retcode': 1}],
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [20, 19, 23, 7],
              'test_results': 5 * [{'retcode': 1}],
          }]))
  yield (
      api.test('return_code_fail')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'return_code',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314014',
              'bad_revision': '314017',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': '0a1b2c3d4f0a1b2c3d4f0a1b2c3d4f0a1b2c3d4f',
              'commit_pos': '314014',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [20, 19, 23, 7],
              'test_results': 5 * [{'retcode': 0}],
          }]))
  yield (
      api.test('basic_bisect_other_direction')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314017',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [12, 13, 14, 7],
              'test_results': 5 * [{'retcode': 0}],
              'cl_info': {
                  'author': 'DummyAuthor',
                  'email': 'dummy@nowhere.com',
                  'subject': 'Some random CL',
                  'date': '01/01/2015',
                  'body': ('A long description for a CL.\n'
                           'Containing multiple lines'),
              },
          }]))
  yield (
      api.test('no_repro')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314016',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 5 * [{'retcode': 0}],
          },
          ]))
  yield (
      api.test('gathering_references_no_values')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314016',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [],
              'test_results': 5 * [{'retcode': 1}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [],
              'test_results': 5 * [{'retcode': 1}],
          },
          ]))
  yield (
      api.test('failed_build')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314016',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'gsutil_exists': 2 * [False],
              'test_results': 5 * [{'retcode': 0}],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'SUCCESS'}}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          ]))
  yield (
      api.test('failed_buildbucket_get')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314016',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'gsutil_exists': 2 * [False],
              'test_results': 5 * [{'retcode': 0}],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'SUCCESS'}}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'gsutil_exists': 10 * [False],
              'build_status': ['ERROR'],
          },
          ]))
  yield (
      api.test('no_values')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314017',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'test_results': 21 * [{'retcode': 0}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'parsed_values': [404],
              'test_results': 21 * [{'retcode': 0}],
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 21 * [{'retcode': 0}],
          }]))
  yield (
      api.test('failed_build_inconclusive_1')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314017',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'gsutil_exists': 2 * [False],
              'test_results': 5 * [{'stdout': 'benchmark text', 'retcode': 0}],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'SUCCESS'}}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314016',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314017',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 21 * [{'stdout': 'benchmark text', 'retcode': 0}],
          },
          ]))
  yield (
      api.test('failed_build_inconclusive_11')
      + api.properties(
          mastername='tryserver.chromium.perf',
          buildername='linux_perf_bisect',
          bot_id='dummybot',
          buildnumber=571,
          bisect_config={
              'test_type': 'perf',
              'command':
                  ('src/tools/perf/run_benchmark -v --browser=release '
                   '--output-format=valueset smoothness.tough_scrolling_cases'),
              'good_revision': '314015',
              'bad_revision': '314027',
              'metric': 'mean_input_event_latency/mean_input_event_latency',
              'bug_id': '-1',
              'gs_bucket': 'chrome-perf',
              'dummy_builds': 'True',
              'dummy_tests': 'True',
              'dummy_job_names': 'True',
              'bypass_stats_check': 'True',
              'skip_gclient_ops': 'True',
              'recipe_tester_name': 'linux_perf_tester'
          })
      + api.auto_bisect_staging([
          {
              'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
              'commit_pos': '314015',
              'parsed_values': [19, 20, 23, 1],
              'gsutil_exists': 2 * [False],
              'test_results': 5 * [{'stdout': 'benchmark text', 'retcode': 0}],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'SUCCESS'}}],
          },
          {
              'hash': 'ab16ab16ab16ab16ab16ab16ab16ab16ab16ab16',
              'commit_pos': '314016',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': 'bc17bc17bc17bc17bc17bc17bc17bc17bc17bc17',
              'commit_pos': '314017',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': 'cd18cd18cd18cd18cd18cd18cd18cd18cd18cd18',
              'commit_pos': '314018',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': 'de19de19de19de19de19de19de19de19de19de19',
              'commit_pos': '314019',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': 'ef20ef20ef20ef20ef20ef20ef20ef20ef20ef20',
              'commit_pos': '314020',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': 'f021f021f021f021f021f021f021f021f021f021',
              'commit_pos': '314021',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': '0122012201220122012201220122012201220122',
              'commit_pos': '314022',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': '1223122312231223122312231223122312231223',
              'commit_pos': '314023',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': '2324232423242324232423242324232423242324',
              'commit_pos': '314024',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': '3425342534253425342534253425342534253425',
              'commit_pos': '314025',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': 'dcdcdc0ff1122212323134879ddceeb1240b0988',
              'commit_pos': '314026',
              'gsutil_exists': 10 * [False],
              'build_status': [{'build': {'status': 'SCHEDULED'}},
                               {'build': {'status': 'COMPLETED',
                                          'result': 'FAILED'}}],
          },
          {
              'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
              'commit_pos': '314027',
              'parsed_values': [12, 13, 14, 15, 7],
              'test_results': 21 * [{'stdout': 'benchmark text', 'retcode': 0}],
          },
          ]))
