@@ -323,18 +323,30 @@ mod tests {
323323 use crate :: core:: { GitReference , SourceKind } ;
324324 use url:: Url ;
325325
326+ #[ track_caller]
327+ fn ok ( spec : & str , expected : PackageIdSpec , expected_rendered : & str ) {
328+ let parsed = PackageIdSpec :: parse ( spec) . unwrap ( ) ;
329+ assert_eq ! ( parsed, expected) ;
330+ let rendered = parsed. to_string ( ) ;
331+ assert_eq ! ( rendered, expected_rendered) ;
332+ let reparsed = PackageIdSpec :: parse ( & rendered) . unwrap ( ) ;
333+ assert_eq ! ( reparsed, expected) ;
334+ }
335+
336+ macro_rules! err {
337+ ( $spec: expr, $expected: pat) => {
338+ let err = PackageIdSpec :: parse( $spec) . unwrap_err( ) ;
339+ let kind = err. 0 ;
340+ assert!(
341+ matches!( kind, $expected) ,
342+ "`{}` parse error mismatch, got {kind:?}" ,
343+ $spec
344+ ) ;
345+ } ;
346+ }
347+
326348 #[ test]
327349 fn good_parsing ( ) {
328- #[ track_caller]
329- fn ok ( spec : & str , expected : PackageIdSpec , expected_rendered : & str ) {
330- let parsed = PackageIdSpec :: parse ( spec) . unwrap ( ) ;
331- assert_eq ! ( parsed, expected) ;
332- let rendered = parsed. to_string ( ) ;
333- assert_eq ! ( rendered, expected_rendered) ;
334- let reparsed = PackageIdSpec :: parse ( & rendered) . unwrap ( ) ;
335- assert_eq ! ( reparsed, expected) ;
336- }
337-
338350 ok (
339351 "https://crates.io/foo" ,
340352 PackageIdSpec {
@@ -603,18 +615,6 @@ mod tests {
603615
604616 #[ test]
605617 fn bad_parsing ( ) {
606- macro_rules! err {
607- ( $spec: expr, $expected: pat) => {
608- let err = PackageIdSpec :: parse( $spec) . unwrap_err( ) ;
609- let kind = err. 0 ;
610- assert!(
611- matches!( kind, $expected) ,
612- "`{}` parse error mismatch, got {kind:?}" ,
613- $spec
614- ) ;
615- } ;
616- }
617-
618618 err ! ( "baz:" , ErrorKind :: PartialVersion ( _) ) ;
619619 err ! ( "baz:*" , ErrorKind :: PartialVersion ( _) ) ;
620620 err ! ( "baz@" , ErrorKind :: PartialVersion ( _) ) ;
0 commit comments