test: Make gen-threads work with python3
authorJesse Rosenthal <jrosenthal@jhu.edu>
Fri, 31 Oct 2014 17:33:25 +0000 (13:33 -0400)
committerDavid Bremner <david@tethera.net>
Sun, 2 Nov 2014 18:43:39 +0000 (19:43 +0100)
python3 doesn't allow dictionaries to be initialized with non-string
keywords. This presents problems on systems in which "python" means
"python3". We instead initalize the dictionary using the dict
comprehension and then update it with the values from the tree. This
will work with both python2 and python3.

test/gen-threads.py

index 9fbb8474ab7dd58769c6d91afd19e3790efcbf28..70fb1f687237fb832cb5ac8d33ea151aafb18cd8 100644 (file)
@@ -2,7 +2,6 @@
 # argv[1].  Each output line is a thread structure, where the n'th
 # field is either a number giving the parent of message n or "None"
 # for the root.
-
 import sys
 from itertools import chain, combinations
 
@@ -28,6 +27,7 @@ while queue:
     else:
         # Expand node to_expand[0] with each possible set of children
         for children in subsets(free):
-            ntree = dict(tree, **{child: to_expand[0] for child in children})
+            ntree = {child: to_expand[0] for child in children}
+            ntree.update(tree)
             nfree = free.difference(children)
             queue.append((ntree, nfree, to_expand[1:] + tuple(children)))