From 850fbdc0b5e842a51d37f50cbd824c55a5a3d2ea Mon Sep 17 00:00:00 2001 From: Ray Tung Date: Tue, 3 Oct 2017 23:18:08 +1100 Subject: [PATCH] Removed extraneous logic that generates [root] in cargo.lock --- src/cargo/ops/lockfile.rs | 18 +----------------- tests/bad-config.rs | 6 +++--- tests/generate-lockfile.rs | 4 ++-- tests/git.rs | 2 +- tests/install.rs | 2 +- tests/lockfile-compat.rs | 35 ++++++++++++++++++++++++++++------- tests/overrides.rs | 2 +- tests/workspaces.rs | 2 +- 8 files changed, 38 insertions(+), 33 deletions(-) diff --git a/src/cargo/ops/lockfile.rs b/src/cargo/ops/lockfile.rs index 64de6f1ea..6fa4e2f71 100644 --- a/src/cargo/ops/lockfile.rs +++ b/src/cargo/ops/lockfile.rs @@ -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(); diff --git a/tests/bad-config.rs b/tests/bad-config.rs index cff576dbb..06e581005 100644 --- a/tests/bad-config.rs +++ b/tests/bad-config.rs @@ -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 = [ diff --git a/tests/generate-lockfile.rs b/tests/generate-lockfile.rs index 94432e4f6..2151f45e5 100644 --- a/tests/generate-lockfile.rs +++ b/tests/generate-lockfile.rs @@ -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); } diff --git a/tests/git.rs b/tests/git.rs index ca0f209f3..7328a1e56 100644 --- a/tests/git.rs +++ b/tests/git.rs @@ -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 = [ diff --git a/tests/install.rs b/tests/install.rs index 3ed4bf0d9..a753697af 100644 --- a/tests/install.rs +++ b/tests/install.rs @@ -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" ] diff --git a/tests/lockfile-compat.rs b/tests/lockfile-compat.rs index 00eacebbf..39a7426a5 100644 --- a/tests/lockfile-compat.rs +++ b/tests/lockfile-compat.rs @@ -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 = [ diff --git a/tests/overrides.rs b/tests/overrides.rs index 0941f774d..0a022650f 100644 --- a/tests/overrides.rs +++ b/tests/overrides.rs @@ -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 = [ diff --git a/tests/workspaces.rs b/tests/workspaces.rs index 68e9468f0..2e2dc1b32 100644 --- a/tests/workspaces.rs +++ b/tests/workspaces.rs @@ -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"