xref: /aosp_15_r20/external/toolchain-utils/crosperf/settings_factory_unittest.py (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3#
4# Copyright 2017 The ChromiumOS Authors
5# Use of this source code is governed by a BSD-style license that can be
6# found in the LICENSE file.
7
8"""Unittest for crosperf."""
9
10
11import unittest
12
13import settings_factory
14
15
16class BenchmarkSettingsTest(unittest.TestCase):
17    """Class to test benchmark settings."""
18
19    def test_init(self):
20        res = settings_factory.BenchmarkSettings("b_settings")
21        self.assertIsNotNone(res)
22        self.assertEqual(len(res.fields), 7)
23        self.assertEqual(res.GetField("test_name"), "")
24        self.assertEqual(res.GetField("test_args"), "")
25        self.assertEqual(res.GetField("iterations"), 0)
26        self.assertEqual(res.GetField("suite"), "test_that")
27
28
29class LabelSettingsTest(unittest.TestCase):
30    """Class to test label settings."""
31
32    def test_init(self):
33        res = settings_factory.LabelSettings("l_settings")
34        self.assertIsNotNone(res)
35        self.assertEqual(len(res.fields), 10)
36        self.assertEqual(res.GetField("chromeos_image"), "")
37        self.assertEqual(res.GetField("autotest_path"), "")
38        self.assertEqual(res.GetField("chromeos_root"), "")
39        self.assertEqual(res.GetField("remote"), None)
40        self.assertEqual(res.GetField("image_args"), "")
41        self.assertEqual(res.GetField("cache_dir"), "")
42        self.assertEqual(res.GetField("chrome_src"), "")
43        self.assertEqual(res.GetField("build"), "")
44
45
46class GlobalSettingsTest(unittest.TestCase):
47    """Class to test global settings."""
48
49    def test_init(self):
50        res = settings_factory.GlobalSettings("g_settings")
51        self.assertIsNotNone(res)
52        self.assertEqual(len(res.fields), 42)
53        self.assertEqual(res.GetField("name"), "")
54        self.assertEqual(res.GetField("board"), "")
55        self.assertEqual(res.GetField("crosfleet"), False)
56        self.assertEqual(res.GetField("remote"), None)
57        self.assertEqual(res.GetField("rerun_if_failed"), False)
58        self.assertEqual(res.GetField("rm_chroot_tmp"), False)
59        self.assertEqual(res.GetField("email"), None)
60        self.assertEqual(res.GetField("rerun"), False)
61        self.assertEqual(res.GetField("ignore_cache"), False)
62        self.assertEqual(res.GetField("same_specs"), True)
63        self.assertEqual(res.GetField("same_machine"), False)
64        self.assertEqual(res.GetField("iterations"), 0)
65        self.assertEqual(res.GetField("chromeos_root"), "")
66        self.assertEqual(res.GetField("logging_level"), "average")
67        self.assertEqual(res.GetField("acquire_timeout"), 0)
68        self.assertEqual(res.GetField("perf_args"), "")
69        self.assertEqual(res.GetField("download_debug"), True)
70        self.assertEqual(res.GetField("cache_dir"), "")
71        self.assertEqual(res.GetField("cache_only"), False)
72        self.assertEqual(res.GetField("no_email"), False)
73        self.assertEqual(res.GetField("show_all_results"), False)
74        self.assertEqual(res.GetField("share_cache"), "")
75        self.assertEqual(res.GetField("results_dir"), "")
76        self.assertEqual(res.GetField("compress_results"), True)
77        self.assertEqual(res.GetField("chrome_src"), "")
78        self.assertEqual(res.GetField("cwp_dso"), "")
79        self.assertEqual(res.GetField("enable_aslr"), False)
80        self.assertEqual(res.GetField("ignore_min_max"), False)
81        self.assertEqual(res.GetField("intel_pstate"), "no_hwp")
82        self.assertEqual(res.GetField("turbostat"), True)
83        self.assertEqual(res.GetField("top_interval"), 1)
84        self.assertEqual(res.GetField("cooldown_time"), 10)
85        self.assertEqual(res.GetField("cooldown_temp"), 40)
86        self.assertEqual(res.GetField("governor"), "performance")
87        self.assertEqual(res.GetField("cpu_usage"), "all")
88        self.assertEqual(res.GetField("cpu_freq_pct"), 95)
89
90
91class SettingsFactoryTest(unittest.TestCase):
92    """Class to test SettingsFactory."""
93
94    def test_get_settings(self):
95        self.assertRaises(
96            Exception,
97            settings_factory.SettingsFactory.GetSettings,
98            "global",
99            "bad_type",
100        )
101
102        l_settings = settings_factory.SettingsFactory().GetSettings(
103            "label", "label"
104        )
105        self.assertIsInstance(l_settings, settings_factory.LabelSettings)
106        self.assertEqual(len(l_settings.fields), 10)
107
108        b_settings = settings_factory.SettingsFactory().GetSettings(
109            "benchmark", "benchmark"
110        )
111        self.assertIsInstance(b_settings, settings_factory.BenchmarkSettings)
112        self.assertEqual(len(b_settings.fields), 7)
113
114        g_settings = settings_factory.SettingsFactory().GetSettings(
115            "global", "global"
116        )
117        self.assertIsInstance(g_settings, settings_factory.GlobalSettings)
118        self.assertEqual(len(g_settings.fields), 42)
119
120
121if __name__ == "__main__":
122    unittest.main()
123