Use bfs order in spack find --deps tree (#33782)

* Use bfs order in spack find --deps tree
* fix printing tests
This commit is contained in:
Harmen Stoppels 2022-11-11 00:39:07 +01:00 committed by GitHub
parent 6a3e20023e
commit 0077a25639
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 9 deletions

View file

@ -30,6 +30,7 @@
import spack.paths
import spack.spec
import spack.store
import spack.traverse as traverse
import spack.user_environment as uenv
import spack.util.spack_json as sjson
import spack.util.string
@ -464,11 +465,12 @@ def format_list(specs):
# create the final, formatted versions of all specs
formatted = []
for spec in specs:
formatted.append((fmt(spec), spec))
if deps:
for depth, dep in spec.traverse(root=False, depth=True):
formatted.append((fmt(dep, depth), dep))
for depth, dep in traverse.traverse_tree([spec], depth_first=False):
formatted.append((fmt(dep.spec, depth), dep.spec))
formatted.append(("", None)) # mark newlines
else:
formatted.append((fmt(spec), spec))
# unless any of these are set, we can just colify and be done.
if not any((deps, paths)):

View file

@ -269,9 +269,9 @@ def test_find_format_deps(database, config):
callpath-1.0
dyninst-8.2
libdwarf-20130729
libelf-0.8.13
zmpi-1.0
fake-1.0
libelf-0.8.13
zmpi-1.0
fake-1.0
"""
)
@ -291,9 +291,9 @@ def test_find_format_deps_paths(database, config):
callpath-1.0 {1}
dyninst-8.2 {2}
libdwarf-20130729 {3}
libelf-0.8.13 {4}
zmpi-1.0 {5}
fake-1.0 {6}
libelf-0.8.13 {4}
zmpi-1.0 {5}
fake-1.0 {6}
""".format(
*prefixes