@@ -1625,6 +1625,7 @@ fn crate_env_vars() {
16251625 static VERSION_PRE: &'static str = env!("CARGO_PKG_VERSION_PRE");
16261626 static VERSION: &'static str = env!("CARGO_PKG_VERSION");
16271627 static CARGO_MANIFEST_DIR: &'static str = env!("CARGO_MANIFEST_DIR");
1628+ static CARGO_MANIFEST_PATH: &'static str = env!("CARGO_MANIFEST_PATH");
16281629 static PKG_NAME: &'static str = env!("CARGO_PKG_NAME");
16291630 static HOMEPAGE: &'static str = env!("CARGO_PKG_HOMEPAGE");
16301631 static REPOSITORY: &'static str = env!("CARGO_PKG_REPOSITORY");
@@ -1638,9 +1639,9 @@ fn crate_env_vars() {
16381639
16391640
16401641 fn main() {
1641- let s = format!("{}-{}-{} @ {} in {}", VERSION_MAJOR,
1642+ let s = format!("{}-{}-{} @ {} in {} file {} ", VERSION_MAJOR,
16421643 VERSION_MINOR, VERSION_PATCH, VERSION_PRE,
1643- CARGO_MANIFEST_DIR);
1644+ CARGO_MANIFEST_DIR, CARGO_MANIFEST_PATH );
16441645 assert_eq!(s, foo::version());
16451646 println!("{}", s);
16461647 assert_eq!("foo", PKG_NAME);
@@ -1674,12 +1675,13 @@ fn crate_env_vars() {
16741675 use std::path::PathBuf;
16751676
16761677 pub fn version() -> String {
1677- format!("{}-{}-{} @ {} in {}",
1678+ format!("{}-{}-{} @ {} in {} file {} ",
16781679 env!("CARGO_PKG_VERSION_MAJOR"),
16791680 env!("CARGO_PKG_VERSION_MINOR"),
16801681 env!("CARGO_PKG_VERSION_PATCH"),
16811682 env!("CARGO_PKG_VERSION_PRE"),
1682- env!("CARGO_MANIFEST_DIR"))
1683+ env!("CARGO_MANIFEST_DIR"),
1684+ env!("CARGO_MANIFEST_PATH"))
16831685 }
16841686
16851687 pub fn check_no_int_test_env() {
@@ -1795,7 +1797,7 @@ fn crate_env_vars() {
17951797 println ! ( "bin" ) ;
17961798 p. process ( & p. bin ( "foo-bar" ) )
17971799 . with_stdout_data ( str![ [ r#"
1798- 0-5-1 @ alpha.1 in [ROOT]/foo
1800+ 0-5-1 @ alpha.1 in [ROOT]/foo file [ROOT]/foo/Cargo.toml
17991801
18001802"# ] ] )
18011803 . run ( ) ;
@@ -1863,12 +1865,15 @@ fn cargo_rustc_current_dir_foreign_workspace_dep() {
18631865 fn baz_env() {
18641866 let workspace_dir = Path::new(option_env!("CARGO_RUSTC_CURRENT_DIR").expect("CARGO_RUSTC_CURRENT_DIR"));
18651867 let manifest_dir = Path::new(option_env!("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR"));
1868+ let manifest_path = Path::new(option_env!("CARGO_MANIFEST_PATH").expect("CARGO_MANIFEST_PATH"));
18661869 let current_dir = std::env::current_dir().expect("current_dir");
18671870 let file_path = workspace_dir.join(file!());
18681871 assert!(file_path.exists(), "{}", file_path.display());
18691872 let workspace_dir = std::fs::canonicalize(current_dir.join(workspace_dir)).expect("CARGO_RUSTC_CURRENT_DIR");
1873+ let manifest_path = std::fs::canonicalize(current_dir.join(manifest_dir.clone()).join("Cargo.toml")).expect("CARGO_MANIFEST_PATH");
18701874 let manifest_dir = std::fs::canonicalize(current_dir.join(manifest_dir)).expect("CARGO_MANIFEST_DIR");
1871- assert_eq!(workspace_dir, manifest_dir);
1875+ assert_eq!(workspace_dir, manifest_dir.clone());
1876+ assert_eq!(manifest_dir.join("Cargo.toml"), manifest_path);
18721877 }
18731878 "# ,
18741879 )
@@ -1957,12 +1962,15 @@ fn cargo_rustc_current_dir_non_local_dep() {
19571962 fn bar_env() {
19581963 let workspace_dir = Path::new(option_env!("CARGO_RUSTC_CURRENT_DIR").expect("CARGO_RUSTC_CURRENT_DIR"));
19591964 let manifest_dir = Path::new(option_env!("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR"));
1965+ let manifest_path = Path::new(option_env!("CARGO_MANIFEST_PATH").expect("CARGO_MANIFEST_PATH"));
19601966 let current_dir = std::env::current_dir().expect("current_dir");
19611967 let file_path = workspace_dir.join(file!());
19621968 assert!(file_path.exists(), "{}", file_path.display());
19631969 let workspace_dir = std::fs::canonicalize(current_dir.join(workspace_dir)).expect("CARGO_RUSTC_CURRENT_DIR");
1970+ let manifest_path = std::fs::canonicalize(current_dir.join(manifest_dir.clone()).join("Cargo.toml")).expect("CARGO_MANIFEST_PATH");
19641971 let manifest_dir = std::fs::canonicalize(current_dir.join(manifest_dir)).expect("CARGO_MANIFEST_DIR");
1965- assert_eq!(workspace_dir, manifest_dir);
1972+ assert_eq!(workspace_dir, manifest_dir.clone());
1973+ assert_eq!(manifest_dir.join("Cargo.toml"), manifest_path);
19661974 }
19671975 "# ,
19681976 )
0 commit comments