]> git.proxmox.com Git - cargo.git/commitdiff
Removed extraneous logic that generates [root] in cargo.lock
authorRay Tung <raytung@users.noreply.github.com>
Tue, 3 Oct 2017 12:18:08 +0000 (23:18 +1100)
committerRay Tung <raytung@users.noreply.github.com>
Tue, 3 Oct 2017 12:18:08 +0000 (23:18 +1100)
src/cargo/ops/lockfile.rs
tests/bad-config.rs
tests/generate-lockfile.rs
tests/git.rs
tests/install.rs
tests/lockfile-compat.rs
tests/overrides.rs
tests/workspaces.rs

index 64de6f1ea37a1fe058ef0c9d9939d01555a738d9..6fa4e2f7143bdbcdbf7c638275d6ea3e24b074e0 100644 (file)
@@ -40,30 +40,14 @@ pub fn write_pkg_lockfile(ws: &Workspace, resolve: &Resolve) -> CargoResult<()>
         Ok(s)
     });
 
-    // Forward compatibility: if `orig` uses rootless format
-    // from the future, do the same.
-    let use_root_key = if let Ok(ref orig) = orig {
-        !orig.starts_with("[[package]]")
-    } else {
-        true
-    };
-
     let toml = toml::Value::try_from(WorkspaceResolve {
         ws: ws,
         resolve: resolve,
-        use_root_key: use_root_key,
+        use_root_key: false,
     }).unwrap();
 
     let mut out = String::new();
 
