Skip to content

Commit a347bb0

Browse files
authored
Use compare_archives() for archive comparison
1 parent f8d6112 commit a347bb0

File tree

1 file changed

+36
-9
lines changed

1 file changed

+36
-9
lines changed

tests/ARIOTest.cpp

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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
////////////////////////////////////////////////////////////////////////////////
266282
TEST( 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

Comments
 (0)