summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/runtime/kernelmodule.py
blob: cbc5742effa8a96431dc5168dda95e3f233e67a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import unittest
import os
from oeqa.oetest import oeRuntimeTest, skipModule
from oeqa.utils.decorators import *

def setUpModule():
    if not oeRuntimeTest.hasFeature("tools-sdk"):
        skipModule("Image doesn't have tools-sdk in IMAGE_FEATURES")


class KernelModuleTest(oeRuntimeTest):

    def setUp(self):
        self.target.copy_to(os.path.join(oeRuntimeTest.tc.filesdir, "hellomod.c"), "/tmp/hellomod.c")
        self.target.copy_to(os.path.join(oeRuntimeTest.tc.filesdir, "hellomod_makefile"), "/tmp/Makefile")

    @skipUnlessPassed('test_ssh')
    @skipUnlessPassed('test_gcc_compile')
    def test_kernel_module(self):
        cmds = [
            'cd /usr/src/kernel && make scripts',
            'cd /tmp && make',
            'cd /tmp && insmod hellomod.ko',
            'lsmod | grep hellomod',
            'dmesg | grep Hello',
            'rmmod hellomod', 'dmesg | grep "Cleaning up hellomod"'
            ]
        for cmd in cmds:
            (status, output) = self.target.run(cmd, 900)
            self.assertEqual(status, 0, msg="\n".join([cmd, output]))

    def tearDown(self):
        self.target.run('rm -f /tmp/Makefile /tmp/hellomod.c')