-    // Note that we do not use e.toml.to_string() as we want to control the
-    // exact format the toml is in to ensure pretty diffs between updates to the
-    // lockfile.
-    if let Some(root) = toml.get("root") {
-        out.push_str("[root]\n");
-        emit_package(root.as_table().unwrap(), &mut out);
-    }
-
     let deps = toml["package"].as_array().unwrap();
     for dep in deps.iter() {
         let dep = dep.as_table().unwrap();
index cff576dbb4722866e3960ef76d26563f8f9f5e90..06e581005597c7cb62ae70a775b4fe9822feda23 100644 (file)
@@ -256,7 +256,7 @@ fn duplicate_packages_in_cargo_lock() {
         "#)
         .file("src/lib.rs", "")
         .file("Cargo.lock", r#"
-            [root]
+            [[package]]
             name = "bar"
             version = "0.0.1"
             dependencies = [
@@ -300,7 +300,7 @@ fn bad_source_in_cargo_lock() {
         "#)
         .file("src/lib.rs", "")
         .file("Cargo.lock", r#"
-            [root]
+            [[package]]
             name = "bar"
             version = "0.0.1"
             dependencies = [
@@ -334,7 +334,7 @@ fn bad_dependency_in_lockfile() {
         "#)
         .file("src/lib.rs", "")
         .file("Cargo.lock", r#"
-            [root]
+            [[package]]
             name = "foo"
             version = "0.0.1"
             dependencies = [
index 94432e4f64583d9726a5c300f0c386f7c41ccaeb..2151f45e51cbca7c1a641b6ea3297f6966740233 100644 (file)
@@ -145,7 +145,7 @@ fn preserve_line_endings_issue_2076() {
 
     let lock0 = p.read_lockfile();
 
-    assert!(lock0.starts_with("[root]\n"));
+    assert!(lock0.starts_with("[[package]]\n"));
 
     let lock1 = lock0.replace("\n", "\r\n");
     {
@@ -157,7 +157,7 @@ fn preserve_line_endings_issue_2076() {
 
     let lock2 = p.read_lockfile();
 
-    assert!(lock2.starts_with("[root]\r\n"));
+    assert!(lock2.starts_with("[[package]]\r\n"));
     assert_eq!(lock1, lock2);
 }
 
index ca0f209f39f186b75d6951c7745fdc5fe2b17117..7328a1e56ae70fdf7e68b462a990b26e697aa363 100644 (file)
@@ -971,7 +971,7 @@ fn stale_cached_version() {
     let rev = repo.revparse_single("HEAD").unwrap().id();
 
     File::create(&foo.root().join("Cargo.lock")).unwrap().write_all(format!(r#"
-        [root]
+        [[package]]
         name = "foo"
         version = "0.0.0"
         dependencies = [
index 3ed4bf0d9a51f120ef7dd258ef60f7b3976bee26..a753697afcd6e2e3563a8c363f63269a1effd9ca 100644 (file)
@@ -829,7 +829,7 @@ fn git_with_lockfile() {
         "#)
         .file("bar/src/lib.rs", "fn main() {}")
         .file("Cargo.lock", r#"
-            [root]
+            [[package]]
             name = "foo"
             version = "0.1.0"
             dependencies = [ "bar 0.1.0" ]
index 00eacebbfcbce4c6e585e789d304c02a187c8a58..39a7426a520604bcf8dc4b975123e079e38b9603 100644 (file)
@@ -10,6 +10,23 @@ use hamcrest::assert_that;
 fn oldest_lockfile_still_works() {
     Package::new("foo", "0.1.0").publish();
 
+    let expected_lock_file =
+r#"[[package]]
+name = "bar"
+version = "0.0.1"
+dependencies = [
+ "foo 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "foo"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[metadata]
+"checksum foo 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "[..]"
+"#;
+
     let lockfile = r#"
 [root]
 name = "bar"
@@ -42,7 +59,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
                 execs().with_status(0));
 
     let lock = p.read_lockfile();
-    assert!(lock.starts_with(lockfile.trim()));
+    for (l, r) in expected_lock_file.lines().zip(lock.lines()) {
+        assert!(lines_match(l, r), "Lines differ:\n{}\n\n{}", l, r);
+    }
+
+    assert_eq!(lock.lines().count(), expected_lock_file.lines().count());
 }
 
 #[test]
@@ -61,7 +82,7 @@ fn totally_wild_checksums_works() {
         "#)
         .file("src/lib.rs", "")
         .file("Cargo.lock", r#"
-[root]
+[[package]]
 name = "bar"
 version = "0.0.1"
 dependencies = [
@@ -85,7 +106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
     let lock = p.read_lockfile();
     assert!(lock.starts_with(r#"
-[root]
+[[package]]
 name = "bar"
 version = "0.0.1"
 dependencies = [
@@ -117,7 +138,7 @@ fn wrong_checksum_is_an_error() {
         "#)
         .file("src/lib.rs", "")
         .file("Cargo.lock", r#"
-[root]
+[[package]]
 name = "bar"
 version = "0.0.1"
 dependencies = [
@@ -170,7 +191,7 @@ fn unlisted_checksum_is_bad_if_we_calculate() {
         "#)
         .file("src/lib.rs", "")
         .file("Cargo.lock", r#"
-[root]
+[[package]]
 name = "bar"
 version = "0.0.1"
 dependencies = [
@@ -230,7 +251,7 @@ fn listed_checksum_bad_if_we_cannot_compute() {
         "#, git.url()))
         .file("src/lib.rs", "")
         .file("Cargo.lock", &format!(r#"
-[root]
+[[package]]
 name = "bar"
 version = "0.0.1"
 dependencies = [
@@ -287,7 +308,7 @@ fn current_lockfile_format() {
     let actual = p.read_lockfile();
 
     let expected = "\
-[root]
+[[package]]
 name = \"bar\"
 version = \"0.0.1\"
 dependencies = [
index 0941f774dea45a724effc48e387da807aae35d2e..0a022650f674dfa59396a2d043c6204a2d7d8902 100644 (file)
@@ -802,7 +802,7 @@ fn override_an_override() {
             "serde:0.8.0" = { path = "serde" }
         "#)
         .file("Cargo.lock", r#"
-            [root]
+            [[package]]
             name = "local"
             version = "0.0.1"
             dependencies = [
index 68e9468f008b2075efb6d2d29fb0a865e47a197d..2e2dc1b32a161871e9a55e56e345613250c69900 100644 (file)
@@ -961,7 +961,7 @@ fn lockfile_can_specify_nonexistant_members() {
         "#)
         .file("a/src/main.rs", "fn main() {}")
         .file("Cargo.lock", r#"
-            [root]
+            [[package]]
             name = "a"
             version = "0.1.0"