feature: Add -x|--explicit option to 'spack test run' (#32910)
This commit is contained in:
parent
9d5151ba25
commit
512f8d14d2
3 changed files with 21 additions and 7 deletions
|
@ -54,6 +54,12 @@ def setup_parser(subparser):
|
|||
run_parser.add_argument(
|
||||
"--externals", action="store_true", help="Test packages that are externally installed."
|
||||
)
|
||||
run_parser.add_argument(
|
||||
"-x",
|
||||
"--explicit",
|
||||
action="store_true",
|
||||
help="Only test packages that are explicitly installed.",
|
||||
)
|
||||
run_parser.add_argument(
|
||||
"--keep-stage", action="store_true", help="Keep testing directory for debugging"
|
||||
)
|
||||
|
@ -188,6 +194,9 @@ def test_run(args):
|
|||
if args.fail_fast:
|
||||
spack.config.set("config:fail_fast", True, scope="command_line")
|
||||
|
||||
explicit = args.explicit or any
|
||||
explicit_str = "explicitly " if args.explicit else ""
|
||||
|
||||
# Get specs to test
|
||||
env = ev.active_environment()
|
||||
hashes = env.all_hashes() if env else None
|
||||
|
@ -195,9 +204,13 @@ def test_run(args):
|
|||
specs = spack.cmd.parse_specs(args.specs) if args.specs else [None]
|
||||
specs_to_test = []
|
||||
for spec in specs:
|
||||
matching = spack.store.db.query_local(spec, hashes=hashes)
|
||||
matching = spack.store.db.query_local(
|
||||
spec,
|
||||
hashes=hashes,
|
||||
explicit=explicit,
|
||||
)
|
||||
if spec and not matching:
|
||||
tty.warn("No installed packages match spec %s" % spec)
|
||||
tty.warn("No {0}installed packages match spec {1}".format(explicit_str, spec))
|
||||
"""
|
||||
TODO: Need to write out a log message and/or CDASH Testing
|
||||
output that package not installed IF continue to process
|
||||
|
@ -208,6 +221,7 @@ def test_run(args):
|
|||
# to ensure report package as skipped (e.g., for CI)
|
||||
specs_to_test.append(spec)
|
||||
"""
|
||||
|
||||
specs_to_test.extend(matching)
|
||||
|
||||
# test_stage_dir
|
||||
|
|
|
@ -467,7 +467,7 @@ def test_affected_specs_on_first_concretization(mutable_mock_env_path, config):
|
|||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
sys.platform == "win32", reason="Reliance on bash script ot supported on Windows"
|
||||
sys.platform == "win32", reason="Reliance on bash script not supported on Windows"
|
||||
)
|
||||
def test_ci_process_command(tmpdir):
|
||||
repro_dir = tmpdir.join("repro_dir").strpath
|
||||
|
@ -479,7 +479,7 @@ def test_ci_process_command(tmpdir):
|
|||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
sys.platform == "win32", reason="Reliance on bash script ot supported on Windows"
|
||||
sys.platform == "win32", reason="Reliance on bash script not supported on Windows"
|
||||
)
|
||||
def test_ci_process_command_fail(tmpdir, monkeypatch):
|
||||
import subprocess
|
||||
|
@ -526,7 +526,7 @@ def test_ci_run_standalone_tests_missing_requirements(
|
|||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
sys.platform == "win32", reason="Reliance on bash script ot supported on Windows"
|
||||
sys.platform == "win32", reason="Reliance on bash script not supported on Windows"
|
||||
)
|
||||
def test_ci_run_standalone_tests_not_installed_junit(
|
||||
tmpdir, working_env, config, mock_packages, mock_test_stage, capfd
|
||||
|
@ -547,7 +547,7 @@ def test_ci_run_standalone_tests_not_installed_junit(
|
|||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
sys.platform == "win32", reason="Reliance on bash script ot supported on Windows"
|
||||
sys.platform == "win32", reason="Reliance on bash script not supported on Windows"
|
||||
)
|
||||
def test_ci_run_standalone_tests_not_installed_cdash(
|
||||
tmpdir, working_env, config, mock_packages, mock_test_stage, capfd
|
||||
|
|
|
@ -1738,7 +1738,7 @@ _spack_test() {
|
|||
_spack_test_run() {
|
||||
if $list_options
|
||||
then
|
||||
SPACK_COMPREPLY="-h --help --alias --fail-fast --fail-first --externals --keep-stage --log-format --log-file --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp --help-cdash --clean --dirty"
|
||||
SPACK_COMPREPLY="-h --help --alias --fail-fast --fail-first --externals -x --explicit --keep-stage --log-format --log-file --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp --help-cdash --clean --dirty"
|
||||
else
|
||||
_installed_packages
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue