summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/siggen.py
diff options
context:
space:
mode:
authorKevin Tian <kevin.tian@intel.com>2011-01-20 13:54:51 +0800
committerSaul Wold <sgw@linux.intel.com>2011-01-21 01:36:17 -0800
commitbcb18738361ee2394bc266911e9e75d5bf1c10cd (patch)
treeaed75d520afb8f868ed89f738e47ab4d88020228 /bitbake/lib/bb/siggen.py
parent6299e9664f2e9fa62630955ed21a2fee98e2915c (diff)
downloadpoky-bcb18738361ee2394bc266911e9e75d5bf1c10cd.tar.gz
siggen.py: better print for task hash comparison
current bitbake-diffsigs simply print out the whole 'runtaskdeps' when there's mismatch, which is not very readable. On the other hand, 'runtaskhashes' comparison is broken which assumes same key existing in two sides. This commit provides better output by figuring out differences from addition, removal or hash change. Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Diffstat (limited to 'bitbake/lib/bb/siggen.py')
-rw-r--r--bitbake/lib/bb/siggen.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index 2d28ecfc2d..a101ce8bb3 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -255,13 +255,20 @@ def compare_sigfiles(a, b):
255 if changed: 255 if changed:
256 for dep in changed: 256 for dep in changed:
257 print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep]) 257 print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep])
258 if 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and sorted(a_data['runtaskdeps']) != sorted(b_data['runtaskdeps']):
259 print "Tasks this task depends on changed from %s to %s" % (sorted(a_data['runtaskdeps']), sorted(b_data['runtaskdeps']))
260 258
261 if 'runtaskhashes' in a_data: 259 if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data:
262 for dep in a_data['runtaskhashes']: 260 changed, added, removed = dict_diff(a_data['runtaskhashes'], b_data['runtaskhashes'])
263 if a_data['runtaskhashes'][dep] != b_data['runtaskhashes'][dep]: 261 if added:
262 for dep in added:
263 print "Dependency on task %s was added" % (dep)
264 if removed:
265 for dep in removed:
266 print "Dependency on task %s was removed" % (dep)
267 if changed:
268 for dep in changed:
264 print "Hash for dependent task %s changed from %s to %s" % (dep, a_data['runtaskhashes'][dep], b_data['runtaskhashes'][dep]) 269 print "Hash for dependent task %s changed from %s to %s" % (dep, a_data['runtaskhashes'][dep], b_data['runtaskhashes'][dep])
270 elif 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and sorted(a_data['runtaskdeps']) != sorted(b_data['runtaskdeps']):
271 print "Tasks this task depends on changed from %s to %s" % (sorted(a_data['runtaskdeps']), sorted(b_data['runtaskdeps']))
265 272
266def dump_sigfile(a): 273def dump_sigfile(a):
267 p1 = pickle.Unpickler(file(a, "rb")) 274 p1 = pickle.Unpickler(file(a, "rb"))