]> git.proxmox.com Git - cargo.git/commitdiff
Add `--profile check` to `cargo rustc`
authorNick Cameron <ncameron@mozilla.com>
Thu, 5 Jan 2017 02:21:12 +0000 (15:21 +1300)
committerNick Cameron <ncameron@mozilla.com>
Thu, 5 Jan 2017 22:24:11 +0000 (11:24 +1300)
src/bin/rustc.rs
src/cargo/ops/cargo_rustc/fingerprint.rs
src/cargo/util/config.rs
tests/check.rs

index 98dd2e89493c234eb3423385127bb62c705b8fb6..d812e5eb5b22b4a3d956fd11e661e1921a45fff4 100644 (file)
@@ -88,6 +88,7 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
         Some("dev") | None => CompileMode::Build,
         Some("test") => CompileMode::Test,
         Some("bench") => CompileMode::Bench,
+        Some("check") => CompileMode::Check,
         Some(mode) => {
             let err = human(format!("unknown profile: `{}`, use dev,
                                      test, or bench", mode));
index 812240908ca631c5d1e87d322c603b2cf5807d3d..3d1f274498f3a443573414f861b53ab7a3c26a1e 100644 (file)
@@ -153,10 +153,6 @@ impl Fingerprint {
                 })?;
                 let mtime = FileTime::from_last_modification_time(&meta);
                 *slot.0.lock().unwrap() = Some(mtime);
-                // if let Ok(meta) = fs::metadata(path) {
-                //     let mtime = FileTime::from_last_modification_time(&meta);
-                //     *slot.0.lock().unwrap() = Some(mtime);
-                // }
             }
             LocalFingerprint::Precalculated(..) => return Ok(())
         }
index 63382c10cb9f8a5aef16fdfe61dc08209750b3e0..501480e24ead37542817bc5a20dd3d50a058fc9e 100644 (file)
@@ -47,7 +47,7 @@ impl Config {
             rustdoc: LazyCell::new(),
             extra_verbose: Cell::new(false),
             frozen: Cell::new(false),
-            locked: Cell::new(false),   
+            locked: Cell::new(false),
         }
     }
 
index cf039898d438e63de8b531e04f9cfdd0a3132494..b01d88e952d95daa848e7577b56caedfff635c81 100644 (file)
@@ -300,3 +300,86 @@ fn issue_3419() {
     assert_that(foo.cargo_process("check"),
                 execs().with_status(0));
 }
+
+// test `cargo rustc --profile check`
+#[test]
+fn rustc_check() {
+    if !is_nightly() {
+        return
+    }
+    let foo = project("foo")
+        .file("Cargo.toml", r#"
+            [package]
+            name = "foo"
+            version = "0.0.1"
+            authors = []
+
+            [dependencies.bar]
+            path = "../bar"
+        "#)
+        .file("src/main.rs", r#"
+            extern crate bar;
+            fn main() {
+                ::bar::baz();
+            }
+        "#);
+    let bar = project("bar")
+        .file("Cargo.toml", r#"
+            [package]
+            name = "bar"
+            version = "0.1.0"
+            authors = []
+        "#)
+        .file("src/lib.rs", r#"
+            pub fn baz() {}
+        "#);
+    bar.build();
+
+    assert_that(foo.cargo_process("rustc")
+                   .arg("--profile")
+                   .arg("check")
+                   .arg("--")
+                   .arg("--emit=metadata"),
+                execs().with_status(0));
+}
+
+#[test]
+fn rustc_check_err() {
+    if !is_nightly() {
+        return
+    }
+    let foo = project("foo")
+        .file("Cargo.toml", r#"
+            [package]
+            name = "foo"
+            version = "0.0.1"
+            authors = []
+
+            [dependencies.bar]
+            path = "../bar"
+        "#)
+        .file("src/main.rs", r#"
+            extern crate bar;
+            fn main() {
+                ::bar::qux();
+            }
+        "#);
+    let bar = project("bar")
+        .file("Cargo.toml", r#"
+            [package]
+            name = "bar"
+            version = "0.1.0"
+            authors = []
+        "#)
+        .file("src/lib.rs", r#"
+            pub fn baz() {}
+        "#);
+    bar.build();
+
+    assert_that(foo.cargo_process("rustc")
+                   .arg("--profile")
+                   .arg("check")
+                   .arg("--")
+                   .arg("--emit=metadata"),
+                execs().with_status(101));
+}