aboutsummaryrefslogtreecommitdiff
path: root/crosperf/crosperf_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'crosperf/crosperf_unittest.py')
-rw-r--r--crosperf/crosperf_unittest.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/crosperf/crosperf_unittest.py b/crosperf/crosperf_unittest.py
new file mode 100644
index 00000000..9fc504a2
--- /dev/null
+++ b/crosperf/crosperf_unittest.py
@@ -0,0 +1,90 @@
+#!/usr/bin/python
+#
+# Copyright 2014 Google Inc. All Rights Reserved.
+
+"""Unittest for crosperf."""
+import atexit
+import os
+import optparse
+import StringIO
+
+
+import mock
+import unittest
+
+import crosperf
+import settings_factory
+import experiment_file
+import experiment_runner
+
+from help import Help
+
+from utils import command_executer
+from utils import logger
+
+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):
+
+ def setUp(self):
+ input_file = StringIO.StringIO(EXPERIMENT_FILE_1)
+ self.exp_file = experiment_file.ExperimentFile(input_file)
+
+ def test_setup_parser_options(self):
+
+ parser = optparse.OptionParser(usage=Help().GetUsage(),
+ description=Help().GetHelp(),
+ formatter=crosperf.MyIndentedHelpFormatter(),
+ version="%prog 3.0")
+ parser.add_option("-l", "--log_dir",
+ dest="log_dir",
+ default="",
+ help="The log_dir, default is under <crosperf_logs>/logs")
+ options_before = parser._get_all_options()
+ self.assertEqual(len(options_before), 3)
+ crosperf.SetupParserOptions(parser)
+ options_after = parser._get_all_options()
+ self.assertEqual(len(options_after), 25)
+
+
+ def test_convert_options_to_settings(self):
+ parser = optparse.OptionParser(usage=Help().GetUsage(),
+ description=Help().GetHelp(),
+ formatter=crosperf.MyIndentedHelpFormatter(),
+ version="%prog 3.0")
+ parser.add_option("-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, args = parser.parse_args(argv)
+ settings = crosperf.ConvertOptionsToSettings(options)
+ self.assertIsNotNone(settings)
+ self.assertIsInstance(settings, settings_factory.GlobalSettings)
+ self.assertEqual(len(settings.fields), 21)
+ self.assertTrue(settings.GetField('rerun'))
+ argv = ['crosperf/crosperf.py', 'temp.exp']
+ options, args = parser.parse_args(argv)
+ settings = crosperf.ConvertOptionsToSettings(options)
+ self.assertFalse(settings.GetField('rerun'))
+
+
+if __name__ == "__main__":
+ unittest.main()