diff options
Diffstat (limited to 'crosperf/crosperf_unittest.py')
-rw-r--r-- | crosperf/crosperf_unittest.py | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/crosperf/crosperf_unittest.py b/crosperf/crosperf_unittest.py new file mode 100644 index 00000000..9fc504a2 --- /dev/null +++ b/crosperf/crosperf_unittest.py @@ -0,0 +1,90 @@ +#!/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), 25) + + + 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), 21) + 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() |