File tree Expand file tree Collapse file tree
fixtures/optional_non_dev_dep Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- / target
1+ target
Original file line number Diff line number Diff line change 1+ [package ]
2+ name = " optional_non_dev_dep"
3+ version = " 0.1.0"
4+ edition = " 2024"
5+ publish = false
6+
7+ [dependencies ]
8+ libz-rs-sys = { version = " =0.5.5" , optional = true }
9+
10+ [dev-dependencies ]
11+ libz-rs-sys = " =0.5.5"
12+
13+ [workspace ]
Original file line number Diff line number Diff line change 1+ pub fn add ( left : u64 , right : u64 ) -> u64 {
2+ left + right
3+ }
4+
5+ #[ cfg( test) ]
6+ mod tests {
7+ use super :: * ;
8+
9+ #[ test]
10+ fn it_works ( ) {
11+ let result = add ( 2 , 2 ) ;
12+ assert_eq ! ( result, 4 ) ;
13+ }
14+ }
Original file line number Diff line number Diff line change @@ -231,7 +231,7 @@ pub fn comma_separated_list(list: &[String]) -> String {
231231#[ cfg( test) ]
232232mod tests {
233233 use super :: { sourced_dependencies_from_metadata, SourcedPackage } ;
234- use cargo_metadata:: Metadata ;
234+ use cargo_metadata:: { Metadata , MetadataCommand } ;
235235 use std:: {
236236 cmp:: Ordering ,
237237 env:: var,
@@ -281,7 +281,8 @@ mod tests {
281281 }
282282 }
283283
284- // `cargo` has `snapbox` as a dev dependency. `snapbox` has `snapbox-macros` as a normal dependency.
284+ // `cargo` has `snapbox` as a dev dependency. `snapbox` has `snapbox-macros` as a normal
285+ // dependency.
285286
286287 #[ test]
287288 fn cargo ( ) {
@@ -306,6 +307,22 @@ mod tests {
306307 assert ! ( deps. iter( ) . any( |dep| dep. package. name == "snapbox-macros" ) ) ;
307308 }
308309
310+ #[ test]
311+ fn optional_dependency_excluded_when_not_activated ( ) {
312+ let metadata = MetadataCommand :: new ( )
313+ . current_dir ( "fixtures/optional_non_dev_dep" )
314+ . exec ( )
315+ . unwrap ( ) ;
316+
317+ let deps = sourced_dependencies_from_metadata ( metadata. clone ( ) , false ) . unwrap ( ) ;
318+ assert ! ( deps. iter( ) . any( |dep| dep. package. name == "libz-rs-sys" ) ) ;
319+
320+ let deps_no_dev = sourced_dependencies_from_metadata ( metadata, true ) . unwrap ( ) ;
321+ assert ! ( !deps_no_dev
322+ . iter( )
323+ . any( |dep| dep. package. name == "libz-rs-sys" ) ) ;
324+ }
325+
309326 fn sourced_dependencies_from_file ( path : impl AsRef < Path > ) -> Vec < SourcedPackage > {
310327 let contents = read_to_string ( path) . unwrap ( ) ;
311328 serde_json:: from_str :: < Vec < SourcedPackage > > ( & contents) . unwrap ( )
You can’t perform that action at this time.
0 commit comments