mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00

Kernels which use tools/objtool can now fail when building external modules due to objtool being missing, the generated files can also cause problems for kernel-devsrc. Ensure objtool is generated in make-mod-scripts by also calling "make prepare". For devsrc, delete the generated binaries since they'd be native binaries and unsuitable for the target. The oeqa kernel module tests also need to have the additional "make prepare" step added. (From OE-Core rev: 52fd2993784b4218f5df4f343e7da45d964df305) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import os
|
|
|
|
from oeqa.runtime.case import OERuntimeTestCase
|
|
from oeqa.core.decorator.depends import OETestDepends
|
|
from oeqa.core.decorator.oeid import OETestID
|
|
from oeqa.core.decorator.data import skipIfNotFeature
|
|
|
|
class KernelModuleTest(OERuntimeTestCase):
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
src = os.path.join(cls.tc.runtime_files_dir, 'hellomod.c')
|
|
dst = '/tmp/hellomod.c'
|
|
cls.tc.target.copyTo(src, dst)
|
|
|
|
src = os.path.join(cls.tc.runtime_files_dir, 'hellomod_makefile')
|
|
dst = '/tmp/Makefile'
|
|
cls.tc.target.copyTo(src, dst)
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
files = '/tmp/Makefile /tmp/hellomod.c'
|
|
cls.tc.target.run('rm %s' % files)
|
|
|
|
@OETestID(1541)
|
|
@skipIfNotFeature('tools-sdk',
|
|
'Test requires tools-sdk to be in IMAGE_FEATURES')
|
|
@OETestDepends(['gcc.GccCompileTest.test_gcc_compile'])
|
|
def test_kernel_module(self):
|
|
cmds = [
|
|
'cd /usr/src/kernel && make scripts prepare',
|
|
'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]))
|