1#!/usr/bin/env 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 17EXPERIMENT_FILE_1 = """ 18 board: x86-alex 19 remote: chromeos-alex3 20 perf_args: record -a -e cycles 21 benchmark: PageCycler { 22 iterations: 3 23 } 24 25 image1 { 26 chromeos_image: /usr/local/google/cros_image1.bin 27 } 28 29 image2 { 30 remote: chromeos-lumpy1 31 chromeos_image: /usr/local/google/cros_image2.bin 32 } 33 """ 34 35 36class CrosperfTest(unittest.TestCase): 37 """Crosperf test class.""" 38 39 def setUp(self): 40 input_file = StringIO.StringIO(EXPERIMENT_FILE_1) 41 self.exp_file = experiment_file.ExperimentFile(input_file) 42 43 def test_convert_options_to_settings(self): 44 parser = argparse.ArgumentParser() 45 parser.add_argument( 46 '-l', 47 '--log_dir', 48 dest='log_dir', 49 default='', 50 help='The log_dir, default is under ' 51 '<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