aboutsummaryrefslogtreecommitdiff
path: root/crosperf/crosperf_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'crosperf/crosperf_unittest.py')
-rwxr-xr-xcrosperf/crosperf_unittest.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/crosperf/crosperf_unittest.py b/crosperf/crosperf_unittest.py
new file mode 100755
index 00000000..4a468967
--- /dev/null
+++ b/crosperf/crosperf_unittest.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc. All Rights Reserved.
+"""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 '
+ '<crosperf_logs>/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), 25)
+ 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()