#!/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 /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 /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()