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))