@@ -262,26 +262,53 @@ TEST( ARIOTest, basic_header_save )
262262 ASSERT_EQ ( oss.str (), " !<arch>\n " );
263263}
264264
265+ void compare_archives ( const ario& archive1, const ario& archive2 )
266+ {
267+ ASSERT_EQ ( archive1.members .size (), archive2.members .size () );
268+
269+ for ( size_t i = 0 ; i < archive1.members .size (); ++i ) {
270+ EXPECT_EQ ( archive1.members [i].name , archive2.members [i].name );
271+ EXPECT_EQ ( archive1.members [i].date , archive2.members [i].date );
272+ EXPECT_EQ ( archive1.members [i].uid , archive2.members [i].uid );
273+ EXPECT_EQ ( archive1.members [i].gid , archive2.members [i].gid );
274+ EXPECT_EQ ( archive1.members [i].mode , archive2.members [i].mode );
275+ EXPECT_EQ ( archive1.members [i].size , archive2.members [i].size );
276+ EXPECT_EQ ( archive1.members [i].filepos , archive2.members [i].filepos );
277+ EXPECT_EQ ( archive1.members [i].data (), archive2.members [i].data () );
278+ }
279+ }
280+
265281// //////////////////////////////////////////////////////////////////////////////
266282TEST ( ARIOTest, header_save )
267283{
268284 ario archive;
269285 ASSERT_EQ ( archive.load ( " ario/simple_text.a" ).ok (), true );
270286
271287 // Save the archive to a new file
272- auto result = archive.save ( " ario/simple_text_saved.a" );
273- ASSERT_EQ ( result.ok (), true );
288+ ASSERT_EQ ( archive.save ( " ario/simple_text_saved.a" ).ok (), true );
274289
275290 // Load the saved archive and check its contents
276291 ario loaded_archive;
277292 ASSERT_EQ ( loaded_archive.load ( " ario/simple_text_saved.a" ).ok (), true );
278- ASSERT_EQ ( loaded_archive.members .size (), archive.members .size () );
279- EXPECT_EQ ( loaded_archive.members [0 ].name , archive.members [0 ].name );
280- EXPECT_EQ ( loaded_archive.members [0 ].size , archive.members [0 ].size );
281- EXPECT_EQ ( loaded_archive.members [archive.members .size () - 1 ].name ,
282- archive.members [archive.members .size () - 1 ].name );
283- EXPECT_EQ ( loaded_archive.members [archive.members .size () - 1 ].size ,
284- archive.members [archive.members .size () - 1 ].size );
293+
294+ compare_archives ( loaded_archive, archive );
295+ }
296+
297+ // //////////////////////////////////////////////////////////////////////////////
298+ TEST ( ARIOTest, long_name_dir_save )
299+ {
300+ ario archive;
301+ ASSERT_EQ ( archive.load ( " ario/long_name.a" ).ok (), true );
302+
303+ // Save the archive to a new file
304+ auto result = archive.save ( " ario/long_name_saved.a" );
305+ ASSERT_EQ ( result.ok (), true );
306+
307+ // Load the saved archive and check its contents
308+ ario loaded_archive;
309+ ASSERT_EQ ( loaded_archive.load ( " ario/long_name_saved.a" ).ok (), true );
310+
311+ compare_archives ( loaded_archive, archive );
285312}
286313
287314// //////////////////////////////////////////////////////////////////////////////
0 commit comments