experiment_factory_unittest.py revision 04dc5dc8547dbfbe524cf35ac39537346ad749bb
1#!/usr/bin/python
2
3# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7import StringIO
8import unittest
9
10from utils.file_utils import FileUtils
11
12from experiment_factory import ExperimentFactory
13from experiment_file import ExperimentFile
14import test_flag
15
16EXPERIMENT_FILE_1 = """
17  board: x86-alex
18  remote: chromeos-alex3
19
20  benchmark: PageCycler {
21    iterations: 3
22  }
23
24  image1 {
25    chromeos_image: /usr/local/google/cros_image1.bin
26  }
27
28  image2 {
29    chromeos_image: /usr/local/google/cros_image2.bin
30  }
31  """
32
33
34class ExperimentFactoryTest(unittest.TestCase):
35  def testLoadExperimentFile1(self):
36    experiment_file = ExperimentFile(StringIO.StringIO(EXPERIMENT_FILE_1))
37    experiment = ExperimentFactory().GetExperiment(experiment_file,
38                                                   working_directory="",
39                                                   log_dir="")
40    self.assertEqual(experiment.remote, ["chromeos-alex3"])
41
42    self.assertEqual(len(experiment.benchmarks), 1)
43    self.assertEqual(experiment.benchmarks[0].name, "PageCycler")
44    self.assertEqual(experiment.benchmarks[0].test_name, "PageCycler")
45    self.assertEqual(experiment.benchmarks[0].iterations, 3)
46
47    self.assertEqual(len(experiment.labels), 2)
48    self.assertEqual(experiment.labels[0].chromeos_image,
49                     "/usr/local/google/cros_image1.bin")
50    self.assertEqual(experiment.labels[0].board,
51                     "x86-alex")
52
53
54if __name__ == "__main__":
55  FileUtils.Configure(True)
56  test_flag.SetTestMode(True)
57  unittest.main()
58