@@ -1276,7 +1276,7 @@ fn special_items_roundtrip() {
12761276 assert_eq ! ( tag. len( ) , 1 ) ;
12771277 assert_eq ! ( tag. artist( ) . as_deref( ) , Some ( "Foo Artist" ) ) ;
12781278
1279- let tag: Id3v2Tag = tag. into ( ) ;
1279+ let mut tag: Id3v2Tag = tag. into ( ) ;
12801280
12811281 assert_eq ! ( tag. frames. len( ) , 2 ) ;
12821282 assert_eq ! ( tag. artist( ) . as_deref( ) , Some ( "Foo Artist" ) ) ;
@@ -1286,7 +1286,13 @@ fn special_items_roundtrip() {
12861286 tag. dump_to ( & mut tag_bytes, WriteOptions :: default ( ) )
12871287 . unwrap ( ) ;
12881288
1289- let tag_re_read = read_tag_raw ( & tag_bytes[ ..] ) ;
1289+ let mut tag_re_read = read_tag_raw ( & tag_bytes[ ..] ) ;
1290+
1291+ // Ensure ordered comparison
1292+ tag. frames . sort_by_key ( |frame| frame. id ( ) . to_string ( ) ) ;
1293+ tag_re_read
1294+ . frames
1295+ . sort_by_key ( |frame| frame. id ( ) . to_string ( ) ) ;
12901296 assert_eq ! ( tag, tag_re_read) ;
12911297
12921298 // Now write from `Tag`
@@ -1296,6 +1302,10 @@ fn special_items_roundtrip() {
12961302 tag. dump_to ( & mut tag_bytes, WriteOptions :: default ( ) )
12971303 . unwrap ( ) ;
12981304
1299- let generic_tag_re_read = read_tag_raw ( & tag_bytes[ ..] ) ;
1305+ let mut generic_tag_re_read = read_tag_raw ( & tag_bytes[ ..] ) ;
1306+
1307+ generic_tag_re_read
1308+ . frames
1309+ . sort_by_key ( |frame| frame. id ( ) . to_string ( ) ) ;
13001310 assert_eq ! ( tag_re_read, generic_tag_re_read) ;
13011311}
0 commit comments