diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2017-06-27 17:33:39 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-07-27 22:36:44 +0100 |
commit | 6d7302b53c6ceae1194611eba2ef48fc30f20e12 (patch) | |
tree | 320aa97dd21c3b422e9c52a2520c9420353c5e74 | |
parent | 7546daec4fe30d0bd338aac5b8ac4a4add00f137 (diff) | |
download | poky-6d7302b53c6ceae1194611eba2ef48fc30f20e12.tar.gz |
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>
-rw-r--r-- | scripts/lib/compatlayer/__init__.py | 7 | ||||
-rw-r--r-- | scripts/lib/compatlayer/cases/common.py | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/scripts/lib/compatlayer/__init__.py b/scripts/lib/compatlayer/__init__.py index eaae4e534f..451e1de950 100644 --- a/scripts/lib/compatlayer/__init__.py +++ b/scripts/lib/compatlayer/__init__.py | |||
@@ -290,7 +290,7 @@ def get_signatures(builddir, failsafe=False, machine=None): | |||
290 | 290 | ||
291 | return (sigs, tune2tasks) | 291 | return (sigs, tune2tasks) |
292 | 292 | ||
293 | def get_depgraph(targets=['world']): | 293 | def get_depgraph(targets=['world'], failsafe=False): |
294 | ''' | 294 | ''' |
295 | Returns the dependency graph for the given target(s). | 295 | Returns the dependency graph for the given target(s). |
296 | The dependency graph is taken directly from DepTreeEvent. | 296 | The dependency graph is taken directly from DepTreeEvent. |
@@ -309,6 +309,11 @@ def get_depgraph(targets=['world']): | |||
309 | elif isinstance(event, bb.command.CommandCompleted): | 309 | elif isinstance(event, bb.command.CommandCompleted): |
310 | break | 310 | break |
311 | elif isinstance(event, bb.event.NoProvider): | 311 | elif isinstance(event, bb.event.NoProvider): |
312 | if failsafe: | ||
313 | # The event is informational, we will get information about the | ||
314 | # remaining dependencies eventually and thus can ignore this | ||
315 | # here like we do in get_signatures(), if desired. | ||
316 | continue | ||
312 | if event._reasons: | 317 | if event._reasons: |
313 | raise RuntimeError('Nothing provides %s: %s' % (event._item, event._reasons)) | 318 | raise RuntimeError('Nothing provides %s: %s' % (event._item, event._reasons)) |
314 | else: | 319 | else: |
diff --git a/scripts/lib/compatlayer/cases/common.py b/scripts/lib/compatlayer/cases/common.py index 8eeada9b1e..2dfcbb1c32 100644 --- a/scripts/lib/compatlayer/cases/common.py +++ b/scripts/lib/compatlayer/cases/common.py | |||
@@ -50,7 +50,7 @@ class CommonCompatLayer(OECompatLayerTestCase): | |||
50 | def graph2sig(task): | 50 | def graph2sig(task): |
51 | pn, taskname = task.rsplit('.', 1) | 51 | pn, taskname = task.rsplit('.', 1) |
52 | return pn + ':' + taskname | 52 | return pn + ':' + taskname |
53 | depgraph = get_depgraph() | 53 | depgraph = get_depgraph(failsafe=True) |
54 | depends = depgraph['tdepends'] | 54 | depends = depgraph['tdepends'] |
55 | 55 | ||
56 | # If a task A has a changed signature, but none of its | 56 | # If a task A has a changed signature, but none of its |