class DevtoolTests(DevtoolBase):
+ @testcase(1158)
def test_create_workspace(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
self.assertNotIn(tempdir, result.output)
self.assertIn(workspacedir, result.output)
+ @testcase(1159)
def test_devtool_add(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
bindir = bindir[1:]
self.assertTrue(os.path.isfile(os.path.join(installdir, bindir, 'pv')), 'pv binary not found in D')
+ @testcase(1162)
def test_devtool_add_library(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
self.assertFalse(matches, 'Stamp files exist for recipe libftdi that should have been cleaned')
self.assertFalse(os.path.isfile(os.path.join(staging_libdir, 'libftdi1.so.2.1.0')), 'libftdi binary still found in STAGING_LIBDIR after cleaning')
+ @testcase(1160)
def test_devtool_add_fetch(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
checkvars['SRC_URI'] = url.replace(testver, '${PV}')
self._test_recipe_contents(recipefile, checkvars, [])
+ @testcase(1161)
def test_devtool_add_fetch_git(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
checkvars['SRCREV'] = checkrev
self._test_recipe_contents(recipefile, checkvars, [])
+ @testcase(1164)
def test_devtool_modify(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
matches = glob.glob(stampprefix + '*')
self.assertFalse(matches, 'Stamp files exist for recipe mdadm that should have been cleaned')
+ @testcase(1166)
def test_devtool_modify_invalid(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
self.assertNotEqual(result.status, 0, 'devtool modify on %s should have failed' % testrecipe)
self.assertIn('ERROR: ', result.output, 'devtool modify on %s should have given an ERROR' % testrecipe)
+ @testcase(1165)
def test_devtool_modify_git(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
# Try building
bitbake(testrecipe)
+ @testcase(1167)
def test_devtool_modify_localfiles(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
# Try building
bitbake(testrecipe)
+ @testcase(1169)
def test_devtool_update_recipe(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
else:
raise AssertionError('Unexpected modified file in status: %s' % line)
+ @testcase(1172)
def test_devtool_update_recipe_git(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
break
self.assertTrue(matched, 'Unexpected diff remove line: %s' % line)
+ @testcase(1170)
def test_devtool_update_recipe_append(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
self.assertEqual(expectedlines, f.readlines())
# Deleting isn't expected to work under these circumstances
+ @testcase(1171)
def test_devtool_update_recipe_append_git(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
self.assertEqual(expectedlines, f.readlines())
# Deleting isn't expected to work under these circumstances
+ @testcase(1163)
def test_devtool_extract(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
self.assertTrue(os.path.exists(os.path.join(tempdir, 'Makefile.am')), 'Extracted source could not be found')
self.assertTrue(os.path.isdir(os.path.join(tempdir, '.git')), 'git repository for external source tree not found')
+ @testcase(1168)
def test_devtool_reset_all(self):
# Check preconditions
workspacedir = os.path.join(self.builddir, 'workspace')
logger.info('Running bitbake to generate pkgdata')
bitbake('glibc busybox zlib bash')
+ @testcase(1203)
def test_lookup_pkg(self):
# Forward tests
result = runCmd('oe-pkgdata-util lookup-pkg "glibc busybox"')
self.assertEqual(result.status, 1)
self.assertEqual(result.output, 'ERROR: The following packages could not be found: nonexistentpkg')
+ @testcase(1205)
def test_read_value(self):
result = runCmd('oe-pkgdata-util read-value PN libz1')
self.assertEqual(result.output, 'zlib')
pkgsize = int(result.output.strip())
self.assertGreater(pkgsize, 1)
+ @testcase(1198)
def test_find_path(self):
result = runCmd('oe-pkgdata-util find-path /lib/libc.so.6')
self.assertEqual(result.output, 'glibc: /lib/libc.so.6')
self.assertEqual(result.status, 1)
self.assertEqual(result.output, 'ERROR: Unable to find any package producing path /not/exist')
+ @testcase(1204)
def test_lookup_recipe(self):
result = runCmd('oe-pkgdata-util lookup-recipe "libc6-staticdev busybox"')
self.assertEqual(result.output, 'glibc\nbusybox')
self.assertEqual(result.status, 1)
self.assertEqual(result.output, 'ERROR: The following packages could not be found: nonexistentpkg')
+ @testcase(1202)
def test_list_pkgs(self):
# No arguments
result = runCmd('oe-pkgdata-util list-pkgs')
pkglist = sorted(result.output.split())
self.assertEqual(pkglist, ['libz-dbg', 'libz-dev', 'libz-doc'])
+ @testcase(1201)
def test_list_pkg_files(self):
def splitoutput(output):
files = {}
self.assertIn(os.path.join(mandir, 'man3/zlib.3'), files['libz-doc'])
self.assertIn(os.path.join(libdir, 'libz.a'), files['libz-staticdev'])
+ @testcase(1200)
def test_glob(self):
tempdir = tempfile.mkdtemp(prefix='pkgdataqa')
self.track_for_cleanup(tempdir)
self.assertNotIn('libz-dev', resultlist)
self.assertNotIn('libz-dbg', resultlist)
+ @testcase(1206)
def test_specify_pkgdatadir(self):
result = runCmd('oe-pkgdata-util -p %s lookup-pkg glibc' % get_bb_var('PKGDATA_DIR'))
self.assertEqual(result.output, 'libc6')
for errorstr in checkerror:
self.assertIn(errorstr, result.output)
-
+ @testcase(1177)
def test_recipetool_appendfile_basic(self):
# Basic test
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('base-files', '/etc/motd', self.testfile, '', expectedlines, ['motd'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1183)
def test_recipetool_appendfile_invalid(self):
# Test some commands that should error
self._try_recipetool_appendfile_fail('/etc/passwd', self.testfile, ['ERROR: /etc/passwd cannot be handled by this tool', 'useradd', 'extrausers'])
self._try_recipetool_appendfile_fail('/etc/timestamp', self.testfile, ['ERROR: /etc/timestamp cannot be handled by this tool'])
self._try_recipetool_appendfile_fail('/dev/console', self.testfile, ['ERROR: /dev/console cannot be handled by this tool'])
+ @testcase(1176)
def test_recipetool_appendfile_alternatives(self):
# Now try with a file we know should be an alternative
# (this is very much a fake example, but one we know is reliably an alternative)
result = runCmd('diff -q %s %s' % (testfile2, copiedfile), ignore_status=True)
self.assertNotEqual(result.status, 0, 'New file should have been copied but was not')
+ @testcase(1178)
def test_recipetool_appendfile_binary(self):
# Try appending a binary file
# /bin/ls can be a symlink to /usr/bin/ls
self.assertIn('WARNING: ', result.output)
self.assertIn('is a binary', result.output)
+ @testcase(1173)
def test_recipetool_appendfile_add(self):
corebase = get_bb_var('COREBASE')
# Try arbitrary file add to a recipe
'}\n']
self._try_recipetool_appendfile('netbase', '/usr/share/scriptname', testfile2, '-r netbase', expectedlines, ['testfile', testfile2name])
+ @testcase(1174)
def test_recipetool_appendfile_add_bindir(self):
# Try arbitrary file add to a recipe, this time to a location such that should be installed as executable
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('netbase', '/usr/bin/selftest-recipetool-testbin', self.testfile, '-r netbase', expectedlines, ['testfile'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1175)
def test_recipetool_appendfile_add_machine(self):
# Try arbitrary file add to a recipe, this time to a location such that should be installed as executable
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('netbase', '/usr/share/something', self.testfile, '-r netbase -m mymachine', expectedlines, ['mymachine/testfile'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1184)
def test_recipetool_appendfile_orig(self):
# A file that's in SRC_URI and in do_install with the same name
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-orig', self.testfile, '', expectedlines, ['selftest-replaceme-orig'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1191)
def test_recipetool_appendfile_todir(self):
# A file that's in SRC_URI and in do_install with destination directory rather than file
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-todir', self.testfile, '', expectedlines, ['selftest-replaceme-todir'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1187)
def test_recipetool_appendfile_renamed(self):
# A file that's in SRC_URI with a different name to the destination file
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-renamed', self.testfile, '', expectedlines, ['file1'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1190)
def test_recipetool_appendfile_subdir(self):
# A file that's in SRC_URI in a subdir
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-subdir', self.testfile, '', expectedlines, ['testfile'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1189)
def test_recipetool_appendfile_src_glob(self):
# A file that's in SRC_URI as a glob
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-src-globfile', self.testfile, '', expectedlines, ['testfile'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1181)
def test_recipetool_appendfile_inst_glob(self):
# A file that's in do_install as a glob
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-inst-globfile', self.testfile, '', expectedlines, ['selftest-replaceme-inst-globfile'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1182)
def test_recipetool_appendfile_inst_todir_glob(self):
# A file that's in do_install as a glob with destination as a directory
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-inst-todir-globfile', self.testfile, '', expectedlines, ['selftest-replaceme-inst-todir-globfile'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1185)
def test_recipetool_appendfile_patch(self):
# A file that's added by a patch in SRC_URI
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
else:
self.assertTrue(False, 'Patch warning not found in output:\n%s' % output)
+ @testcase(1188)
def test_recipetool_appendfile_script(self):
# Now, a file that's in SRC_URI but installed by a script (so no mention in do_install)
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-scripted', self.testfile, '', expectedlines, ['testfile'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1180)
def test_recipetool_appendfile_inst_func(self):
# A file that's installed from a function called by do_install
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-inst-func', self.testfile, '', expectedlines, ['selftest-replaceme-inst-func'])
self.assertNotIn('WARNING: ', output)
+ @testcase(1186)
def test_recipetool_appendfile_postinstall(self):
# A file that's created by a postinstall script (and explicitly mentioned in it)
# First try without specifying recipe
'}\n']
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-postinst', self.testfile, '-r selftest-recipetool-appendfile', expectedlines, ['testfile'])
+ @testcase(1179)
def test_recipetool_appendfile_extlayer(self):
# Try creating a bbappend in a layer that's not in bblayers.conf and has a different structure
exttemplayerdir = os.path.join(self.tempdir, 'extlayer')
'metadata/recipes/recipes-test/selftest-recipetool-appendfile/selftest-recipetool-appendfile/selftest-replaceme-orig']
self.assertEqual(sorted(createdfiles), sorted(expectedfiles))
+ @testcase(1192)
def test_recipetool_appendfile_wildcard(self):
def try_appendfile_wc(options):
filename = try_appendfile_wc('-w')
self.assertEqual(filename, recipefn.split('_')[0] + '_%.bbappend')
-
-
+ @testcase(1193)
def test_recipetool_create(self):
# Try adding a recipe
tempsrc = os.path.join(self.tempdir, 'srctree')
checkvars['SRC_URI[sha256sum]'] = 'f6ba691f40e30e640efa2752c1f9499a3f9738257660994de70a45fe00d12b64'
self._test_recipe_contents(recipefile, checkvars, [])
+ @testcase(1194)
def test_recipetool_create_git(self):
# Ensure we have the right data in shlibs/pkgdata
bitbake('libpng pango libx11 libxext jpeg')