@@ -4,7 +4,7 @@ use cargo_test_support::paths::CargoPathExt;
4
4
use cargo_test_support:: publish:: validate_crate_contents;
5
5
use cargo_test_support:: registry:: { self , Package } ;
6
6
use cargo_test_support:: {
7
- basic_manifest, cargo_process, git, path2url, paths, project, symlink_supported, t,
7
+ basic_manifest, cargo_process, git, path2url, paths, project, rustc_host , symlink_supported, t,
8
8
ProjectBuilder ,
9
9
} ;
10
10
use flate2:: read:: GzDecoder ;
@@ -1328,6 +1328,83 @@ fn package_two_kinds_of_deps() {
1328
1328
p. cargo ( "package --no-verify" ) . run ( ) ;
1329
1329
}
1330
1330
1331
+ #[ cargo_test( nightly, reason = "exported_private_dependencies lint is unstable" ) ]
1332
+ fn package_public_dep ( ) {
1333
+ Package :: new ( "bar" , "1.0.0" ) . publish ( ) ;
1334
+ Package :: new ( "baz" , "1.0.0" ) . publish ( ) ;
1335
+ let p = project ( )
1336
+ . file (
1337
+ "Cargo.toml" ,
1338
+ & format ! {
1339
+ r#"
1340
+ [package]
1341
+ name = "foo"
1342
+ version = "0.0.1"
1343
+ edition = "2015"
1344
+
1345
+ [dependencies]
1346
+ bar = {{ version = "1.0.0", public = true }}
1347
+
1348
+ [target.{host}.dependencies]
1349
+ baz = {{ version = "1.0.0", public = true }}
1350
+ "# ,
1351
+ host = rustc_host( )
1352
+ } ,
1353
+ )
1354
+ . file ( "src/main.rs" , "fn main() {}" )
1355
+ . build ( ) ;
1356
+ let rewritten_toml = format ! (
1357
+ r#"{}
1358
+ [package]
1359
+ edition = "2015"
1360
+ name = "foo"
1361
+ version = "0.0.1"
1362
+
1363
+ [dependencies.bar]
1364
+ version = "1.0.0"
1365
+
1366
+ [target.{host}.dependencies.baz]
1367
+ version = "1.0.0"
1368
+ "# ,
1369
+ cargo:: core:: package:: MANIFEST_PREAMBLE ,
1370
+ host = rustc_host( )
1371
+ ) ;
1372
+ verify ( & p, "package" , rewritten_toml) ;
1373
+
1374
+ let rewritten_toml = format ! (
1375
+ r#"{}
1376
+ [package]
1377
+ edition = "2015"
1378
+ name = "foo"
1379
+ version = "0.0.1"
1380
+
1381
+ [dependencies.bar]
1382
+ version = "1.0.0"
1383
+ public = true
1384
+
1385
+ [target.{host}.dependencies.baz]
1386
+ version = "1.0.0"
1387
+ public = true
1388
+ "# ,
1389
+ cargo:: core:: package:: MANIFEST_PREAMBLE ,
1390
+ host = rustc_host( )
1391
+ ) ;
1392
+ verify ( & p, "package -Zpublic-dependency" , rewritten_toml) ;
1393
+
1394
+ fn verify ( p : & cargo_test_support:: Project , cmd : & str , rewritten_toml : String ) {
1395
+ p. cargo ( cmd)
1396
+ . masquerade_as_nightly_cargo ( & [ "public-dependency" ] )
1397
+ . run ( ) ;
1398
+ let f = File :: open ( & p. root ( ) . join ( "target/package/foo-0.0.1.crate" ) ) . unwrap ( ) ;
1399
+ validate_crate_contents (
1400
+ f,
1401
+ "foo-0.0.1.crate" ,
1402
+ & [ "Cargo.toml" , "Cargo.toml.orig" , "Cargo.lock" , "src/main.rs" ] ,
1403
+ & [ ( "Cargo.toml" , & rewritten_toml) ] ,
1404
+ ) ;
1405
+ }
1406
+ }
1407
+
1331
1408
#[ cargo_test]
1332
1409
fn test_edition ( ) {
1333
1410
let p = project ( )
0 commit comments