Removed extraneous logic that generates [root] in cargo.lock

This commit is contained in:
Ray Tung 2017-10-03 23:18:08 +11:00
parent 873a081019
commit 850fbdc0b5
8 changed files with 38 additions and 33 deletions

View 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();

View 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 = [

View 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);
}

View 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 = [

View 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" ]

View 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 = [

View 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 = [

View 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"