AUTHOR = "Autotest Team <autotest@test.kernel.org>"
TIME = "MEDIUM"
NAME = "Sample - Kernel tests"
TEST_TYPE = "client"
TEST_CLASS = "Kernel"
TEST_CATEGORY = "Functional"

DOC = """
Builds a test kernel, then runs a series of tests on it. This control file shows
features such as:

 * The step engine - autotest mechanism of executing jobs in steps, where you
   can interrupt the flow of execution with client reboots, in order to boot
   newly built kernels
 * Downloading, configuring, patching, building and booting a kernel straight
   from kernel.org.
 * Kernel expand - provide a string such as '2.6.36-git13' and have autotest to
   expand that and download the proper source tarballs and patches
   automatically.
 * Local kernel.org mirror - Alternate kernel.org mirror that you can set on
   your control file.
"""

def step_init():
    """
    Build a kernel from kernel.org. This step will be executed, the machine
    will be rebooted and then we'll proceed with step_tests.
    """
    job.next_step([step_tests])
    # If you have a local/different kernel.org mirror, you can set it by
    # uncommenting the below and set the URL properly.
    #job.config_set('local_mirror', 'http://foo/bar')
    testkernel = job.kernel('2.6.35')
    # If you want to see kernel expansion in action, comment the above and
    # uncomment the below. Keep in mind that after some months, it's expected
    # that some of the patches might not exist, so you might want to edit
    # this to satisfy your needs.
    #testkernel = job.kernel('2.6.36-git13')
    # You can provide a path to an uncompressed kernel source as well
    #testkernel = job.kernel('/path/to/kernel-source')
    testkernel.patch('http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.35.7.bz2')
    # This is the default config that can be retrieved on gitweb
    testkernel.config('http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=blob_plain;f=arch/x86/configs/x86_64_defconfig;h=6c86acd847a4e28c09d951b34d488b13d44df3c7;hb=ea8a52f9f4bcc3420c38ae07f8378a2f18443970')
    testkernel.build()
    testkernel.boot()


def step_tests():
    """
    Run a series of autotest tests on this machine.
    """
    job.run_test('aiostress')
    job.run_test('bonnie')
    job.run_test('dbench')
    job.run_test('fio')
    job.run_test('fsx')
    job.run_test('interbench')
    job.run_test('isic')
    job.run_test('kernbench', iterations=2, threads=5)
    job.run_test('lmbench')
    job.run_test('ltp')
    job.run_test('reaim')
    job.run_test('sparse')
    job.run_test('stress')
    job.run_test('tbench')
    job.run_test('unixbench')
