cargo/tests/testsuite/version.rs
Eric Huss c0be32b5de Re-enable version_works_without_rustc on windows.
This test was ignored in https://github.com/rust-lang/cargo/pull/3189
without much discussion of explaining why.

AFAICT, this test works fine on Windows on both MSVC and GNU.
Empty paths do the expected behavior (preventing cargo from running
rustc). There are some special rules on Windows about discovering the
process to run (such as searching the app's launch directory), but
I do not think that is relevant here. Confirmed by trying to run
`cargo check` in this test fails to find `rustc`.
2022-08-02 12:54:16 -07:00

55 lines
1.3 KiB
Rust

//! Tests for displaying the cargo version.
use cargo_test_support::{cargo_process, project};
#[cargo_test]
fn simple() {
let p = project().build();
p.cargo("version")
.with_stdout(&format!("cargo {}\n", cargo::version()))
.run();
p.cargo("--version")
.with_stdout(&format!("cargo {}\n", cargo::version()))
.run();
}
#[cargo_test]
fn version_works_without_rustc() {
let p = project().build();
p.cargo("version").env("PATH", "").run();
}
#[cargo_test]
fn version_works_with_bad_config() {
let p = project().file(".cargo/config", "this is not toml").build();
p.cargo("version").run();
}
#[cargo_test]
fn version_works_with_bad_target_dir() {
let p = project()
.file(
".cargo/config",
r#"
[build]
target-dir = 4
"#,
)
.build();
p.cargo("version").run();
}
#[cargo_test]
fn verbose() {
// This is mainly to check that it doesn't explode.
cargo_process("-vV")
.with_stdout_contains(&format!("cargo {}", cargo::version()))
.with_stdout_contains("host: [..]")
.with_stdout_contains("libgit2: [..]")
.with_stdout_contains("libcurl: [..]")
.with_stdout_contains("os: [..]")
.run();
}