File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2121,6 +2121,65 @@ fn vendor_rename_fallback() {
21212121 assert ! ( p. root( ) . join( "vendor/log/Cargo.toml" ) . exists( ) ) ;
21222122}
21232123
2124+ #[ cargo_test]
2125+ fn vendor_local_registry ( ) {
2126+
2127+ // A regression test for rust-lang/cargo#16412
2128+ let root = paths:: root ( ) ;
2129+ fs:: create_dir ( root. join ( ".cargo" ) ) . unwrap ( ) ;
2130+ fs:: write (
2131+ root. join ( ".cargo/config.toml" ) ,
2132+ r#"
2133+ [source.crates-io]
2134+ registry = 'https://wut'
2135+ replace-with = 'my-awesome-local-registry'
2136+
2137+ [source.my-awesome-local-registry]
2138+ local-registry = 'registry'
2139+ "# ,
2140+ ) . unwrap ( ) ;
2141+
2142+ Package :: new ( "bar" , "0.0.0" )
2143+ . local ( true )
2144+ . file ( "src/lib.rs" , "pub fn bar() {}" )
2145+ . publish ( ) ;
2146+
2147+ let p = project ( )
2148+ . file (
2149+ "Cargo.toml" ,
2150+ r#"
2151+ [package]
2152+ name = "foo"
2153+ edition = "2021"
2154+
2155+ [dependencies]
2156+ bar = "0.0.0"
2157+ "# ,
2158+ )
2159+ . file (
2160+ "src/lib.rs" ,
2161+ "pub fn foo() { bar::bar(); }" ,
2162+ )
2163+ . build ( ) ;
2164+
2165+ p. cargo ( "vendor --respect-source-config" )
2166+ . with_status ( 101 )
2167+ . with_stderr_data ( str![ [ r#"
2168+ [LOCKING] 1 package to latest compatible version
2169+ [UNPACKING] bar v0.0.0 (registry `[ROOT]/registry`)
2170+ Vendoring bar v0.0.0 ([ROOT]/home/.cargo/registry/src/-[HASH]/bar-0.0.0) to vendor/bar
2171+ [ERROR] failed to sync
2172+
2173+ Caused by:
2174+ failed to open [ROOT]/home/.cargo/registry/cache/-[HASH]/bar-0.0.0.crate
2175+
2176+ Caused by:
2177+ [NOT_FOUND]
2178+
2179+ "# ] ] )
2180+ . run ( ) ;
2181+ }
2182+
21242183#[ cargo_test]
21252184fn deterministic_mtime ( ) {
21262185 Package :: new ( "foo" , "0.1.0" )
You can’t perform that action at this time.
0 commit comments