xref: /aosp_15_r20/external/toolchain-utils/cros_utils/misc_test.py (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1*760c253cSXin Li#!/usr/bin/env python3
2*760c253cSXin Li# -*- coding: utf-8 -*-
3*760c253cSXin Li# Copyright 2019 The ChromiumOS Authors
4*760c253cSXin Li# Use of this source code is governed by a BSD-style license that can be
5*760c253cSXin Li# found in the LICENSE file.
6*760c253cSXin Li
7*760c253cSXin Li"""Tests for misc."""
8*760c253cSXin Li
9*760c253cSXin Li
10*760c253cSXin Li__author__ = "[email protected] (Ahmad Sharif)"
11*760c253cSXin Li
12*760c253cSXin Li# System modules
13*760c253cSXin Liimport unittest
14*760c253cSXin Li
15*760c253cSXin Li# Local modules
16*760c253cSXin Lifrom cros_utils import misc
17*760c253cSXin Li
18*760c253cSXin Li
19*760c253cSXin Liclass UtilsTest(unittest.TestCase):
20*760c253cSXin Li    """Tests for misc."""
21*760c253cSXin Li
22*760c253cSXin Li    def testGetFilenameFromString(self):
23*760c253cSXin Li        string = 'a /b=c"d^$?\\'
24*760c253cSXin Li        filename = misc.GetFilenameFromString(string)
25*760c253cSXin Li        self.assertEqual(filename, "a___bcd")
26*760c253cSXin Li
27*760c253cSXin Li    def testPrependMergeEnv(self):
28*760c253cSXin Li        var = "USE"
29*760c253cSXin Li        use_flags = "hello 123"
30*760c253cSXin Li        added_use_flags = "bla bla"
31*760c253cSXin Li        env_string = "%s=%r" % (var, use_flags)
32*760c253cSXin Li        new_env_string = misc.MergeEnvStringWithDict(
33*760c253cSXin Li            env_string, {var: added_use_flags}
34*760c253cSXin Li        )
35*760c253cSXin Li        expected_new_env = "%s=%r" % (
36*760c253cSXin Li            var,
37*760c253cSXin Li            " ".join([added_use_flags, use_flags]),
38*760c253cSXin Li        )
39*760c253cSXin Li        self.assertEqual(
40*760c253cSXin Li            new_env_string, " ".join([env_string, expected_new_env])
41*760c253cSXin Li        )
42*760c253cSXin Li
43*760c253cSXin Li    def testGetChromeOSVersionFromLSBVersion(self):
44*760c253cSXin Li        versions_dict = {"2630.0.0": "22", "2030.0.0": "19"}
45*760c253cSXin Li        f = misc.GetChromeOSVersionFromLSBVersion
46*760c253cSXin Li        for k, v in versions_dict.items():
47*760c253cSXin Li            self.assertEqual(f(k), "R%s-%s" % (v, k))
48*760c253cSXin Li
49*760c253cSXin Li    def testPostpendMergeEnv(self):
50*760c253cSXin Li        var = "USE"
51*760c253cSXin Li        use_flags = "hello 123"
52*760c253cSXin Li        added_use_flags = "bla bla"
53*760c253cSXin Li        env_string = "%s=%r" % (var, use_flags)
54*760c253cSXin Li        new_env_string = misc.MergeEnvStringWithDict(
55*760c253cSXin Li            env_string, {var: added_use_flags}, False
56*760c253cSXin Li        )
57*760c253cSXin Li        expected_new_env = "%s=%r" % (
58*760c253cSXin Li            var,
59*760c253cSXin Li            " ".join([use_flags, added_use_flags]),
60*760c253cSXin Li        )
61*760c253cSXin Li        self.assertEqual(
62*760c253cSXin Li            new_env_string, " ".join([env_string, expected_new_env])
63*760c253cSXin Li        )
64*760c253cSXin Li
65*760c253cSXin Li
66*760c253cSXin Liif __name__ == "__main__":
67*760c253cSXin Li    unittest.main()
68