Fix recipetool issue highlighted by oe-selftest test
cover Fix recipetool issue highlighted by oe-selftest test
The following changes since commit 4be0e15f74cff85edca9de55248939fb438f30ae:
oeqa/selftest/recipetool: Fix test_recipetool_create_simple (2016-03-13 18:15:41 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/recipetool-selftest-fix
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/recipetool-selftest-fix
Paul Eggleton (1):
recipetool: create: don't create extra files directory unconditionally
meta/lib/oeqa/selftest/recipetool.py | 6 ++++-- scripts/lib/recipetool/create.py | 15 ++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-)
Signature · 1 line
2.5.0
PATCH 1/1 recipetool: create: don't create extra files directory unconditionally
The extra directory next to the recipe should only be created if there are files to put into it; currently only the npm plugin does this. I didn't notice the issue earlier because the test was actually able to succeed under these circumstances if the recipe file came first in the directory listing, which was a fault in my original oe-selftest test; apparently on some YP autobuilder machines the order came out reversed.
With this change we can put the oe-selftest test that highlighted the issue back to the way it was, with an extra check to reinforce that only a single file should be created.
--- meta/lib/oeqa/selftest/recipetool.py | 6 ++++-- scripts/lib/recipetool/create.py | 15 ++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-)
meta/lib/oeqa/selftest/recipetool.py +4 -2
@@ -410,9 +410,11 @@ class RecipetoolTests(RecipetoolBase): srcuri = 'http://www.dest-unreach.org/socat/download/socat-%s.tar.bz2' % pv result = runCmd('recipetool create %s -o %s' % (srcuri, temprecipe)) dirlist = os.listdir(temprecipe) - if len(dirlist) < 1 or not os.path.isfile(os.path.join(temprecipe, 'socat_%s.bb' % pv)): + if len(dirlist) > 1: + self.fail('recipetool created more than just one file; output:\n%s\ndirlist:\n%s' % (result.output, str(dirlist))) + if len(dirlist) < 1 or not os.path.isfile(os.path.join(temprecipe, dirlist[0])): self.fail('recipetool did not create recipe file; output:\n%s\ndirlist:\n%s' % (result.output, str(dirlist))) - self.assertIn('socat_%s.bb' % pv, dirlist, 'Recipe file incorrectly named') + self.assertEqual(dirlist[0], 'socat_%s.bb' % pv, 'Recipe file incorrectly named') checkvars = {} checkvars['LICENSE'] = set(['Unknown', 'GPLv2']) checkvars['LIC_FILES_CHKSUM'] = set(['file://COPYING.OpenSSL;md5=5c9bccc77f67a8328ef4ebaf468116f4', 'file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263'])
scripts/lib/recipetool/create.py +8 -7
@@ -604,13 +604,14 @@ def create_recipe(args): sys.exit(1) # Move any extra files the plugins created to a directory next to the recipe - if outfile == '-': - extraoutdir = pn - else: - extraoutdir = os.path.join(os.path.dirname(outfile), pn) - bb.utils.mkdirhier(extraoutdir) - for destfn, extrafile in extrafiles.iteritems(): - shutil.move(extrafile, os.path.join(extraoutdir, destfn)) + if extrafiles: + if outfile == '-': + extraoutdir = pn + else: + extraoutdir = os.path.join(os.path.dirname(outfile), pn) + bb.utils.mkdirhier(extraoutdir) + for destfn, extrafile in extrafiles.iteritems(): + shutil.move(extrafile, os.path.join(extraoutdir, destfn)) lines = lines_before lines_before = []
Signature · 1 line
2.5.0