#!/usr/bin/env python2 # -*- coding: utf-8 -*- # # Copyright (c) 2014 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """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 ' '/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), 28) 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()