mirror of
https://github.com/rust-lang/cargo.git
synced 2025-10-01 11:30:39 +00:00

Extract out all our test support code to its own standalone crate so it can be shared between multiple test suites if necessary.
107 lines
2.8 KiB
Rust
107 lines
2.8 KiB
Rust
use cargo_test_support::{basic_bin_manifest, main_file, project};
|
|
|
|
static MANIFEST_OUTPUT: &str = r#"
|
|
{
|
|
"authors": [
|
|
"wycats@example.com"
|
|
],
|
|
"categories": [],
|
|
"name":"foo",
|
|
"readme": null,
|
|
"repository": null,
|
|
"version":"0.5.0",
|
|
"id":"foo[..]0.5.0[..](path+file://[..]/foo)",
|
|
"keywords": [],
|
|
"license": null,
|
|
"license_file": null,
|
|
"links": null,
|
|
"description": null,
|
|
"edition": "2015",
|
|
"source":null,
|
|
"dependencies":[],
|
|
"targets":[{
|
|
"kind":["bin"],
|
|
"crate_types":["bin"],
|
|
"doctest": false,
|
|
"edition": "2015",
|
|
"name":"foo",
|
|
"src_path":"[..]/foo/src/foo.rs"
|
|
}],
|
|
"features":{},
|
|
"manifest_path":"[..]Cargo.toml",
|
|
"metadata": null,
|
|
"publish": null
|
|
}"#;
|
|
|
|
#[cargo_test]
|
|
fn cargo_read_manifest_path_to_cargo_toml_relative() {
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
.build();
|
|
|
|
p.cargo("read-manifest --manifest-path foo/Cargo.toml")
|
|
.cwd(p.root().parent().unwrap())
|
|
.with_json(MANIFEST_OUTPUT)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn cargo_read_manifest_path_to_cargo_toml_absolute() {
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
.build();
|
|
|
|
p.cargo("read-manifest --manifest-path")
|
|
.arg(p.root().join("Cargo.toml"))
|
|
.cwd(p.root().parent().unwrap())
|
|
.with_json(MANIFEST_OUTPUT)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn cargo_read_manifest_path_to_cargo_toml_parent_relative() {
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
.build();
|
|
|
|
p.cargo("read-manifest --manifest-path foo")
|
|
.cwd(p.root().parent().unwrap())
|
|
.with_status(101)
|
|
.with_stderr(
|
|
"[ERROR] the manifest-path must be \
|
|
a path to a Cargo.toml file",
|
|
)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn cargo_read_manifest_path_to_cargo_toml_parent_absolute() {
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
.build();
|
|
|
|
p.cargo("read-manifest --manifest-path")
|
|
.arg(p.root())
|
|
.cwd(p.root().parent().unwrap())
|
|
.with_status(101)
|
|
.with_stderr(
|
|
"[ERROR] the manifest-path must be \
|
|
a path to a Cargo.toml file",
|
|
)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn cargo_read_manifest_cwd() {
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
.build();
|
|
|
|
p.cargo("read-manifest").with_json(MANIFEST_OUTPUT).run();
|
|
}
|