diff options
author | Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> | 2022-10-25 12:32:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-25 12:32:55 -0700 |
commit | 512f8d14d28ab4fe0667905b899efed1f785c755 (patch) | |
tree | 8844307708eec6a72260305822bbbd350e7a4b39 /lib | |
parent | 9d5151ba25394b35ff7fc4b06b858c53e638ec5d (diff) | |
download | spack-512f8d14d28ab4fe0667905b899efed1f785c755.tar.gz spack-512f8d14d28ab4fe0667905b899efed1f785c755.tar.bz2 spack-512f8d14d28ab4fe0667905b899efed1f785c755.tar.xz spack-512f8d14d28ab4fe0667905b899efed1f785c755.zip |
feature: Add -x|--explicit option to 'spack test run' (#32910)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/cmd/test.py | 18 | ||||
-rw-r--r-- | lib/spack/spack/test/ci.py | 8 |
2 files changed, 20 insertions, 6 deletions
diff --git a/lib/spack/spack/cmd/test.py b/lib/spack/spack/cmd/test.py index fcd72a123e..4da35c8a35 100644 --- a/lib/spack/spack/cmd/test.py +++ b/lib/spack/spack/cmd/test.py @@ -55,6 +55,12 @@ def setup_parser(subparser): "--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" ) run_parser.add_argument( @@ -188,6 +194,9 @@ environment variables: 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 @@ environment variables: 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 @@ environment variables: # to ensure report package as skipped (e.g., for CI) specs_to_test.append(spec) """ + specs_to_test.extend(matching) # test_stage_dir diff --git a/lib/spack/spack/test/ci.py b/lib/spack/spack/test/ci.py index b2c83ca2a9..06f212d92a 100644 --- a/lib/spack/spack/test/ci.py +++ b/lib/spack/spack/test/ci.py @@ -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 |