
# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""This contains some mock instances for testing."""

from benchmark import Benchmark
from benchmark_run import MockBenchmarkRun
from label import MockLabel
from machine_manager import MockMachineManager
from results_cache import MockResultsCache

perf_args = 'record -a -e cycles'
label1 = MockLabel('test1',
                   'image1',
                   '/tmp/test_benchmark_run',
                   'x86-alex',
                   'chromeos-alex1',
                   image_args='',
                   cache_dir='',
                   cache_only=False,
                   log_level='average',
                   compiler='gcc')

label2 = MockLabel('test2',
                   'image2',
                   '/tmp/test_benchmark_run_2',
                   'x86-alex',
                   'chromeos-alex2',
                   image_args='',
                   cache_dir='',
                   cache_only=False,
                   log_level='average',
                   compiler='gcc')

benchmark1 = Benchmark('benchmark1', 'autotest_name_1', 'autotest_args', 2, '',
                       perf_args, '', '')

benchmark2 = Benchmark('benchmark2', 'autotest_name_2', 'autotest_args', 2, '',
                       perf_args, '', '')

keyval = {}
keyval[0] = {'': 'PASS',
             'milliseconds_1': '1',
             'milliseconds_2': '8',
             'milliseconds_3': '9.2',
             'test{1}': '2',
             'test{2}': '4',
             'ms_1': '2.1',
             'total': '5',
             'bool': 'True'}

keyval[1] = {'': 'PASS',
             'milliseconds_1': '3',
             'milliseconds_2': '5',
             'ms_1': '2.2',
             'total': '6',
             'test{1}': '3',
             'test{2}': '4',
             'bool': 'FALSE'}

keyval[2] = {'': 'PASS',
             'milliseconds_4': '30',
             'milliseconds_5': '50',
             'ms_1': '2.23',
             'total': '6',
             'test{1}': '5',
             'test{2}': '4',
             'bool': 'FALSE'}

keyval[3] = {'': 'PASS',
             'milliseconds_1': '3',
             'milliseconds_6': '7',
             'ms_1': '2.3',
             'total': '7',
             'test{1}': '2',
             'test{2}': '6',
             'bool': 'FALSE'}

keyval[4] = {'': 'PASS',
             'milliseconds_1': '3',
             'milliseconds_8': '6',
             'ms_1': '2.3',
             'total': '7',
             'test{1}': '2',
             'test{2}': '6',
             'bool': 'TRUE'}

keyval[5] = {'': 'PASS',
             'milliseconds_1': '3',
             'milliseconds_8': '6',
             'ms_1': '2.2',
             'total': '7',
             'test{1}': '2',
             'test{2}': '2',
             'bool': 'TRUE'}

keyval[6] = {'': 'PASS',
             'milliseconds_1': '3',
             'milliseconds_8': '6',
             'ms_1': '2',
             'total': '7',
             'test{1}': '2',
             'test{2}': '4',
             'bool': 'TRUE'}

keyval[7] = {'': 'PASS',
             'milliseconds_1': '3',
             'milliseconds_8': '6',
             'ms_1': '1',
             'total': '7',
             'test{1}': '1',
             'test{2}': '6',
             'bool': 'TRUE'}

keyval[8] = {'': 'PASS',
             'milliseconds_1': '3',
             'milliseconds_8': '6',
             'ms_1': '3.3',
             'total': '7',
             'test{1}': '2',
             'test{2}': '8',
             'bool': 'TRUE'}
