summaryrefslogtreecommitdiff
path: root/test/StormTest.cpp
diff options
context:
space:
mode:
authorLadislav Zezula <ladislav.zezula@avg.com>2014-12-23 15:04:35 +0100
committerLadislav Zezula <ladislav.zezula@avg.com>2014-12-23 15:04:35 +0100
commite9842c38cf9c55f682b2a411cea84ee59d69ec92 (patch)
treee84f32cb42246743b1ce84e91910d855b0ee13a6 /test/StormTest.cpp
parent48b5cb606e5f1b407069a1babfb17ccbcb630e55 (diff)
+ Adding files into MPQs that have BlockTableSize > HashTableSize is not allowed
+ Compacting MPQs that have BlockTableSize > HashTableSize is allowed
Diffstat (limited to 'test/StormTest.cpp')
-rw-r--r--test/StormTest.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/test/StormTest.cpp b/test/StormTest.cpp
index 30a377b..70d6db0 100644
--- a/test/StormTest.cpp
+++ b/test/StormTest.cpp
@@ -2970,6 +2970,32 @@ static int ForEachFile_OpenArchive(const char * szFullPath)
// Adding a file to MPQ that had no (listfile) and no (attributes).
// We expect that neither of these will be present after the archive is closed
+static int TestAddFile_FullArchive(const char * szSourceMpq)
+{
+ TLogHelper Logger("FullMpqTest", szSourceMpq);
+ const char * szFileName = "AddedFile001.txt";
+ const char * szFileData = "0123456789ABCDEF";
+ HANDLE hMpq = NULL;
+ int nError = ERROR_SUCCESS;
+
+ // Copy the archive so we won't fuck up the original one
+ nError = OpenExistingArchiveWithCopy(&Logger, szSourceMpq, szSourceMpq, &hMpq);
+
+ // Add a file
+ if(nError == ERROR_SUCCESS)
+ {
+ // Now add a file
+ nError = AddFileToMpq(&Logger, hMpq, szFileName, szFileData, MPQ_FILE_IMPLODE, MPQ_COMPRESSION_PKWARE);
+ nError = (nError == ERROR_DISK_FULL) ? ERROR_SUCCESS : ERROR_FILE_CORRUPT;
+
+ SFileCloseArchive(hMpq);
+ }
+
+ return nError;
+}
+
+// Adding a file to MPQ that had no (listfile) and no (attributes).
+// We expect that neither of these will be present after the archive is closed
static int TestAddFile_ListFileTest(const char * szSourceMpq, bool bShouldHaveListFile, bool bShouldHaveAttributes)
{
TLogHelper Logger("ListFileTest", szSourceMpq);
@@ -4101,7 +4127,7 @@ int main(int argc, char * argv[])
// Open a patched archive
if(nError == ERROR_SUCCESS)
nError = TestOpenArchive_Patched(PatchList_SC2_32283_enGB, "LocalizedData\\GameHotkeys.txt", 6);
-*/
+
// Open a patched archive
if(nError == ERROR_SUCCESS)
nError = TestOpenArchive_Patched(PatchList_HS_6898_enGB, "Hearthstone_Data\\Managed\\Assembly-Csharp.dll", 10);
@@ -4148,6 +4174,10 @@ int main(int argc, char * argv[])
// if(nError == ERROR_SUCCESS)
// nError = TestOpenArchive_CompactingTest("MPQ_2014_v1_CompactTest.w3x", "ListFile_Blizzard.txt");
+*/
+ // Test adding a file to MPQ that is already full
+ if(nError == ERROR_SUCCESS)
+ nError = TestAddFile_FullArchive("MPQ_2014_v1_out.w3x");
// Test modifying file with no (listfile) and no (attributes)
if(nError == ERROR_SUCCESS)