blob: 17c98baf143d41d8b823f345acafcc997de3795b [file] [log] [blame]
#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
import os
from oeqa.selftest.case import OESelftestTestCase
from oeqa.utils.commands import bitbake
class ImageTypeDepTests(OESelftestTestCase):
# Verify that when specifying a IMAGE_TYPEDEP: of the form "foo.bar" that
# the conversion type bar gets added as a dep as well
def test_conversion_typedep_added(self):
self.write_recipeinc('emptytest', """
# Try to empty out the default dependency list
PACKAGE_INSTALL = ""
DISTRO_EXTRA_RDEPENDS=""
LICENSE = "MIT"
IMAGE_FSTYPES = "testfstype"
IMAGE_TYPES_MASKED += "testfstype"
IMAGE_TYPEDEP:testfstype = "tar.bz2"
inherit image
""")
# First get the dependency that should exist for bz2, it will look
# like CONVERSION_DEPENDS_bz2="somedep"
result = bitbake('-e emptytest')
dep = None
for line in result.output.split('\n'):
if line.startswith('CONVERSION_DEPENDS_bz2'):
dep = line.split('=')[1].strip('"')
break
self.assertIsNotNone(dep, "CONVERSION_DEPENDS_bz2 dependency not found in bitbake -e output")
# Now get the dependency task list and check for the expected task
# dependency
bitbake('-g emptytest')
taskdependsfile = os.path.join(self.builddir, 'task-depends.dot')
dep = dep + ".do_populate_sysroot"
depfound = False
expectedline = '"emptytest.do_rootfs" -> "{}"'.format(dep)
with open(taskdependsfile, "r") as f:
for line in f:
if line.strip() == expectedline:
depfound = True
break
if not depfound:
raise AssertionError("\"{}\" not found".format(expectedline))