diff --git a/lib/spack/spack/cmd/spec.py b/lib/spack/spack/cmd/spec.py index 86e01e329486ae463a801cba64262bbaffe31002..d677596b6b60cf520fd4384643f3467513f7fb6e 100644 --- a/lib/spack/spack/cmd/spec.py +++ b/lib/spack/spack/cmd/spec.py @@ -71,6 +71,12 @@ def setup_parser(subparser): subparser.add_argument( "-t", "--types", action="store_true", default=False, help="show dependency types" ) + subparser.add_argument( + "--test", + default=None, + choices=["root", "all"], + help="concretize with test dependencies of only root packages or all packages", + ) arguments.add_common_arguments(subparser, ["specs"]) arguments.add_concretizer_args(subparser) @@ -91,8 +97,16 @@ def spec(parser, args): env = ev.active_environment() if args.specs: - concrete_specs = spack.cmd.parse_specs(args.specs, concretize=True) + if args.test == "all": + tests = True + elif args.test == "root": + tests = [spec.name for spec in spack.cmd.parse_specs(args.specs)] + else: + tests = False + concrete_specs = spack.cmd.parse_specs(args.specs, concretize=True, tests=tests) elif env: + if args.test is not None: + tty.die("spack spec for environments does not support test dependency selection") env.concretize() concrete_specs = env.concrete_roots() else: