blob: 3af3507f60405f77f613c346cb4377f0ed428e59 [file] [log] [blame]
#!/usr/bin/python
#
# Copyright 2014 Google Inc. All Rights Reserved.
"""Unittest for crosperf."""
import atexit
import os
import optparse
import StringIO
import mock
import unittest
import crosperf
import settings_factory
import experiment_file
import experiment_runner
from help import Help
from utils import command_executer
from utils import logger
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):
def setUp(self):
input_file = StringIO.StringIO(EXPERIMENT_FILE_1)
self.exp_file = experiment_file.ExperimentFile(input_file)
def test_setup_parser_options(self):
parser = optparse.OptionParser(usage=Help().GetUsage(),
description=Help().GetHelp(),
formatter=crosperf.MyIndentedHelpFormatter(),
version="%prog 3.0")
parser.add_option("-l", "--log_dir",
dest="log_dir",
default="",
help="The log_dir, default is under <crosperf_logs>/logs")
options_before = parser._get_all_options()
self.assertEqual(len(options_before), 3)
crosperf.SetupParserOptions(parser)
options_after = parser._get_all_options()
self.assertEqual(len(options_after), 26)
def test_convert_options_to_settings(self):
parser = optparse.OptionParser(usage=Help().GetUsage(),
description=Help().GetHelp(),
formatter=crosperf.MyIndentedHelpFormatter(),
version="%prog 3.0")
parser.add_option("-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, args = parser.parse_args(argv)
settings = crosperf.ConvertOptionsToSettings(options)
self.assertIsNotNone(settings)
self.assertIsInstance(settings, settings_factory.GlobalSettings)
self.assertEqual(len(settings.fields), 22)
self.assertTrue(settings.GetField('rerun'))
argv = ['crosperf/crosperf.py', 'temp.exp']
options, args = parser.parse_args(argv)
settings = crosperf.ConvertOptionsToSettings(options)
self.assertFalse(settings.GetField('rerun'))
if __name__ == "__main__":
unittest.main()