From 7a9c85d577a466494889d1309998979feefa5167 Mon Sep 17 00:00:00 2001 From: Rodrigo Braz Monteiro Date: Tue, 11 Nov 2008 04:10:20 +0000 Subject: [PATCH] Originally committed to SVN as r2450. --- unit_test/src/athenasub/test_file.cpp | 1 + unit_test/src/utils.cpp | 32 +++++++++++++++++++++++++-- unit_test/unit_test.vcproj | 28 ++++++++++++++++------- 3 files changed, 51 insertions(+), 10 deletions(-) diff --git a/unit_test/src/athenasub/test_file.cpp b/unit_test/src/athenasub/test_file.cpp index 6369c11c1..f300ebabe 100644 --- a/unit_test/src/athenasub/test_file.cpp +++ b/unit_test/src/athenasub/test_file.cpp @@ -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); } }; diff --git a/unit_test/src/utils.cpp b/unit_test/src/utils.cpp index 253bce69c..bb3d07453 100644 --- a/unit_test/src/utils.cpp +++ b/unit_test/src/utils.cpp @@ -33,14 +33,42 @@ // Contact: mailto:zeratul@cellosoft.com // +#include +#include +#include #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) { - return ""; + 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 ""; + } } diff --git a/unit_test/unit_test.vcproj b/unit_test/unit_test.vcproj index c847b907d..00af86c6b 100644 --- a/unit_test/unit_test.vcproj +++ b/unit_test/unit_test.vcproj @@ -176,14 +176,6 @@ RelativePath=".\src\suites.h" > - - - - + + + + + + + + + +