File tree 1 file changed +44
-0
lines changed 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -50,6 +50,50 @@ fn add_vendor_config(p: &Project) {
50
50
) ;
51
51
}
52
52
53
+ #[ cargo_test]
54
+ fn package_exclude ( ) {
55
+ let p = project ( )
56
+ . file (
57
+ "Cargo.toml" ,
58
+ r#"
59
+ [package]
60
+ name = "foo"
61
+ version = "0.1.0"
62
+
63
+ [dependencies]
64
+ bar = "0.1.0"
65
+ "# ,
66
+ )
67
+ . file ( "src/lib.rs" , "" )
68
+ . build ( ) ;
69
+
70
+ Package :: new ( "bar" , "0.1.0" )
71
+ . file (
72
+ "Cargo.toml" ,
73
+ r#"
74
+ [package]
75
+ name = "bar"
76
+ version = "0.1.0"
77
+ exclude = [".*", "!.include", "!.dotdir/include"]
78
+ "# ,
79
+ )
80
+ . file ( "src/lib.rs" , "" )
81
+ . file ( ".exclude" , "" )
82
+ . file ( ".include" , "" )
83
+ . file ( ".dotdir/exclude" , "" )
84
+ . file ( ".dotdir/include" , "" )
85
+ . publish ( ) ;
86
+
87
+ p. cargo ( "vendor --respect-source-config" ) . run ( ) ;
88
+ let csum = dbg ! ( p. read_file( "vendor/bar/.cargo-checksum.json" ) ) ;
89
+ assert ! ( csum. contains( ".include" ) ) ;
90
+ assert ! ( !csum. contains( ".exclude" ) ) ;
91
+ assert ! ( !csum. contains( ".dotdir/exclude" ) ) ;
92
+ // Gitignore doesn't re-include a file in an excluded parent directory,
93
+ // even if negating it explicitly.
94
+ assert ! ( !csum. contains( ".dotdir/include" ) ) ;
95
+ }
96
+
53
97
#[ cargo_test]
54
98
fn two_versions ( ) {
55
99
let p = project ( )
You can’t perform that action at this time.
0 commit comments