yocto-compat-layer.py: tolerate broken world builds during signature diff

The "test_signatures" test ignored a broken world build when getting
signatures, but the code which then tried to analyze a difference
found by the test didn't, which prevented printing the difference.

(From OE-Core rev: f2190e7e81f86735510c6ab10d3ac781146113f9)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Patrick Ohly 2017-06-27 17:33:39 +02:00 committed by Richard Purdie
parent 7546daec4f
commit 6d7302b53c
2 changed files with 7 additions and 2 deletions

View File

@ -290,7 +290,7 @@ def get_signatures(builddir, failsafe=False, machine=None):
return (sigs, tune2tasks)
def get_depgraph(targets=['world']):
def get_depgraph(targets=['world'], failsafe=False):
'''
Returns the dependency graph for the given target(s).
The dependency graph is taken directly from DepTreeEvent.
@ -309,6 +309,11 @@ def get_depgraph(targets=['world']):
elif isinstance(event, bb.command.CommandCompleted):
break
elif isinstance(event, bb.event.NoProvider):
if failsafe:
# The event is informational, we will get information about the
# remaining dependencies eventually and thus can ignore this
# here like we do in get_signatures(), if desired.
continue
if event._reasons:
raise RuntimeError('Nothing provides %s: %s' % (event._item, event._reasons))
else:

View File

@ -50,7 +50,7 @@ class CommonCompatLayer(OECompatLayerTestCase):
def graph2sig(task):
pn, taskname = task.rsplit('.', 1)
return pn + ':' + taskname
depgraph = get_depgraph()
depgraph = get_depgraph(failsafe=True)
depends = depgraph['tdepends']
# If a task A has a changed signature, but none of its