Skip to content
Extraits de code Groupes Projets
Valider 7a9c85d5 rédigé par Rodrigo Braz Monteiro's avatar Rodrigo Braz Monteiro
Parcourir les fichiers

Originally committed to SVN as r2450.
parent d8a85d01
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -94,6 +94,7 @@ public:
controller->LoadFile(fileFolder+"out_test1.ass","UTF-8");
CPPUNIT_ASSERT_NO_THROW(controller->SaveFile(fileFolder+"out_test2.ass","UTF-8"));
CPPUNIT_ASSERT(AreFilesIdentical(fileFolder+"out_test1.ass",fileFolder+"out_test2.ass"));
CPPUNIT_ASSERT(AreFilesIdentical(fileFolder+"in_test1.ass",fileFolder+"out_test1.ass") == false);
}
};
......
......@@ -33,14 +33,42 @@
// Contact: mailto:zeratul@cellosoft.com
//
#include <wx/wxprec.h>
#include <fstream>
#include <iostream>
#include "utils.h"
#include "../../aegisub/md5.h"
bool AreFilesIdentical(std::string file1, std::string file2)
{
return GetFileMD5(file1) == GetFileMD5(file2);
std::string f1 = GetFileMD5(file1);
std::string f2 = GetFileMD5(file2);
return f1 == f2;
}
std::string GetFileMD5(std::string file) {
md5_state_s md5;
md5_byte_t digest[16];
const size_t toRead = 512;
md5_byte_t data[toRead];
std::ifstream fp(file.c_str());
if (fp.is_open()) {
md5_init(&md5);
while (!fp.eof()) {
fp.read((char*)data,toRead);
size_t n = fp.gcount();
md5_append(&md5,data,n);
}
md5_finish(&md5,digest);
unsigned int *res = (unsigned int*) digest;
return std::string(wxString::Format(_T("%08X%08X%08X%08X"),res[0],res[1],res[2],res[3]).mb_str(wxConvUTF8));
}
else {
return "";
}
}
......@@ -176,28 +176,40 @@
RelativePath=".\src\suites.h"
>
</File>
</Filter>
<Filter
Name="Athenasub"
>
<File
RelativePath=".\src\utils.cpp"
RelativePath=".\src\athenasub\test_file.cpp"
>
</File>
<File
RelativePath=".\src\utils.h"
RelativePath=".\src\athenasub\test_string.cpp"
>
</File>
<File
RelativePath=".\src\athenasub\test_time.cpp"
>
</File>
</Filter>
<Filter
Name="Athenasub"
Name="Utils"
>
<File
RelativePath=".\src\athenasub\test_file.cpp"
RelativePath="..\aegisub\md5.c"
>
</File>
<File
RelativePath=".\src\athenasub\test_string.cpp"
RelativePath="..\aegisub\md5.h"
>
</File>
<File
RelativePath=".\src\athenasub\test_time.cpp"
RelativePath=".\src\utils.cpp"
>
</File>
<File
RelativePath=".\src\utils.h"
>
</File>
</Filter>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter