#!/usr/bin/env python2
#
# Copyright 2014 Google Inc. All Rights Reserved.
"""Unittest for crosperf."""
from __future__ import print_function
import argparse
import StringIO
import unittest
import crosperf
import settings_factory
import experiment_file
EXPERIMENT_FILE_1 = """
board: x86-alex
remote: chromeos-alex3
perf_args: record -a -e cycles
benchmark: PageCycler {
iterations: 3
}
image1 {
chromeos_image: /usr/local/google/cros_image1.bin
}
image2 {
remote: chromeos-lumpy1
chromeos_image: /usr/local/google/cros_image2.bin
}
"""
class CrosperfTest(unittest.TestCase):
"""Crosperf test class."""
def setUp(self):
input_file = StringIO.StringIO(EXPERIMENT_FILE_1)
self.exp_file = experiment_file.ExperimentFile(input_file)
def test_convert_options_to_settings(self):
parser = argparse.ArgumentParser()
parser.add_argument('-l',
'--log_dir',
dest='log_dir',
default='',
help='The log_dir, default is under '
'<crosperf_logs>/logs')
crosperf.SetupParserOptions(parser)
argv = ['crosperf/crosperf.py', 'temp.exp', '--rerun=True']
options, _ = parser.parse_known_args(argv)
settings = crosperf.ConvertOptionsToSettings(options)
self.assertIsNotNone(settings)
self.assertIsInstance(settings, settings_factory.GlobalSettings)
self.assertEqual(len(settings.fields), 25)
self.assertTrue(settings.GetField('rerun'))
argv = ['crosperf/crosperf.py', 'temp.exp']
options, _ = parser.parse_known_args(argv)
settings = crosperf.ConvertOptionsToSettings(options)
self.assertFalse(settings.GetField('rerun'))
if __name__ == '__main__':
unittest.main()