xref: /aosp_15_r20/external/autotest/client/bin/kernel_versions_unittest.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1*9c5db199SXin Li#!/usr/bin/python3
2*9c5db199SXin Lifrom __future__ import absolute_import
3*9c5db199SXin Lifrom __future__ import division
4*9c5db199SXin Lifrom __future__ import print_function
5*9c5db199SXin Liimport unittest
6*9c5db199SXin Liimport common
7*9c5db199SXin Lifrom autotest_lib.client.bin import kernel_versions
8*9c5db199SXin Lifrom six.moves import range
9*9c5db199SXin Li
10*9c5db199SXin Li
11*9c5db199SXin Liclass kernel_versions_test(unittest.TestCase):
12*9c5db199SXin Li
13*9c5db199SXin Li    def increases(self, kernels):
14*9c5db199SXin Li        for i in range(len(kernels)-1):
15*9c5db199SXin Li            k1 = kernels[i]
16*9c5db199SXin Li            k2 = kernels[i+1]
17*9c5db199SXin Li            ek1 = kernel_versions.version_encode(k1)
18*9c5db199SXin Li            ek2 = kernel_versions.version_encode(k2)
19*9c5db199SXin Li            self.assertTrue(ek1 < ek2,
20*9c5db199SXin Li                    '%s (-> %s)  should sort <  %s (-> %s)'
21*9c5db199SXin Li                    % (k1, ek1, k2, ek2) )
22*9c5db199SXin Li
23*9c5db199SXin Li
24*9c5db199SXin Li    def test_version_encode(self):
25*9c5db199SXin Li        series1 = [
26*9c5db199SXin Li                '2.6',
27*9c5db199SXin Li                '2.6.0',
28*9c5db199SXin Li                '2.6.1-rc1',
29*9c5db199SXin Li                '2.6.1-rc1_fix',
30*9c5db199SXin Li                '2.6.1-rc1_patch',
31*9c5db199SXin Li                '2.6.1-rc9',
32*9c5db199SXin Li                '2.6.1-rc9-mm1',
33*9c5db199SXin Li                '2.6.1-rc9-mm2',
34*9c5db199SXin Li                '2.6.1-rc10',
35*9c5db199SXin Li                '2.6.1-rc98',
36*9c5db199SXin Li                '2.6.1',
37*9c5db199SXin Li                '2.6.1_patch',
38*9c5db199SXin Li                '2.6.9',
39*9c5db199SXin Li                '2.6.10',
40*9c5db199SXin Li                '2.6.99',
41*9c5db199SXin Li                '2.7',
42*9c5db199SXin Li                '2.9.99',
43*9c5db199SXin Li                '2.10.0',
44*9c5db199SXin Li                '99.99.99',
45*9c5db199SXin Li                'UNKNOWN',
46*9c5db199SXin Li                ]
47*9c5db199SXin Li        self.increases(series1)
48*9c5db199SXin Li        self.increases(['pathX'+k for k in series1])
49*9c5db199SXin Li        series2 = [
50*9c5db199SXin Li                '2.6.18-smp-220',
51*9c5db199SXin Li                '2.6.18-smp-220.0',
52*9c5db199SXin Li                '2.6.18-smp-220.1_rc1',
53*9c5db199SXin Li                '2.6.18-smp-220.1_rc1_fix',
54*9c5db199SXin Li                '2.6.18-smp-220.1_rc1_patch',
55*9c5db199SXin Li                '2.6.18-smp-220.1_rc9',
56*9c5db199SXin Li                '2.6.18-smp-220.1_rc9_mm1',
57*9c5db199SXin Li                '2.6.18-smp-220.1_rc9_mm2',
58*9c5db199SXin Li                '2.6.18-smp-220.1_rc10',
59*9c5db199SXin Li                '2.6.18-smp-220.1_rc98',
60*9c5db199SXin Li                '2.6.18-smp-220.1',
61*9c5db199SXin Li                '2.6.18-smp-220.1_patch',
62*9c5db199SXin Li                '2.6.18-smp-220.9',
63*9c5db199SXin Li                '2.6.18-smp-220.10',
64*9c5db199SXin Li                '2.6.18-smp-220.99',
65*9c5db199SXin Li                '2.6.18-smp-221',
66*9c5db199SXin Li                'UNKNOWN',
67*9c5db199SXin Li                ]
68*9c5db199SXin Li        self.increases(series2)
69*9c5db199SXin Li        self.increases(['pathX'+k for k in series2])
70*9c5db199SXin Li
71*9c5db199SXin Li
72*9c5db199SXin Li    releases    = ['2.6.1'      , '2.6.18-smp-220.0'   ]
73*9c5db199SXin Li    candidates  = ['2.6.1-rc1'  , '2.6.18-smp-220.0_rc1']
74*9c5db199SXin Li    experiments = ['2.6.1-patch', '2.6.1-rc1_patch', '2.6.18-smp-220.0_patch',
75*9c5db199SXin Li                   'UNKNOWN']
76*9c5db199SXin Li
77*9c5db199SXin Li    def test_is_released_kernel(self):
78*9c5db199SXin Li        for v in self.releases:
79*9c5db199SXin Li            self.assertTrue(kernel_versions.is_released_kernel(v))
80*9c5db199SXin Li        for v in self.candidates + self.experiments:
81*9c5db199SXin Li            self.assertFalse(kernel_versions.is_released_kernel(v))
82*9c5db199SXin Li
83*9c5db199SXin Li
84*9c5db199SXin Li    def test_is_release_candidate(self):
85*9c5db199SXin Li        for v in self.releases + self.candidates:
86*9c5db199SXin Li            self.assertTrue(kernel_versions.is_release_candidate(v))
87*9c5db199SXin Li        for v in self.experiments:
88*9c5db199SXin Li            self.assertFalse(kernel_versions.is_release_candidate(v))
89*9c5db199SXin Li
90*9c5db199SXin Li
91*9c5db199SXin Liif  __name__ == "__main__":
92*9c5db199SXin Li    unittest.main()
93