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