mirror of
https://github.com/rust-lang/cargo
synced 2024-10-14 03:32:39 +00:00
79469f3019
Currently, the UI tests are - `cargo add` - `cargo new` - `cargo remove` - `init` One of these is not like the others. This change renames `init` to `cargo_init` to suggest it is the UI tests for the `cargo init` command, rather than `init` functionality.
30 lines
1.1 KiB
Rust
30 lines
1.1 KiB
Rust
use cargo_test_support::compare::assert_ui;
|
|
use cargo_test_support::prelude::*;
|
|
use cargo_test_support::{process, Project};
|
|
|
|
use cargo_test_support::curr_dir;
|
|
|
|
#[cargo_test]
|
|
fn case() {
|
|
// This cannot use `requires_rustfmt` because rustfmt is not available in
|
|
// the rust-lang/rust environment. Additionally, if running cargo without
|
|
// rustup (but with rustup installed), this test also fails due to HOME
|
|
// preventing the proxy from choosing a toolchain.
|
|
if let Err(e) = process("rustfmt").arg("-V").exec_with_output() {
|
|
eprintln!("skipping test, rustfmt not available:\n{e:?}");
|
|
return;
|
|
}
|
|
let project = Project::from_template(curr_dir!().join("in"));
|
|
let project_root = &project.root();
|
|
|
|
snapbox::cmd::Command::cargo_ui()
|
|
.arg_line("init --lib --vcs none")
|
|
.current_dir(project_root)
|
|
.assert()
|
|
.success()
|
|
.stdout_matches_path(curr_dir!().join("stdout.log"))
|
|
.stderr_matches_path(curr_dir!().join("stderr.log"));
|
|
|
|
assert_ui().subset_matches(curr_dir!().join("out"), project_root);
|
|
}
|