]> code.ossystems Code Review - openembedded-core.git/commitdiff
siggen.py: better print for task hash comparison
authorKevin Tian <kevin.tian@intel.com>
Thu, 20 Jan 2011 05:54:51 +0000 (13:54 +0800)
committerSaul Wold <sgw@linux.intel.com>
Fri, 21 Jan 2011 09:36:17 +0000 (01:36 -0800)
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>
bitbake/lib/bb/siggen.py

index 2d28ecfc2d4c4794fc56c88efd1da436df2bc940..a101ce8bb3baae7a06941485c1cf150c3405a53c 100644 (file)
@@ -255,13 +255,20 @@ def compare_sigfiles(a, b):
     if changed:
         for dep in changed:
             print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep])
-    if 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and sorted(a_data['runtaskdeps']) != sorted(b_data['runtaskdeps']):
-        print "Tasks this task depends on changed from %s to %s" % (sorted(a_data['runtaskdeps']), sorted(b_data['runtaskdeps']))
 
-    if 'runtaskhashes' in a_data:
-        for dep in a_data['runtaskhashes']:
-            if a_data['runtaskhashes'][dep] != b_data['runtaskhashes'][dep]:
+    if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data:
+        changed, added, removed = dict_diff(a_data['runtaskhashes'], b_data['runtaskhashes'])
+        if added:
+            for dep in added:
+                print "Dependency on task %s was added" % (dep)
+        if removed:
+            for dep in removed:
+                print "Dependency on task %s was removed" % (dep)
+        if changed:
+            for dep in changed:
                 print "Hash for dependent task %s changed from %s to %s" % (dep, a_data['runtaskhashes'][dep], b_data['runtaskhashes'][dep])
+    elif 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and sorted(a_data['runtaskdeps']) != sorted(b_data['runtaskdeps']):
+        print "Tasks this task depends on changed from %s to %s" % (sorted(a_data['runtaskdeps']), sorted(b_data['runtaskdeps']))
 
 def dump_sigfile(a):
     p1 = pickle.Unpickler(file(a, "rb"))