crosperf_unittest.py revision 4f07bbf3bc13b73d42c94608a9707d6c6f890015
1#!/usr/bin/python2
2#
3# Copyright 2014 Google Inc. All Rights Reserved.
4"""Unittest for crosperf."""
5
6from __future__ import print_function
7
8import argparse
9import StringIO
10
11import unittest
12
13import crosperf
14import settings_factory
15import experiment_file
16
17from help import Help
18
19EXPERIMENT_FILE_1 = """
20  board: x86-alex
21  remote: chromeos-alex3
22  perf_args: record -a -e cycles
23  benchmark: PageCycler {
24    iterations: 3
25  }
26
27  image1 {
28    chromeos_image: /usr/local/google/cros_image1.bin
29  }
30
31  image2 {
32    remote: chromeos-lumpy1
33    chromeos_image: /usr/local/google/cros_image2.bin
34  }
35  """
36
37
38class CrosperfTest(unittest.TestCase):
39  """Crosperf test class."""
40
41  def setUp(self):
42    input_file = StringIO.StringIO(EXPERIMENT_FILE_1)
43    self.exp_file = experiment_file.ExperimentFile(input_file)
44
45  def test_convert_options_to_settings(self):
46    parser = argparse.ArgumentParser()
47    parser.add_argument('-l',
48                        '--log_dir',
49                        dest='log_dir',
50                        default='',
51                        help='The log_dir, default is under <crosperf_logs>/logs')
52    crosperf.SetupParserOptions(parser)
53    argv = ['crosperf/crosperf.py', 'temp.exp', '--rerun=True']
54    options, _ = parser.parse_known_args(argv)
55    settings = crosperf.ConvertOptionsToSettings(options)
56    self.assertIsNotNone(settings)
57    self.assertIsInstance(settings, settings_factory.GlobalSettings)
58    self.assertEqual(len(settings.fields), 25)
59    self.assertTrue(settings.GetField('rerun'))
60    argv = ['crosperf/crosperf.py', 'temp.exp']
61    options, _ = parser.parse_known_args(argv)
62    settings = crosperf.ConvertOptionsToSettings(options)
63    self.assertFalse(settings.GetField('rerun'))
64
65
66if __name__ == '__main__':
67  unittest.main()
68