tests: Switch to use list as stack

Tidy up change to replace inserts to a list with appends to build the
graph of commits to be constructed.

Change-Id: If75655dc32a9d51f3a437142d36949ee8c4eb6cf
This commit is contained in:
Darragh Bailey
2015-06-30 10:48:48 +01:00
committed by Darragh Bailey
parent 8f7f2f9ff5
commit 795abb72a7

View File

@@ -86,10 +86,10 @@ def reverse_toposort(data):
nodes_to_visit = [] nodes_to_visit = []
for i in data.keys(): for i in data.keys():
if i not in visited: if i not in visited:
nodes_to_visit.insert(0, i) nodes_to_visit.append(i)
while nodes_to_visit: while nodes_to_visit:
node = nodes_to_visit.pop(0) node = nodes_to_visit.pop()
if visited.get(node) is _VISITED: if visited.get(node) is _VISITED:
# already visited so just return it with it's deps # already visited so just return it with it's deps
yield (node, data[node]) yield (node, data[node])
@@ -97,16 +97,16 @@ def reverse_toposort(data):
continue continue
visited[node] = _VISITED visited[node] = _VISITED
nodes_to_visit.insert(0, node) nodes_to_visit.append(node)
# special case for cherry-picking changes # special case for cherry-picking changes
c_node = _get_node_to_pick(node) c_node = _get_node_to_pick(node)
if c_node and c_node not in visited: if c_node and c_node not in visited:
nodes_to_visit.insert(0, c_node) nodes_to_visit.append(c_node)
for d in data[node]: for d in data[node]:
r_d = d.strip('=') r_d = d.strip('=')
if r_d not in visited: if r_d not in visited:
nodes_to_visit.insert(0, r_d) nodes_to_visit.append(r_d)
else: else:
# if we've already visited a dep but not processed it, # if we've already visited a dep but not processed it,
# then we have a back edge of some kind # then we have a back edge of some kind