2018-12-06 19:17:36 +00:00
|
|
|
use crate::support::{basic_bin_manifest, main_file, project};
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2019-07-14 22:19:33 +00:00
|
|
|
static MANIFEST_OUTPUT: &str = r#"
|
2015-12-16 22:04:19 +00:00
|
|
|
{
|
2018-04-18 08:08:18 +00:00
|
|
|
"authors": [
|
|
|
|
"wycats@example.com"
|
|
|
|
],
|
|
|
|
"categories": [],
|
2015-12-16 22:04:19 +00:00
|
|
|
"name":"foo",
|
2018-04-18 08:08:18 +00:00
|
|
|
"readme": null,
|
|
|
|
"repository": null,
|
2015-12-16 22:04:19 +00:00
|
|
|
"version":"0.5.0",
|
|
|
|
"id":"foo[..]0.5.0[..](path+file://[..]/foo)",
|
2018-04-18 08:08:18 +00:00
|
|
|
"keywords": [],
|
2016-09-25 21:57:51 +00:00
|
|
|
"license": null,
|
|
|
|
"license_file": null,
|
2018-12-23 19:28:26 +00:00
|
|
|
"links": null,
|
2017-02-02 08:22:49 +00:00
|
|
|
"description": null,
|
2018-07-30 22:08:16 +00:00
|
|
|
"edition": "2015",
|
2015-12-16 22:04:19 +00:00
|
|
|
"source":null,
|
|
|
|
"dependencies":[],
|
|
|
|
"targets":[{
|
|
|
|
"kind":["bin"],
|
2017-02-09 18:20:56 +00:00
|
|
|
"crate_types":["bin"],
|
2019-05-17 15:33:53 +00:00
|
|
|
"doctest": false,
|
2018-07-31 22:29:48 +00:00
|
|
|
"edition": "2015",
|
2015-12-16 22:04:19 +00:00
|
|
|
"name":"foo",
|
2018-08-02 09:18:48 +00:00
|
|
|
"src_path":"[..]/foo/src/foo.rs"
|
2015-12-16 22:04:19 +00:00
|
|
|
}],
|
|
|
|
"features":{},
|
2018-04-14 19:07:23 +00:00
|
|
|
"manifest_path":"[..]Cargo.toml",
|
|
|
|
"metadata": null
|
2016-12-21 06:22:00 +00:00
|
|
|
}"#;
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2019-06-05 18:52:53 +00:00
|
|
|
#[cargo_test]
|
2016-05-25 20:55:42 +00:00
|
|
|
fn cargo_read_manifest_path_to_cargo_toml_relative() {
|
2018-07-20 11:47:47 +00:00
|
|
|
let p = project()
|
2015-08-29 16:08:12 +00:00
|
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
2017-07-22 03:12:21 +00:00
|
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
|
|
.build();
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2018-08-28 09:20:03 +00:00
|
|
|
p.cargo("read-manifest --manifest-path foo/Cargo.toml")
|
|
|
|
.cwd(p.root().parent().unwrap())
|
|
|
|
.with_json(MANIFEST_OUTPUT)
|
|
|
|
.run();
|
2016-05-25 20:55:42 +00:00
|
|
|
}
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2019-06-05 18:52:53 +00:00
|
|
|
#[cargo_test]
|
2016-05-25 20:55:42 +00:00
|
|
|
fn cargo_read_manifest_path_to_cargo_toml_absolute() {
|
2018-07-20 11:47:47 +00:00
|
|
|
let p = project()
|
2015-08-29 16:08:12 +00:00
|
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
2017-07-22 03:12:21 +00:00
|
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
|
|
.build();
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2018-08-28 09:20:03 +00:00
|
|
|
p.cargo("read-manifest --manifest-path")
|
|
|
|
.arg(p.root().join("Cargo.toml"))
|
|
|
|
.cwd(p.root().parent().unwrap())
|
|
|
|
.with_json(MANIFEST_OUTPUT)
|
|
|
|
.run();
|
2016-05-25 20:55:42 +00:00
|
|
|
}
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2019-06-05 18:52:53 +00:00
|
|
|
#[cargo_test]
|
2016-05-25 20:55:42 +00:00
|
|
|
fn cargo_read_manifest_path_to_cargo_toml_parent_relative() {
|
2018-07-20 11:47:47 +00:00
|
|
|
let p = project()
|
2015-08-29 16:08:12 +00:00
|
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
2017-07-22 03:12:21 +00:00
|
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
|
|
.build();
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2018-08-28 09:20:03 +00:00
|
|
|
p.cargo("read-manifest --manifest-path foo")
|
|
|
|
.cwd(p.root().parent().unwrap())
|
|
|
|
.with_status(101)
|
|
|
|
.with_stderr(
|
2018-03-14 15:17:44 +00:00
|
|
|
"[ERROR] the manifest-path must be \
|
|
|
|
a path to a Cargo.toml file",
|
2018-12-08 11:19:47 +00:00
|
|
|
)
|
|
|
|
.run();
|
2016-05-25 20:55:42 +00:00
|
|
|
}
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2019-06-05 18:52:53 +00:00
|
|
|
#[cargo_test]
|
2016-05-25 20:55:42 +00:00
|
|
|
fn cargo_read_manifest_path_to_cargo_toml_parent_absolute() {
|
2018-07-20 11:47:47 +00:00
|
|
|
let p = project()
|
2015-08-29 16:08:12 +00:00
|
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
2017-07-22 03:12:21 +00:00
|
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
|
|
.build();
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2018-08-28 09:20:03 +00:00
|
|
|
p.cargo("read-manifest --manifest-path")
|
|
|
|
.arg(p.root())
|
|
|
|
.cwd(p.root().parent().unwrap())
|
|
|
|
.with_status(101)
|
|
|
|
.with_stderr(
|
2018-03-14 15:17:44 +00:00
|
|
|
"[ERROR] the manifest-path must be \
|
|
|
|
a path to a Cargo.toml file",
|
2018-12-08 11:19:47 +00:00
|
|
|
)
|
|
|
|
.run();
|
2016-05-25 20:55:42 +00:00
|
|
|
}
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2019-06-05 18:52:53 +00:00
|
|
|
#[cargo_test]
|
2016-05-25 20:55:42 +00:00
|
|
|
fn cargo_read_manifest_cwd() {
|
2018-07-20 11:47:47 +00:00
|
|
|
let p = project()
|
2015-08-29 16:08:12 +00:00
|
|
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
2017-07-22 03:12:21 +00:00
|
|
|
.file("src/foo.rs", &main_file(r#""i am foo""#, &[]))
|
|
|
|
.build();
|
2015-08-29 16:08:12 +00:00
|
|
|
|
2018-12-08 11:19:47 +00:00
|
|
|
p.cargo("read-manifest").with_json(MANIFEST_OUTPUT).run();
|
2016-05-25 20:55:42 +00:00
|
|
|
}
|