@@ -6028,18 +6028,21 @@ fn registry_inferred_from_unique_option() {
60286028
60296029 p. cargo ( "package -Zpackage-workspace" )
60306030 . masquerade_as_nightly_cargo ( & [ "package-workspace" ] )
6031- . with_status ( 101 )
60326031 . with_stderr_data ( str![ [ r#"
60336032[PACKAGING] dep v0.1.0 ([ROOT]/foo/dep)
60346033[PACKAGED] 3 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
60356034[PACKAGING] main v0.0.1 ([ROOT]/foo/main)
60366035[UPDATING] `alternative` index
6037- [ERROR] failed to prepare local package for uploading
6038-
6039- Caused by:
6040- no matching package named `dep` found
6041- location searched: registry `alternative`
6042- required by package `main v0.0.1 ([ROOT]/foo/main)`
6036+ [PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
6037+ [VERIFYING] dep v0.1.0 ([ROOT]/foo/dep)
6038+ [COMPILING] dep v0.1.0 ([ROOT]/foo/target/package/dep-0.1.0)
6039+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
6040+ [VERIFYING] main v0.0.1 ([ROOT]/foo/main)
6041+ [UPDATING] `alternative` index
6042+ [UNPACKING] dep v0.1.0 (registry `[ROOT]/foo/target/package/tmp-registry`)
6043+ [COMPILING] dep v0.1.0 (registry `alternative`)
6044+ [COMPILING] main v0.0.1 ([ROOT]/foo/target/package/main-0.0.1)
6045+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
60436046
60446047"# ] ] )
60456048 . run ( ) ;
@@ -6100,8 +6103,7 @@ fn registry_not_inferred_because_of_missing_option() {
61006103 . masquerade_as_nightly_cargo ( & [ "package-workspace" ] )
61016104 . with_status ( 101 )
61026105 . with_stderr_data ( str![ [ r#"
6103- [ERROR] `dep` cannot be packaged.
6104- The registry `crates-io` is not listed in the `package.publish` value in Cargo.toml.
6106+ [ERROR] `package.publish` settings have no registry in common
61056107
61066108"# ] ] )
61076109 . run ( ) ;
@@ -6121,11 +6123,104 @@ The registry `alternative` is not listed in the `package.publish` value in Cargo
61216123 alt_reg. index_url( )
61226124 ) )
61236125 . masquerade_as_nightly_cargo ( & [ "package-workspace" ] )
6124- . with_status ( 101 )
61256126 . with_stderr_data ( str![ [ r#"
6126- [ERROR] `dep` cannot be packaged.
6127- The registry `crates-io` is not listed in the `package.publish` value in Cargo.toml.
6127+ [PACKAGING] dep v0.1.0 ([ROOT]/foo/dep)
6128+ [PACKAGED] 3 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
6129+ [PACKAGING] main v0.0.1 ([ROOT]/foo/main)
6130+ [UPDATING] `alternative` index
6131+ [PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
6132+ [VERIFYING] dep v0.1.0 ([ROOT]/foo/dep)
6133+ [COMPILING] dep v0.1.0 ([ROOT]/foo/target/package/dep-0.1.0)
6134+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
6135+ [VERIFYING] main v0.0.1 ([ROOT]/foo/main)
6136+ [UPDATING] `alternative` index
6137+ [UNPACKING] dep v0.1.0 (registry `[ROOT]/foo/target/package/tmp-registry`)
6138+ [COMPILING] dep v0.1.0 (registry `alternative`)
6139+ [COMPILING] main v0.0.1 ([ROOT]/foo/target/package/main-0.0.1)
6140+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
61286141
61296142"# ] ] )
61306143 . run ( ) ;
61316144}
6145+
6146+ #[ cargo_test]
6147+ fn registry_not_inferred_because_of_multiple_options ( ) {
6148+ let alt_reg = registry:: RegistryBuilder :: new ( )
6149+ . http_api ( )
6150+ . http_index ( )
6151+ . alternative ( )
6152+ . build ( ) ;
6153+
6154+ let p = project ( )
6155+ . file (
6156+ "Cargo.toml" ,
6157+ r#"
6158+ [workspace]
6159+ members = ["dep", "main"]
6160+ "# ,
6161+ )
6162+ . file (
6163+ "main/Cargo.toml" ,
6164+ r#"
6165+ [package]
6166+ name = "main"
6167+ version = "0.0.1"
6168+ edition = "2015"
6169+ authors = []
6170+ license = "MIT"
6171+ description = "main"
6172+ repository = "bar"
6173+ publish = ["alternative", "alternative2"]
6174+
6175+ [dependencies]
6176+ dep = { path = "../dep", version = "0.1.0", registry = "alternative" }
6177+ "# ,
6178+ )
6179+ . file ( "main/src/main.rs" , "fn main() {}" )
6180+ . file (
6181+ "dep/Cargo.toml" ,
6182+ r#"
6183+ [package]
6184+ name = "dep"
6185+ version = "0.1.0"
6186+ edition = "2015"
6187+ authors = []
6188+ license = "MIT"
6189+ description = "dep"
6190+ repository = "bar"
6191+ publish = ["alternative", "alternative2"]
6192+ "# ,
6193+ )
6194+ . file ( "dep/src/lib.rs" , "" )
6195+ . build ( ) ;
6196+
6197+ p. cargo ( "package -Zpackage-workspace" )
6198+ . masquerade_as_nightly_cargo ( & [ "package-workspace" ] )
6199+ . with_status ( 101 )
6200+ . with_stderr_data ( str![ [ r#"
6201+ [ERROR] --registry needed to disambiguate between alternative or alternative2 registries
6202+
6203+ "# ] ] )
6204+ . run ( ) ;
6205+
6206+ p. cargo ( "package -Zpackage-workspace --registry=alternative" )
6207+ . masquerade_as_nightly_cargo ( & [ "package-workspace" ] )
6208+ . with_stderr_data ( str![ [ r#"
6209+ [PACKAGING] dep v0.1.0 ([ROOT]/foo/dep)
6210+ [PACKAGED] 3 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
6211+ [PACKAGING] main v0.0.1 ([ROOT]/foo/main)
6212+ [UPDATING] `alternative` index
6213+ [PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
6214+ [VERIFYING] dep v0.1.0 ([ROOT]/foo/dep)
6215+ [COMPILING] dep v0.1.0 ([ROOT]/foo/target/package/dep-0.1.0)
6216+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
6217+ [VERIFYING] main v0.0.1 ([ROOT]/foo/main)
6218+ [UPDATING] `alternative` index
6219+ [UNPACKING] dep v0.1.0 (registry `[ROOT]/foo/target/package/tmp-registry`)
6220+ [COMPILING] dep v0.1.0 (registry `alternative`)
6221+ [COMPILING] main v0.0.1 ([ROOT]/foo/target/package/main-0.0.1)
6222+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
6223+
6224+ "# ] ] )
6225+ . run ( ) ;
6226+ }
0 commit comments