test: suggest available packages

This commit is contained in:
Weihang Lo 2020-10-26 02:46:26 +08:00
parent 60751e4840
commit 4d5a56d7d0
No known key found for this signature in database
GPG Key ID: D7DBF189825E82E7
2 changed files with 45 additions and 27 deletions

View File

@ -1,13 +1,15 @@
//! Tests for target filter flags giving suggestions on which targets are available.
//! Tests for packages/target filter flags giving suggestions on which
//! packages/targets are available.
use cargo_test_support::project;
const EXAMPLE: u8 = 0x1;
const BIN: u8 = 0x2;
const TEST: u8 = 0x4;
const BENCH: u8 = 0x8;
const EXAMPLE: u8 = 1 << 0;
const BIN: u8 = 1 << 1;
const TEST: u8 = 1 << 2;
const BENCH: u8 = 1 << 3;
const PACKAGE: u8 = 1 << 4;
fn list_targets_test(command: &str, targets: u8) {
fn list_availables_test(command: &str, targets: u8) {
let full_project = project()
.file("examples/a.rs", "fn main() { }")
.file("examples/b.rs", "fn main() { }")
@ -75,6 +77,22 @@ Available tests:
test1
test2
",
)
.with_status(101)
.run();
}
if targets & PACKAGE != 0 {
full_project
.cargo(&format!("{} -p", command))
.with_stderr(
"\
[ERROR] \"--package <SPEC>\" requires a SPEC format value.
Run `cargo help pkgid` for more infomation about SPEC format.
Available packages:
foo
",
)
.with_status(101)
@ -141,51 +159,51 @@ No tests available.
}
#[cargo_test]
fn build_list_targets() {
list_targets_test("build", EXAMPLE | BIN | TEST | BENCH);
fn build_list_availables() {
list_availables_test("build", EXAMPLE | BIN | TEST | BENCH | PACKAGE);
}
#[cargo_test]
fn check_list_targets() {
list_targets_test("check", EXAMPLE | BIN | TEST | BENCH);
fn check_list_availables() {
list_availables_test("check", EXAMPLE | BIN | TEST | BENCH | PACKAGE);
}
#[cargo_test]
fn doc_list_targets() {
list_targets_test("doc", BIN);
fn doc_list_availables() {
list_availables_test("doc", BIN | PACKAGE);
}
#[cargo_test]
fn fix_list_targets() {
list_targets_test("fix", EXAMPLE | BIN | TEST | BENCH);
fn fix_list_availables() {
list_availables_test("fix", EXAMPLE | BIN | TEST | BENCH | PACKAGE);
}
#[cargo_test]
fn run_list_targets() {
list_targets_test("run", EXAMPLE | BIN);
fn run_list_availables() {
list_availables_test("run", EXAMPLE | BIN);
}
#[cargo_test]
fn test_list_targets() {
list_targets_test("test", EXAMPLE | BIN | TEST | BENCH);
fn test_list_availables() {
list_availables_test("test", EXAMPLE | BIN | TEST | BENCH | PACKAGE);
}
#[cargo_test]
fn bench_list_targets() {
list_targets_test("bench", EXAMPLE | BIN | TEST | BENCH);
fn bench_list_availables() {
list_availables_test("bench", EXAMPLE | BIN | TEST | BENCH | PACKAGE);
}
#[cargo_test]
fn install_list_targets() {
list_targets_test("install", EXAMPLE | BIN);
fn install_list_availables() {
list_availables_test("install", EXAMPLE | BIN);
}
#[cargo_test]
fn rustdoc_list_targets() {
list_targets_test("rustdoc", EXAMPLE | BIN | TEST | BENCH);
fn rustdoc_list_availables() {
list_availables_test("rustdoc", EXAMPLE | BIN | TEST | BENCH);
}
#[cargo_test]
fn rustc_list_targets() {
list_targets_test("rustc", EXAMPLE | BIN | TEST | BENCH);
fn rustc_list_availables() {
list_availables_test("rustc", EXAMPLE | BIN | TEST | BENCH);
}

View File

@ -58,7 +58,7 @@ mod init;
mod install;
mod install_upgrade;
mod jobserver;
mod list_targets;
mod list_availables;
mod local_registry;
mod locate_project;
mod lockfile_compat;