From 5c9a1269113eb34e88f207241ad6a065656c6e67 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 4 Oct 2023 13:00:37 -0500 Subject: [PATCH] test(toml): Verify existing version-less behavior --- tests/testsuite/check.rs | 29 +++++++++++++++++++ tests/testsuite/metadata.rs | 55 +++++++++++++++++++++++++++++++++++++ tests/testsuite/package.rs | 30 ++++++++++++++++++++ tests/testsuite/publish.rs | 30 ++++++++++++++++++++ 4 files changed, 144 insertions(+) diff --git a/tests/testsuite/check.rs b/tests/testsuite/check.rs index b74bd6209..8391e8eb5 100644 --- a/tests/testsuite/check.rs +++ b/tests/testsuite/check.rs @@ -1496,3 +1496,32 @@ fn check_unused_manifest_keys() { ) .run(); } + +#[cargo_test] +fn versionless_package() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + description = "foo" + "#, + ) + .file("src/lib.rs", "") + .build(); + p.cargo("check") + .with_stderr( + r#"error: failed to parse manifest at `[CWD]/Cargo.toml` + +Caused by: + TOML parse error at line 2, column 17 + | + 2 | [package] + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + missing field `version` +"#, + ) + .with_status(101) + .run(); +} diff --git a/tests/testsuite/metadata.rs b/tests/testsuite/metadata.rs index fbead4dea..659514b3a 100644 --- a/tests/testsuite/metadata.rs +++ b/tests/testsuite/metadata.rs @@ -4257,3 +4257,58 @@ fn workspace_metadata_with_dependencies_no_deps_artifact() { ) .run(); } + +#[cargo_test] +fn versionless_packages() { + let p = project() + .file( + "Cargo.toml", + r#" + [workspace] + members = ["bar", "baz"] + "#, + ) + .file( + "bar/Cargo.toml", + r#" + [package] + name = "bar" + + [dependencies] + foobar = "0.0.1" + baz = { path = "../baz/" } + "#, + ) + .file("bar/src/lib.rs", "") + .file( + "baz/Cargo.toml", + r#" + [package] + name = "baz" + + [dependencies] + foobar = "0.0.1" + "#, + ) + .file("baz/src/lib.rs", "") + .build(); + Package::new("foobar", "0.0.1").publish(); + + p.cargo("metadata -q --format-version 1") + .with_stderr( + r#"error: failed to load manifest for workspace member `[CWD]/bar` + +Caused by: + failed to parse manifest at `[CWD]/bar/Cargo.toml` + +Caused by: + TOML parse error at line 2, column 17 + | + 2 | [package] + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + missing field `version` +"#, + ) + .with_status(101) + .run(); +} diff --git a/tests/testsuite/package.rs b/tests/testsuite/package.rs index 8a7334d89..fd4f1a20a 100644 --- a/tests/testsuite/package.rs +++ b/tests/testsuite/package.rs @@ -3095,3 +3095,33 @@ src/main.rs &[], ); } + +#[cargo_test] +fn versionless_package() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + description = "foo" + "#, + ) + .file("src/main.rs", r#"fn main() { println!("hello"); }"#) + .build(); + + p.cargo("package") + .with_stderr( + r#"error: failed to parse manifest at `[CWD]/Cargo.toml` + +Caused by: + TOML parse error at line 2, column 17 + | + 2 | [package] + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + missing field `version` +"#, + ) + .with_status(101) + .run(); +} diff --git a/tests/testsuite/publish.rs b/tests/testsuite/publish.rs index 67569bf3b..585a3bb6f 100644 --- a/tests/testsuite/publish.rs +++ b/tests/testsuite/publish.rs @@ -3004,3 +3004,33 @@ Caused by: .with_status(101) .run(); } + +#[cargo_test] +fn versionless_package() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + description = "foo" + "#, + ) + .file("src/main.rs", r#"fn main() { println!("hello"); }"#) + .build(); + + p.cargo("publish") + .with_stderr( + r#"error: failed to parse manifest at `[CWD]/Cargo.toml` + +Caused by: + TOML parse error at line 2, column 17 + | + 2 | [package] + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + missing field `version` +"#, + ) + .with_status(101) + .run(); +}