1# Copyright 2015 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import common
6from autotest_lib.client.bin import utils
7from autotest_lib.client.common_lib import error
8from autotest_lib.server import test
9
10
11_DEFAULT_MIN_VERSION = '3.10'
12
13
14class brillo_KernelVersionTest(test.test):
15    """Verify that a Brillo device runs a minimum kernel version."""
16    version = 1
17
18    def run_once(self, host=None, min_version=_DEFAULT_MIN_VERSION):
19        """Runs the test.
20
21        @param host: A host object representing the DUT.
22        @param min_version: Minimum kernel version required.
23
24        @raise TestError: Something went wrong while trying to execute the test.
25        @raise TestFail: The test failed.
26        """
27        try:
28            result = host.run_output('uname -r').strip()
29        except error.AutoservRunError:
30            raise error.TestFail('Failed to check kernel version')
31
32        if utils.compare_versions(result, min_version) < 0:
33            raise error.TestFail(
34                    'Device kernel version (%s) older than required (%s)' %
35                    (result, min_version))
36