mirror of
https://git.yoctoproject.org/poky
synced 2026-03-19 13:49:41 +01:00
selftest/devtool: Add modify_localfiles_only test checking symlink path
If recipe uses only file:// fetcher devtool unpacks sources under oe-local-files/ and adds symlink in source root directory. We need to verify if the symlink in subdirectory has correct path. See [YOCTO #13738] for details. (From OE-Core rev: 044c90d152bfd1b2a23272df39327ba4cd862dff) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
065a23550e
commit
9fa87066bb
@@ -697,7 +697,44 @@ class DevtoolModifyTests(DevtoolBase):
|
||||
|
||||
self.assertTrue(bbclassextended, 'None of these recipes are BBCLASSEXTENDed to native - need to adjust testrecipes list: %s' % ', '.join(testrecipes))
|
||||
self.assertTrue(inheritnative, 'None of these recipes do "inherit native" - need to adjust testrecipes list: %s' % ', '.join(testrecipes))
|
||||
def test_devtool_modify_localfiles_only(self):
|
||||
# Check preconditions
|
||||
testrecipe = 'base-files'
|
||||
src_uri = (get_bb_var('SRC_URI', testrecipe) or '').split()
|
||||
foundlocalonly = False
|
||||
correct_symlink = False
|
||||
for item in src_uri:
|
||||
if item.startswith('file://'):
|
||||
if '.patch' not in item:
|
||||
foundlocalonly = True
|
||||
else:
|
||||
foundlocalonly = False
|
||||
break
|
||||
self.assertTrue(foundlocalonly, 'This test expects the %s recipe to fetch local files only and it seems that it no longer does' % testrecipe)
|
||||
# Clean up anything in the workdir/sysroot/sstate cache
|
||||
bitbake('%s -c cleansstate' % testrecipe)
|
||||
# Try modifying a recipe
|
||||
tempdir = tempfile.mkdtemp(prefix='devtoolqa')
|
||||
self.track_for_cleanup(tempdir)
|
||||
self.track_for_cleanup(self.workspacedir)
|
||||
self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe)
|
||||
self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
|
||||
result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir))
|
||||
srcfile = os.path.join(tempdir, 'oe-local-files/share/dot.bashrc')
|
||||
srclink = os.path.join(tempdir, 'share/dot.bashrc')
|
||||
self.assertExists(srcfile, 'Extracted source could not be found')
|
||||
if os.path.islink(srclink) and os.path.exists(srclink) and os.path.samefile(srcfile, srclink):
|
||||
correct_symlink = True
|
||||
self.assertTrue(correct_symlink, 'Source symlink to oe-local-files is broken')
|
||||
|
||||
matches = glob.glob(os.path.join(self.workspacedir, 'appends', '%s_*.bbappend' % testrecipe))
|
||||
self.assertTrue(matches, 'bbappend not created')
|
||||
# Test devtool status
|
||||
result = runCmd('devtool status')
|
||||
self.assertIn(testrecipe, result.output)
|
||||
self.assertIn(tempdir, result.output)
|
||||
# Try building
|
||||
bitbake(testrecipe)
|
||||
|
||||
def test_devtool_modify_git(self):
|
||||
# Check preconditions
|
||||
|
||||
Reference in New Issue
Block a user