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