aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/SBaseFileTable.cpp100
-rw-r--r--src/SCompression.cpp69
-rw-r--r--src/SFileOpenArchive.cpp19
-rw-r--r--src/SFileOpenFileEx.cpp12
-rw-r--r--src/SFileReadFile.cpp21
-rw-r--r--src/StormLib.h24
-rw-r--r--test/Readme.txt90
-rwxr-xr-x[-rw-r--r--]test/StormTest.cpp430
-rw-r--r--test/TLogHelper.cpp2
-rw-r--r--test/stormlib-test-001-linux.txt136
-rw-r--r--test/stormlib-test-001.txt2496
11 files changed, 602 insertions, 2797 deletions
diff --git a/src/SBaseFileTable.cpp b/src/SBaseFileTable.cpp
index 20d7cc4..befe40f 100644
--- a/src/SBaseFileTable.cpp
+++ b/src/SBaseFileTable.cpp
@@ -312,59 +312,38 @@ static ULONGLONG DetermineArchiveSize_V1(
return (EndOfMpq - MpqOffset);
}
-static ULONGLONG DetermineArchiveSize_V2(
- TMPQHeader * pHeader,
- ULONGLONG MpqOffset,
- ULONGLONG FileSize)
+static ULONGLONG DetermineBlockTableSize_V2(TMPQHeader * pHeader, ULONGLONG MpqHeaderPos, ULONGLONG FileSize)
{
- ULONGLONG TableOffset;
- ULONGLONG TableSize;
- ULONGLONG MaxOffset = 0;
-
- // This could only be called for MPQs version 2.0
- assert(pHeader->wFormatVersion == MPQ_FORMAT_VERSION_2);
+ ULONGLONG BlockTablePos = MAKE_OFFSET64(pHeader->wBlockTablePosHi, pHeader->dwBlockTablePos);
+ ULONGLONG ArchiveSize = FileSize - MpqHeaderPos;
- // Is the hash table end greater than max offset?
- TableOffset = MAKE_OFFSET64(pHeader->wHashTablePosHi, pHeader->dwHashTablePos);
- TableSize = (ULONGLONG)pHeader->dwHashTableSize * sizeof(TMPQHash);
- if((TableOffset + TableSize) > MaxOffset)
- MaxOffset = TableOffset + TableSize;
-
- // Is the block table end greater than max offset?
- TableOffset = MAKE_OFFSET64(pHeader->wBlockTablePosHi, pHeader->dwBlockTablePos);
- TableSize = (ULONGLONG)pHeader->dwBlockTableSize * sizeof(TMPQBlock);
- if((TableOffset + TableSize) > MaxOffset)
- MaxOffset = TableOffset + TableSize;
-
- // Is the hi-block table end greater than max offset?
- if((TableOffset = pHeader->HiBlockTablePos64) != 0)
+ // If there is a hi-block table and it is beyond the block table,
+ // we can determine the block table size from it
+ if(pHeader->HiBlockTablePos64 != 0)
{
- TableSize = (ULONGLONG)pHeader->dwBlockTableSize * sizeof(USHORT);
- if((TableOffset + TableSize) > MaxOffset)
- MaxOffset = TableOffset + TableSize;
+ if(pHeader->HiBlockTablePos64 > BlockTablePos)
+ {
+ return (pHeader->HiBlockTablePos64 - BlockTablePos);
+ }
}
- // Cut to the file size
- if(MaxOffset > (FileSize - MpqOffset))
- MaxOffset = FileSize - MpqOffset;
- return MaxOffset;
-}
-
-static ULONGLONG DetermineBlockTableSize_V2(TMPQHeader * pHeader)
-{
- ULONGLONG BlockTableOffset = MAKE_OFFSET64(pHeader->wBlockTablePosHi, pHeader->dwBlockTablePos);
- ULONGLONG TableOffset;
- ULONGLONG TableSize = (pHeader->ArchiveSize64 - BlockTableOffset);
-
- // Subtract the offset of the hi-block table
- if((TableOffset = pHeader->HiBlockTablePos64) != 0)
+ // If we have valid archive size, we can determine the block table size from the archive size
+ else
{
- if(TableOffset > BlockTableOffset)
+ if((BlockTablePos >> 0x20) == 0 && (ArchiveSize >> 0x20) == 0)
{
- TableSize = TableOffset - BlockTableOffset;
+ DWORD dwBlockTablePos32 = (DWORD)(BlockTablePos);
+ DWORD dwArchiveSize32 = (DWORD)(ArchiveSize);
+
+ if(pHeader->dwArchiveSize == dwArchiveSize32)
+ {
+ return (dwArchiveSize32 - dwBlockTablePos32);
+ }
}
}
- return TableSize;
+
+ // Default is the block table size from MPQ header
+ return (ULONGLONG)(pHeader->dwBlockTableSize) * sizeof(TMPQBlock);
}
static ULONGLONG DetermineArchiveSize_V4(
@@ -566,35 +545,14 @@ DWORD ConvertMpqHeaderToFormat4(
// We require the block table to follow hash table
if(BlockTablePos64 >= HashTablePos64)
{
- // HashTableSize64 may be less than TblSize * sizeof(TMPQHash).
- // That means that the hash table is compressed.
+ // Determine whether the hash table is compressed. This can be detected
+ // by subtracting hash table position from the block table position.
pHeader->HashTableSize64 = BlockTablePos64 - HashTablePos64;
- // Calculate the compressed block table size
- if(pHeader->HiBlockTablePos64 != 0)
- {
- // BlockTableSize64 may be less than TblSize * sizeof(TMPQBlock).
- // That means that the block table is compressed.
- pHeader->BlockTableSize64 = pHeader->HiBlockTablePos64 - BlockTablePos64;
- assert(pHeader->BlockTableSize64 <= (pHeader->dwBlockTableSize * sizeof(TMPQBlock)));
-
- // Determine real archive size
- pHeader->ArchiveSize64 = DetermineArchiveSize_V2(pHeader, ByteOffset, FileSize);
-
- // Calculate the size of the hi-block table
- pHeader->HiBlockTableSize64 = pHeader->ArchiveSize64 - pHeader->HiBlockTablePos64;
- assert(pHeader->HiBlockTableSize64 == (pHeader->dwBlockTableSize * sizeof(USHORT)));
- }
- else
- {
- // Determine real archive size
- pHeader->ArchiveSize64 = DetermineArchiveSize_V2(pHeader, ByteOffset, FileSize);
- pHeader->dwArchiveSize = (DWORD)(pHeader->ArchiveSize64);
-
- // Calculate size of the block table
- pHeader->BlockTableSize64 = DetermineBlockTableSize_V2(pHeader);
- assert(pHeader->BlockTableSize64 <= (pHeader->dwBlockTableSize * sizeof(TMPQBlock)));
- }
+ // Also, block table may be compressed. We check whether the HiBlockTable is there.
+ // If not, we try to use the archive size. Note that ArchiveSize may have
+ // an arbitrary value, because it is not tested by Blizzard games anymore
+ pHeader->BlockTableSize64 = DetermineBlockTableSize_V2(pHeader, ByteOffset, FileSize);
}
else
{
diff --git a/src/SCompression.cpp b/src/SCompression.cpp
index 659c9a8..d6d2e27 100644
--- a/src/SCompression.cpp
+++ b/src/SCompression.cpp
@@ -895,6 +895,16 @@ int WINAPI SCompCompress(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuff
/* */
/*****************************************************************************/
+// Decompression table specific for Starcraft I BETA
+// WAVE files are compressed by different ADPCM compression
+static TDecompressTable dcmp_table_sc_beta[] =
+{
+ {MPQ_COMPRESSION_PKWARE, Decompress_PKLIB}, // Decompression with Pkware Data Compression Library
+ {MPQ_COMPRESSION_HUFFMANN, Decompress_huff}, // Huffmann decompression
+ {0x10, Decompress_ADPCM1_sc1b}, // IMA ADPCM mono decompression
+ {0x20, Decompress_ADPCM2_sc1b}, // IMA ADPCM stereo decompression
+};
+
// This table contains decompress functions which can be applied to
// uncompressed data. The compression mask is stored in the first byte
// of compressed data
@@ -909,25 +919,22 @@ static TDecompressTable dcmp_table[] =
{MPQ_COMPRESSION_SPARSE, Decompress_SPARSE} // Sparse decompression
};
-// Decompression table specific for Starcraft I BETA
-// WAVE files are compressed by different ADPCM compression
-static TDecompressTable dcmp_table_sc1b[] =
-{
- {MPQ_COMPRESSION_PKWARE, Decompress_PKLIB}, // Decompression with Pkware Data Compression Library
- {MPQ_COMPRESSION_HUFFMANN, Decompress_huff}, // Huffmann decompression
- {0x10, Decompress_ADPCM1_sc1b}, // IMA ADPCM mono decompression
- {0x20, Decompress_ADPCM2_sc1b}, // IMA ADPCM stereo decompression
-};
-
-static int SCompDecompressInternal(TDecompressTable * table, size_t table_length, void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer)
+static int SCompDecompressInternal(
+ TDecompressTable * table,
+ size_t table_length,
+ void * pvOutBuffer,
+ int * pcbOutBuffer,
+ void * pvInBuffer,
+ int cbInBuffer,
+ unsigned uValidMask = 0xFF)
{
unsigned char * pbWorkBuffer = NULL;
unsigned char * pbOutBuffer = (unsigned char *)pvOutBuffer;
unsigned char * pbInBuffer = (unsigned char *)pvInBuffer;
unsigned char * pbOutput = (unsigned char *)pvOutBuffer;
unsigned char * pbInput;
- unsigned uCompressionMask; // Decompressions applied to the data
- unsigned uCompressionCopy; // Decompressions applied to the data
+ unsigned uCompressionMask1; // Decompressions applied to the data
+ unsigned uCompressionMask2; // Decompressions applied to the data
int cbOutBuffer = *pcbOutBuffer; // Current size of the output buffer
int cbInLength; // Current size of the input buffer
int nCompressCount = 0; // Number of compressions to be applied
@@ -948,7 +955,8 @@ static int SCompDecompressInternal(TDecompressTable * table, size_t table_length
}
// Get applied compression types and decrement data length
- uCompressionMask = uCompressionCopy = (unsigned char)(*pbInBuffer++);
+ uCompressionMask1 = ((unsigned char)(*pbInBuffer++) & (uValidMask));
+ uCompressionMask2 = uCompressionMask1;
cbInBuffer--;
// Get current compressed data and length of it
@@ -956,21 +964,21 @@ static int SCompDecompressInternal(TDecompressTable * table, size_t table_length
cbInLength = cbInBuffer;
// This compression function doesn't support LZMA
- assert(uCompressionMask != MPQ_COMPRESSION_LZMA);
+ assert(uCompressionMask1 != MPQ_COMPRESSION_LZMA);
// Parse the compression mask
for(size_t i = 0; i < table_length; i++)
{
// If the mask agrees, insert the compression function to the array
- if(uCompressionMask & table[i].uMask)
+ if(uCompressionMask1 & table[i].uMask)
{
- uCompressionCopy &= ~table[i].uMask;
+ uCompressionMask2 &= ~table[i].uMask;
nCompressCount++;
}
}
// If at least one of the compressions remaing unknown, return an error
- if(nCompressCount == 0 || uCompressionCopy != 0)
+ if(nCompressCount == 0 || uCompressionMask2 != 0)
{
SetLastError(ERROR_NOT_SUPPORTED);
return 0;
@@ -994,7 +1002,7 @@ static int SCompDecompressInternal(TDecompressTable * table, size_t table_length
for(size_t i = 0; i < table_length; i++)
{
// Perform the (next) decompression
- if(uCompressionMask & table[i].uMask)
+ if(uCompressionMask1 & table[i].uMask)
{
// Get the correct output buffer
pbOutput = (nCompressIndex & 1) ? pbWorkBuffer : pbOutBuffer;
@@ -1030,11 +1038,6 @@ int WINAPI SCompDecompress(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBu
return SCompDecompressInternal(dcmp_table, _countof(dcmp_table), pvOutBuffer, pcbOutBuffer, pvInBuffer, cbInBuffer);
}
-int WINAPI SCompDecompress_SC1B(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer)
-{
- return SCompDecompressInternal(dcmp_table_sc1b, _countof(dcmp_table_sc1b), pvOutBuffer, pcbOutBuffer, pvInBuffer, cbInBuffer);
-}
-
int WINAPI SCompDecompress2(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer)
{
DECOMPRESS pfnDecompress1 = NULL;
@@ -1149,6 +1152,24 @@ int WINAPI SCompDecompress2(void * pvOutBuffer, int * pcbOutBuffer, void * pvInB
return nResult;
}
+int WINAPI SCompDecompressX(TMPQArchive * ha, void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer)
+{
+ // MPQs version 2 use their own fixed list of compression flags.
+ if(ha->pHeader->wFormatVersion >= MPQ_FORMAT_VERSION_2)
+ {
+ return SCompDecompress2(pvOutBuffer, pcbOutBuffer, pvInBuffer, cbInBuffer);
+ }
+
+ // Starcraft BETA has specific decompression table.
+ if(ha->dwFlags & MPQ_FLAG_STARCRAFT_BETA)
+ {
+ return SCompDecompressInternal(dcmp_table_sc_beta, _countof(dcmp_table_sc_beta), pvOutBuffer, pcbOutBuffer, pvInBuffer, cbInBuffer);
+ }
+
+ // Default: Use the common MPQ v1 decompression routine
+ return SCompDecompressInternal(dcmp_table, _countof(dcmp_table), pvOutBuffer, pcbOutBuffer, pvInBuffer, cbInBuffer);
+}
+
/*****************************************************************************/
/* */
/* File decompression for MPK archives */
diff --git a/src/SFileOpenArchive.cpp b/src/SFileOpenArchive.cpp
index 16e2491..f19a6e7 100644
--- a/src/SFileOpenArchive.cpp
+++ b/src/SFileOpenArchive.cpp
@@ -463,16 +463,19 @@ bool WINAPI SFileOpenArchive(
if(IsStarcraftBetaArchive(ha->pHeader))
ha->dwFlags |= MPQ_FLAG_STARCRAFT_BETA;
- // Remember whether whis is a map for Warcraft III
- if(MapType == MapTypeWarcraft3)
+ // Maps from StarCraft and Warcraft III need special treatment
+ switch(MapType)
{
- ha->dwValidFileFlags = MPQ_FILE_VALID_FLAGS_W3X;
- ha->dwFlags |= MPQ_FLAG_WAR3_MAP;
- }
+ case MapTypeStarcraft:
+ ha->dwValidFileFlags = MPQ_FILE_VALID_FLAGS_SCX;
+ ha->dwFlags |= MPQ_FLAG_STARCRAFT;
+ break;
- // If this is starcraft map, set the flag mask
- if(MapType == MapTypeStarcraft)
- ha->dwValidFileFlags = MPQ_FILE_VALID_FLAGS_SCX;
+ case MapTypeWarcraft3:
+ ha->dwValidFileFlags = MPQ_FILE_VALID_FLAGS_W3X;
+ ha->dwFlags |= MPQ_FLAG_WAR3_MAP;
+ break;
+ }
// Set the size of file sector
ha->dwSectorSize = (0x200 << ha->pHeader->wSectorSize);
diff --git a/src/SFileOpenFileEx.cpp b/src/SFileOpenFileEx.cpp
index a14ffee..b5829b4 100644
--- a/src/SFileOpenFileEx.cpp
+++ b/src/SFileOpenFileEx.cpp
@@ -298,32 +298,32 @@ bool WINAPI SFileOpenFileEx(HANDLE hMpq, const char * szFileName, DWORD dwSearch
if(dwErrCode == ERROR_SUCCESS)
{
// If we didn't find the file, try to open it using pseudo file name ("File
- if (pFileEntry == NULL || (pFileEntry->dwFlags & MPQ_FILE_EXISTS) == 0)
+ if(pFileEntry == NULL || (pFileEntry->dwFlags & MPQ_FILE_EXISTS) == 0)
{
// Check the pseudo-file name ("File00000001.ext")
- if ((bOpenByIndex = IsPseudoFileName(szFileName, &dwFileIndex)) == true)
+ if((bOpenByIndex = IsPseudoFileName(szFileName, &dwFileIndex)) == true)
{
// Get the file entry for the file
- if (dwFileIndex < ha->dwFileTableSize)
+ if(dwFileIndex < ha->dwFileTableSize)
{
pFileEntry = ha->pFileTable + dwFileIndex;
}
}
// Still not found?
- if (pFileEntry == NULL)
+ if(pFileEntry == NULL || (pFileEntry->dwFlags & MPQ_FILE_EXISTS) == 0)
{
dwErrCode = ERROR_FILE_NOT_FOUND;
}
}
// Perform some checks of invalid files
- if (pFileEntry != NULL)
+ if(pFileEntry != NULL)
{
// MPQ protectors use insanely amount of fake files, often with very high size.
// We won't open any files whose compressed size is bigger than archive size
// If the file is not compressed, its size cannot be bigger than archive size
- if ((pFileEntry->dwFlags & MPQ_FILE_COMPRESS_MASK) == 0 && (pFileEntry->dwFileSize > ha->FileSize))
+ if((pFileEntry->dwFlags & MPQ_FILE_COMPRESS_MASK) == 0 && (pFileEntry->dwFileSize > ha->FileSize))
{
dwErrCode = ERROR_FILE_CORRUPT;
pFileEntry = NULL;
diff --git a/src/SFileReadFile.cpp b/src/SFileReadFile.cpp
index 39f794e..b0698c1 100644
--- a/src/SFileReadFile.cpp
+++ b/src/SFileReadFile.cpp
@@ -14,6 +14,11 @@
#include "StormCommon.h"
//-----------------------------------------------------------------------------
+// External references (not public functions)
+
+int WINAPI SCompDecompressX(TMPQArchive * ha, void * pvOutBuffer, int * pcbOutBuffer, void * pbInBuffer, int cbInBuffer);
+
+//-----------------------------------------------------------------------------
// Local functions
// hf - MPQ File handle.
@@ -171,18 +176,10 @@ static DWORD ReadMpqSectors(TMPQFile * hf, LPBYTE pbBuffer, DWORD dwByteOffset,
// Remember the last used compression
hf->dwCompression0 = pbInSector[0];
- // Decompress the data
- if(ha->pHeader->wFormatVersion >= MPQ_FORMAT_VERSION_2)
- {
- nResult = SCompDecompress2(pbOutSector, &cbOutSector, pbInSector, cbInSector);
- }
- else
- {
- if(ha->dwFlags & MPQ_FLAG_STARCRAFT_BETA)
- nResult = SCompDecompress_SC1B(pbOutSector, &cbOutSector, pbInSector, cbInSector);
- else
- nResult = SCompDecompress(pbOutSector, &cbOutSector, pbInSector, cbInSector);
- }
+ // Decompress the data. We need to perform MPQ-specific decompression,
+ // as multiple Blizzard games may have their own decompression tables
+ // and even decompression methods.
+ nResult = SCompDecompressX(ha, pbOutSector, &cbOutSector, pbInSector, cbInSector);
}
// Is the file compressed by PKWARE Data Compression Library ?
diff --git a/src/StormLib.h b/src/StormLib.h
index 07408b2..4aa51c1 100644
--- a/src/StormLib.h
+++ b/src/StormLib.h
@@ -143,8 +143,8 @@ extern "C" {
//-----------------------------------------------------------------------------
// Defines
-#define STORMLIB_VERSION 0x0918 // Current version of StormLib (9.24)
-#define STORMLIB_VERSION_STRING "9.24" // String version of StormLib version
+#define STORMLIB_VERSION 0x0919 // Current version of StormLib
+#define STORMLIB_VERSION_STRING "9.25" // Current version of StormLib as string
#define ID_MPQ 0x1A51504D // MPQ archive header ID ('MPQ\x1A')
#define ID_MPQ_USERDATA 0x1B51504D // MPQ userdata entry ('MPQ\x1B')
@@ -194,15 +194,16 @@ extern "C" {
#define MPQ_FLAG_CHECK_SECTOR_CRC 0x00000020 // Checking sector CRC when reading files
#define MPQ_FLAG_SAVING_TABLES 0x00000040 // If set, we are saving MPQ internal files and MPQ tables
#define MPQ_FLAG_PATCH 0x00000080 // If set, this MPQ is a patch archive
-#define MPQ_FLAG_WAR3_MAP 0x00000100 // If set, this MPQ is a Warcraft III map
-#define MPQ_FLAG_STARCRAFT_BETA 0x00000200 // If set, this MPQ is StarDat.mpq from Starcraft I BETA
-#define MPQ_FLAG_LISTFILE_NONE 0x00000400 // Set when no (listfile) was found in InvalidateInternalFiles
-#define MPQ_FLAG_LISTFILE_NEW 0x00000800 // Set when (listfile) invalidated by InvalidateInternalFiles
-#define MPQ_FLAG_LISTFILE_FORCE 0x00001000 // Save updated listfile on exit
-#define MPQ_FLAG_ATTRIBUTES_NONE 0x00002000 // Set when no (attributes) was found in InvalidateInternalFiles
-#define MPQ_FLAG_ATTRIBUTES_NEW 0x00004000 // Set when (attributes) invalidated by InvalidateInternalFiles
-#define MPQ_FLAG_SIGNATURE_NONE 0x00008000 // Set when no (signature) was found in InvalidateInternalFiles
-#define MPQ_FLAG_SIGNATURE_NEW 0x00010000 // Set when (signature) invalidated by InvalidateInternalFiles
+#define MPQ_FLAG_STARCRAFT_BETA 0x00000100 // If set, this MPQ is from Starcraft I BETA
+#define MPQ_FLAG_STARCRAFT 0x00000200 // If set, this MPQ is from Starcraft I
+#define MPQ_FLAG_WAR3_MAP 0x00000400 // If set, this MPQ is a Warcraft III map
+#define MPQ_FLAG_LISTFILE_NONE 0x00000800 // Set when no (listfile) was found in InvalidateInternalFiles
+#define MPQ_FLAG_LISTFILE_NEW 0x00001000 // Set when (listfile) invalidated by InvalidateInternalFiles
+#define MPQ_FLAG_LISTFILE_FORCE 0x00002000 // Save updated listfile on exit
+#define MPQ_FLAG_ATTRIBUTES_NONE 0x00004000 // Set when no (attributes) was found in InvalidateInternalFiles
+#define MPQ_FLAG_ATTRIBUTES_NEW 0x00008000 // Set when (attributes) invalidated by InvalidateInternalFiles
+#define MPQ_FLAG_SIGNATURE_NONE 0x00010000 // Set when no (signature) was found in InvalidateInternalFiles
+#define MPQ_FLAG_SIGNATURE_NEW 0x00020000 // Set when (signature) invalidated by InvalidateInternalFiles
// Values for TMPQArchive::dwSubType
#define MPQ_SUBTYPE_MPQ 0x00000000 // The file is a MPQ file (Blizzard games)
@@ -1121,7 +1122,6 @@ int WINAPI SCompExplode (void * pvOutBuffer, int * pcbOutBuffer, void * pv
int WINAPI SCompCompress (void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer, unsigned uCompressionMask, int nCmpType, int nCmpLevel);
int WINAPI SCompDecompress (void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer);
int WINAPI SCompDecompress2(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer);
-int WINAPI SCompDecompress_SC1B(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer);
//-----------------------------------------------------------------------------
// Non-Windows support for SetLastError/GetLastError
diff --git a/test/Readme.txt b/test/Readme.txt
deleted file mode 100644
index 19bdf53..0000000
--- a/test/Readme.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-Testing MPQ set for StormLib test suite
-=======================================
-
-The path to the directory could be anywhere. Path to this directory
-is set on a command line. If there is no command line argument passed,
-one of the hard-coded paths is used.
-
-The testing directory must contain the following files:
-
-Path File Size
-------------------------------------------------- -----------
-patches\wow-update-13164.MPQ 480 028 668 // Original patch files from WoW
-patches\wow-update-13205.MPQ 8 814
-patches\wow-update-13287.MPQ 333 363 917
-patches\wow-update-13329.MPQ 159 285 434
-patches\wow-update-13596.MPQ 148 022 182
-patches\wow-update-13623.MPQ 11 561
-patches\wow-update-base-13914.MPQ 293 580 556
-patches\wow-update-base-14007.MPQ 262 906
-patches\wow-update-base-14333.MPQ 368 972 365
-patches\wow-update-base-14480.MPQ 75 897
-patches\wow-update-base-14545.MPQ 1 224 415
-patches\wow-update-base-14946.MPQ 749 246 163
-patches\wow-update-base-15005.MPQ 7 121 223
-patches\wow-update-base-15050.MPQ 4 497
-patches\wow-update-enGB-16016.MPQ 17 117 318
-patches\wow-update-enGB-16048.MPQ 78 180
-patches\wow-update-enGB-16057.MPQ 4 072
-patches\wow-update-enGB-16309.MPQ 28 187 877
-patches\wow-update-enGB-16357.MPQ 3 621
-patches\wow-update-enGB-16516.MPQ 42 934 402
-patches\wow-update-enGB-16650.MPQ 426 683
-patches\wow-update-enGB-16844.MPQ 18 366 460
-patches\wow-update-enGB-16965.MPQ 305 202
-patches\wow-update-oldworld-13154.MPQ 54 068 663
-patches\wow-update-oldworld-13286.MPQ 2 328 773
-
-AddFile.bin 0 // Just an empty file
-AddFile.exe 432 640 // An arbitraty binary file
-AddFile.wav 311 340 // An arbitrary WAVE file
-ListFile_Blizzard.txt 3 904 784 // Listfile for Blizzard games (pre-WoW)
-ListFile_WarOfTheImmortals.txt 3 904 858 // Listfile for War of the Immortals game
-MPQ_1997_v1_Diablo1_DIABDAT.MPQ 517 501 282 // Originally DIABDAT.MPQ from Diablo I
-MPQ_1997_v1_Diablo1_DIABDAT.sha 206
-MPQ_1997_v1_Diablo1_single_0.sha 201 // Single player savegame from Diablo I
-MPQ_1997_v1_Diablo1_single_0.sv 98 980
-MPQ_1999_v1_WeakSignature.exe 1 031 826 // War2Patch_202.exe from Warcraft II Bnet Edition
-MPQ_1999_v1_WeakSignature.sha 260
-MPQ_2002_v1_BlockTableCut.MPQ 27 498 436 // Cut file War3Patch.mpq from Warcraft III
-MPQ_2002_v1_BlockTableCut.sha 250
-MPQ_2002_v1_ProtectedMap_HashTable_FakeValid.sha 1 067
-MPQ_2002_v1_ProtectedMap_HashTable_FakeValid.w3x 1 089 638 // Protected Warcraft III map
-MPQ_2002_v1_ProtectedMap_InvalidMpqFormat.sha 507
-MPQ_2002_v1_ProtectedMap_InvalidMpqFormat.w3x 2 429 195 // Protected Warcraft III map
-MPQ_2002_v1_ProtectedMap_InvalidUserData.sha 293
-MPQ_2002_v1_ProtectedMap_InvalidUserData.w3x 596 486 // Protected Warcraft III map
-MPQ_2002_v1_StrongSignature.sha 250
-MPQ_2002_v1_StrongSignature.w3m 306 818 // (10)DustwallowKeys.w3m from Warcraft III
-MPQ_2009_v2_WoW_patch.MPQ.part 31 396 380 // patch.MPQ.part from trial WoW build 10958
-MPQ_2009_v2_WoW_patch.MPQ.sha 226
-MPQ_2010_v2_HashTableCompressed.MPQ.part 14 546 972 // interface.MPQ.part from WoW build 10958
-MPQ_2010_v2_HashTableCompressed.MPQ.sha 277
-MPQ_2010_v2_HasUserData.s2ma 1 972 177 // (4) - AI - Kulas Ravine (1x).s2ma from Starcraft II Beta
-MPQ_2010_v2_HasUserData.sha 261
-MPQ_2010_v3_expansion-locale-frFR.MPQ 2 980 489 // expansion-locale-frFR.MPQ from WoW 12911
-MPQ_2010_v3_expansion-locale-frFR.sha 274
-MPQ_2011_v2_EncryptedMpq.MPQE 41 631 764 // Installer UI 2 esES.MPQE from Starcraft II Installer (build 15404)
-MPQ_2011_v2_EncryptedMpq.sha 255
-MPQ_2011_v4_InvalidHetEntryCount.MPQ 206 164 // An invalid MPQ created by a previous Stormlib version
-MPQ_2011_v4_InvalidHetEntryCount.sha 312
-MPQ_2012_v2_EmptyMpq.MPQ 44 // Empty MPQ (Cache from WoW 11723)
-MPQ_2012_v2_EmptyMpq.sha 212
-MPQ_2012_v4_OldWorld.MPQ 1 854 547 587 // OldWorld.MPQ from WoW 12911
-MPQ_2012_v4_OldWorld.sha 270
-MPQ_2013_v4_EmptyMpq.MPQ 208 // Empty MPQ created by StormLib
-MPQ_2013_v4_EmptyMpq.sha 183
-MPQ_2013_v4_expansion1.MPQ 1 426 926 736 // expansion1.MPQ from WoW build 17538
-MPQ_2013_v4_expansion1.sha 221
-MPQ_2013_v4_locale-enGB.MPQ 446 491 866 // locale-enGB.MPQ from WoW build 16965
-MPQ_2013_v4_locale-enGB.sha 273
-MPQ_2013_v4_patch-base-16357.MPQ 249 // patch-base-16357.MPQ from WoW build 17538
-MPQ_2013_v4_patch-base-16357.sha 229
-MPQ_2013_v4_SC2_EmptyMap.SC2Map 25 058 // Custom Starcraft II Map
-MPQ_2013_v4_SC2_EmptyMap.sha 243
-MPQ_2013_v4_world.MPQ 2 617 175 835 // world.MPQ from WoW build 12911
-MPQ_2013_v4_world.sha 252
-MPx_2013_v1_LongwuOnline.mpk 2 146 549 // Scp.mpk from Longwu Online
-MPx_2013_v1_LongwuOnline.sha 277
-MPx_2013_v1_WarOfTheImmortals.sha 248
-MPx_2013_v1_WarOfTheImmortals.sqp 56 775 675 // Modified Other.sqp from War of the Immortals
diff --git a/test/StormTest.cpp b/test/StormTest.cpp
index 82668cf..a65430d 100644..100755
--- a/test/StormTest.cpp
+++ b/test/StormTest.cpp
@@ -44,7 +44,7 @@
// Artificial flag for not reporting open failure
#define MPQ_OPEN_DONT_REPORT_FAILURE 0x80000000
-typedef DWORD(*FIND_FILE_CALLBACK)(LPCTSTR szFullPath);
+typedef DWORD (*FS_SEARCH_CALLBACK)(LPCTSTR szFullPath, void * lpContext);
typedef enum _EXTRA_TYPE
{
@@ -105,22 +105,14 @@ typedef struct _LINE_INFO
#ifdef STORMLIB_WINDOWS
#define WORK_PATH_ROOT _T("\\Multimedia\\MPQs")
-static const TCHAR szListFileDir[] = { '1', '9', '9', '5', ' ', '-', ' ', 'T', 'e', 's', 't', ' ', 'M', 'P', 'Q', 's', '\\', 'l', 'i', 's', 't', 'f', 'i', 'l', 'e', 's', '-', (TCHAR)0x65B0, (TCHAR)0x5EFA, (TCHAR)0x6587, (TCHAR)0x4EF6, (TCHAR)0x5939, 0 };
#endif
#ifdef STORMLIB_LINUX
-#define WORK_PATH_ROOT "/media/ladik/CascStorages/MPQs"
-static const TCHAR szListFileDir[] = { '1', '9', '9', '5', ' ', '-', ' ', 'T', 'e', 's', 't', ' ', 'M', 'P', 'Q', 's', '\\', 'l', 'i', 's', 't', 'f', 'i', 'l', 'e', 's', '-', (TCHAR)0xe6, (TCHAR)0x96, (TCHAR)0xB0, (TCHAR)0xE5, (TCHAR)0xBB, (TCHAR)0xBA, (TCHAR)0xE6, (TCHAR)0x96, (TCHAR)0x87, (TCHAR)0xE4, (TCHAR)0xBB, (TCHAR)0xB6, (TCHAR)0xE5, (TCHAR)0xA4, (TCHAR)0xB9, 0 };
-#endif
-
-#ifdef STORMLIB_MAC
-#define WORK_PATH_ROOT "/home/sam/StormLib/test"
-static const TCHAR szListFileDir[] = { '1', '9', '9', '5', ' ', '-', ' ', 'T', 'e', 's', 't', ' ', 'M', 'P', 'Q', 's', '\\', 'l', 'i', 's', 't', 'f', 'i', 'l', 'e', 's', '-', (TCHAR)0xe6, (TCHAR)0x96, (TCHAR)0xB0, (TCHAR)0xE5, (TCHAR)0xBB, (TCHAR)0xBA, (TCHAR)0xE6, (TCHAR)0x96, (TCHAR)0x87, (TCHAR)0xE4, (TCHAR)0xBB, (TCHAR)0xB6, (TCHAR)0xE5, (TCHAR)0xA4, (TCHAR)0xB9, 0 };
+#define WORK_PATH_ROOT "/media/ladik/MPQs"
#endif
#ifdef STORMLIB_HAIKU
#define WORK_PATH_ROOT "~/StormLib/test"
-static const TCHAR szListFileDir[] = { '1', '9', '9', '5', ' ', '-', ' ', 'T', 'e', 's', 't', ' ', 'M', 'P', 'Q', 's', '\\', 'l', 'i', 's', 't', 'f', 'i', 'l', 'e', 's', '-', (TCHAR)0xe6, (TCHAR)0x96, (TCHAR)0xB0, (TCHAR)0xE5, (TCHAR)0xBB, (TCHAR)0xBA, (TCHAR)0xE6, (TCHAR)0x96, (TCHAR)0x87, (TCHAR)0xE4, (TCHAR)0xBB, (TCHAR)0xB6, (TCHAR)0xE5, (TCHAR)0xA4, (TCHAR)0xB9, 0 };
#endif
// Definition of the path separator
@@ -134,8 +126,8 @@ static const TCHAR PATH_SEPARATOR = '/'; // Path separator for Non-Wi
// Global for the work MPQ
static LPCTSTR szMpqSubDir = _T("1995 - Test MPQs");
-static LPCTSTR szMpqPatchDir = _T("1995 - Test MPQs\\patches");
-static LPCSTR IntToHexChar = "0123456789abcdef";
+static TCHAR szListFileDir[MAX_PATH] = {0};
+static TCHAR szMpqPatchDir[MAX_PATH] = {0};
//-----------------------------------------------------------------------------
// Testing data
@@ -270,6 +262,20 @@ static bool IsFullPath(const XCHAR * szFileName)
return false;
}
+LPCTSTR GetRelativePath(LPCTSTR szFullPath)
+{
+ LPCTSTR szRelativePath;
+
+ if(szFullPath && szFullPath[0])
+ {
+ if((szRelativePath = _tcsstr(szFullPath, szMpqSubDir)) != NULL)
+ {
+ return szRelativePath;
+ }
+ }
+ return _T("");
+}
+
static bool IsMpqExtension(LPCTSTR szFileName)
{
LPCTSTR szExtension = _tcsrchr(szFileName, '.');
@@ -312,6 +318,7 @@ static bool IsMpqExtension(LPCTSTR szFileName)
template <typename xchar>
xchar * StringFromBinary(LPBYTE pbBinary, size_t cbBinary, xchar * szBuffer)
{
+ const char * IntToHexChar = "0123456789abcdef";
xchar * szSaveBuffer = szBuffer;
// Verify the binary pointer
@@ -537,13 +544,14 @@ static DWORD CalculateFileSha1(TLogHelper * pLogger, LPCTSTR szFullPath, TCHAR *
hash_state sha1_state;
ULONGLONG ByteOffset = 0;
ULONGLONG FileSize = 0;
- BYTE * pbFileBlock;
+ LPCTSTR szHashingFormat = _T("Hashing %s " fmt_X_of_Y_a);
+ LPBYTE pbFileBlock;
DWORD cbBytesToRead;
DWORD cbFileBlock = 0x100000;
DWORD dwErrCode = ERROR_SUCCESS;
// Notify the user
- pLogger->PrintProgress(_T("Hashing file %s"), szShortPlainName);
+ pLogger->PrintProgress(_T("Hashing %s ..."), szShortPlainName);
szFileSha1[0] = 0;
// Open the file to be verified
@@ -564,7 +572,7 @@ static DWORD CalculateFileSha1(TLogHelper * pLogger, LPCTSTR szFullPath, TCHAR *
while(ByteOffset < FileSize)
{
// Notify the user
- pLogger->PrintProgress(_T("Hashing file %s (%I64u of %I64u)"), szShortPlainName, ByteOffset, FileSize);
+ pLogger->PrintProgress(szHashingFormat, szShortPlainName, ByteOffset, FileSize);
// Load the file block
cbBytesToRead = ((FileSize - ByteOffset) > cbFileBlock) ? cbFileBlock : (DWORD)(FileSize - ByteOffset);
@@ -580,7 +588,7 @@ static DWORD CalculateFileSha1(TLogHelper * pLogger, LPCTSTR szFullPath, TCHAR *
}
// Notify the user
- pLogger->PrintProgress(_T("Hashing file %s (%I64u of %I64u)"), szShortPlainName, ByteOffset, FileSize);
+ pLogger->PrintProgress(szHashingFormat, szShortPlainName, ByteOffset, FileSize);
// Finalize SHA1
sha1_done(&sha1_state, sha1_digest);
@@ -627,24 +635,15 @@ static HANDLE InitDirectorySearch(LPCTSTR szDirectory)
#endif
}
-static bool SearchDirectory(HANDLE hFind, TCHAR * szDirEntry, size_t cchDirEntry, bool & IsDirectory)
+static bool SearchDirectory(HANDLE hFind, LPTSTR szDirEntry, size_t cchDirEntry, bool & IsDirectory)
{
#ifdef STORMLIB_WINDOWS
WIN32_FIND_DATA wf;
- TCHAR szDirEntryT[MAX_PATH];
- char szDirEntryA[MAX_PATH];
-
- __SearchNextEntry:
// Search for the hnext entry.
if(FindNextFile(hFind, &wf))
{
- // Verify if the directory entry is an UNICODE name that would be destroyed
- // by Unicode->ANSI->Unicode conversion
- if(CopyStringAndVerifyConversion(wf.cFileName, szDirEntryT, szDirEntryA, _countof(szDirEntryA)) == false)
- goto __SearchNextEntry;
-
IsDirectory = (wf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? true : false;
StringCopy(szDirEntry, cchDirEntry, wf.cFileName);
return true;
@@ -682,9 +681,60 @@ static void FreeDirectorySearch(HANDLE hFind)
#endif
}
-static DWORD FindFilesInternal(FIND_FILE_CALLBACK pfnTest, TCHAR * szDirectory)
+static PFILE_DATA LoadLocalFile(TLogHelper * pLogger, LPCTSTR szFileName, bool bMustSucceed)
+{
+ TFileStream * pStream;
+ PFILE_DATA pFileData = NULL;
+ ULONGLONG FileSize = 0;
+ size_t nAllocateBytes;
+
+ // Notify the user
+ if(pLogger != NULL)
+ pLogger->PrintProgress(_T("Loading %s ..."), GetPlainFileName(szFileName));
+
+ // Attempt to open the file
+ if((pStream = FileStream_OpenFile(szFileName, STREAM_FLAG_READ_ONLY)) != NULL)
+ {
+ // Get the file size
+ FileStream_GetSize(pStream, &FileSize);
+
+ // Check for too big files
+ if((FileSize >> 0x20) == 0)
+ {
+ // Allocate space for the file
+ nAllocateBytes = sizeof(FILE_DATA) + (size_t)FileSize;
+ pFileData = (PFILE_DATA)STORM_ALLOC(BYTE, nAllocateBytes);
+ if(pFileData != NULL)
+ {
+ // Make sure it;s properly zeroed
+ memset(pFileData, 0, nAllocateBytes);
+ pFileData->dwFileSize = (DWORD)FileSize;
+
+ // Load to memory
+ if(!FileStream_Read(pStream, NULL, pFileData->FileData, pFileData->dwFileSize))
+ {
+ STORM_FREE(pFileData);
+ pFileData = NULL;
+ }
+ }
+ }
+
+ // Close the stream
+ FileStream_Close(pStream);
+ }
+ else
+ {
+ if(pLogger != NULL && bMustSucceed == true)
+ pLogger->PrintError(_T("Open failed: %s"), szFileName);
+ }
+
+ // Return the loaded file data or NULL
+ return pFileData;
+}
+
+static DWORD FindFilesInternal(FS_SEARCH_CALLBACK PfnFolderCallback, FS_SEARCH_CALLBACK PfnFileCallback, LPTSTR szDirectory, void * lpContext = NULL)
{
- TCHAR * szPlainName;
+ LPTSTR szPlainName;
HANDLE hFind;
size_t nLength;
TCHAR szDirEntry[MAX_PATH];
@@ -713,14 +763,16 @@ static DWORD FindFilesInternal(FIND_FILE_CALLBACK pfnTest, TCHAR * szDirectory)
{
if(szDirEntry[0] != '.')
{
- dwErrCode = FindFilesInternal(pfnTest, szDirectory);
+ if(PfnFolderCallback != NULL)
+ PfnFolderCallback(szDirectory, lpContext);
+ dwErrCode = FindFilesInternal(PfnFolderCallback, PfnFileCallback, szDirectory, lpContext);
}
}
else
{
- if(pfnTest != NULL)
+ if(PfnFileCallback != NULL)
{
- dwErrCode = pfnTest(szDirectory);
+ dwErrCode = PfnFileCallback(szDirectory, lpContext);
}
}
}
@@ -733,19 +785,100 @@ static DWORD FindFilesInternal(FIND_FILE_CALLBACK pfnTest, TCHAR * szDirectory)
return dwErrCode;
}
-static DWORD FindFiles(FIND_FILE_CALLBACK pfnFindFile, LPCTSTR szSubDirectory)
+static DWORD ForEachFile_VerifyFileHash(LPCTSTR szFullPath, void * lpContext)
{
+ TLogHelper * pLogger = (TLogHelper *)(lpContext);
+ PFILE_DATA pFileData;
+ TCHAR * szExtension;
+ TCHAR szShaFileName[MAX_PATH + 1];
+ TCHAR szSha1Text[0x40];
+ char szSha1TextA[0x40];
+ DWORD dwErrCode = ERROR_SUCCESS;
+
+ // Try to load the file with the SHA extension
+ StringCopy(szShaFileName, _countof(szShaFileName), szFullPath);
+ szExtension = _tcsrchr(szShaFileName, '.');
+ if(szExtension == NULL)
+ return ERROR_SUCCESS;
+
+ // Skip .SHA and .TXT files
+ if(!_tcsicmp(szExtension, _T(".sha")) || !_tcsicmp(szExtension, _T(".txt")))
+ return ERROR_SUCCESS;
+
+ // Load the local file to memory
+ _tcscpy(szExtension, _T(".sha"));
+ pFileData = LoadLocalFile(pLogger, szShaFileName, false);
+ if(pFileData != NULL)
+ {
+ // Calculate SHA1 of the entire file
+ dwErrCode = CalculateFileSha1(pLogger, szFullPath, szSha1Text);
+ if(dwErrCode == ERROR_SUCCESS)
+ {
+ // Compare with what we loaded from the file
+ if(pFileData->dwFileSize >= (SHA1_DIGEST_SIZE * 2))
+ {
+ // Compare the SHA1
+ StringCopy(szSha1TextA, _countof(szSha1TextA), szSha1Text);
+ if(_strnicmp(szSha1TextA, (char *)pFileData->FileData, (SHA1_DIGEST_SIZE * 2)))
+ {
+ SetLastError(dwErrCode = ERROR_FILE_CORRUPT);
+ pLogger->PrintError(_T("File hash check failed: %s"), szFullPath);
+ }
+ }
+ }
+
+ // Clear the line
+ if(dwErrCode == ERROR_SUCCESS)
+ pLogger->PrintProgress("OK");
+ STORM_FREE(pFileData);
+ }
+ return dwErrCode;
+}
+
+static DWORD VerifyFileHashes(LPCTSTR szSubDirectory)
+{
+ TLogHelper Logger("TestVerifyHash");
TCHAR szWorkBuff[MAX_PATH];
+ // Construct the full directory name
CreateFullPathName(szWorkBuff, _countof(szWorkBuff), szSubDirectory, NULL);
- return FindFilesInternal(pfnFindFile, szWorkBuff);
+
+ // Find each file and check its hash
+ return FindFilesInternal(NULL, ForEachFile_VerifyFileHash, szWorkBuff, &Logger);
+}
+
+static DWORD FindListFileFolder(LPCTSTR szFullPath, void * /* lpContext */)
+{
+ LPCTSTR szPlainName = GetPlainFileName(szFullPath);
+
+ // Check listfile directory
+ if(szListFileDir[0] == 0)
+ {
+ if(!_tcsnicmp(szPlainName, _T("listfiles-"), 10))
+ {
+ StringCopy(szListFileDir, _countof(szListFileDir), GetRelativePath(szFullPath));
+ return ERROR_SUCCESS;
+ }
+ }
+
+ if(szMpqPatchDir[0] == 0)
+ {
+ if(!_tcsnicmp(szPlainName, _T("patches-"), 8))
+ {
+ StringCopy(szMpqPatchDir, _countof(szMpqPatchDir), GetRelativePath(szFullPath));
+ return ERROR_SUCCESS;
+ }
+ }
+
+ // Check patch directory
+ return ERROR_SUCCESS;
}
static DWORD InitializeMpqDirectory(TCHAR * argv[], int argc)
{
- TLogHelper Logger("InitWorkDir");
+ TLogHelper Logger("InitWorkFolder");
TFileStream * pStream;
- TCHAR szFullPath[MAX_PATH];
+ TCHAR szFullPath[MAX_PATH] = {0};
LPCTSTR szWhereFrom = _T("default");
LPCTSTR szDirName = WORK_PATH_ROOT;
@@ -777,6 +910,14 @@ static DWORD InitializeMpqDirectory(TCHAR * argv[], int argc)
// Print the work directory info
Logger.PrintMessage(_T("Work directory %s (%s)"), szMpqDirectory, szWhereFrom);
+ // Find the listfile directory within the MPQ directory
+ CreateFullPathName(szFullPath, _countof(szFullPath), NULL, szMpqSubDir);
+ FindFilesInternal(FindListFileFolder, NULL, szFullPath, NULL);
+ if(szListFileDir[0] == 0)
+ return Logger.PrintError(_T("Listfile folder was not found in the MPQ directory"));
+ if(szMpqPatchDir[0] == 0)
+ return Logger.PrintError(_T("Patches folder was not found in the MPQ directory"));
+
// Verify if the work MPQ directory is writable
CreateFullPathName(szFullPath, _countof(szFullPath), NULL, _T("TestFile.bin"));
pStream = FileStream_CreateFile(szFullPath, 0);
@@ -995,7 +1136,7 @@ static DWORD WriteFileData(
DWORD cbToWrite = (ByteCount > cbDataBuffer) ? cbDataBuffer : (DWORD)ByteCount;
// Notify the user
- pLogger->PrintProgress("Writing file data (%I64u of %I64u) ...", BytesWritten, SaveByteCount);
+ pLogger->PrintProgress("Writing file data " fmt_X_of_Y_a " ...", BytesWritten, SaveByteCount);
// Write the data
if(!FileStream_Write(pStream, &ByteOffset, pbDataBuffer, cbToWrite))
@@ -1054,7 +1195,7 @@ static DWORD CopyFileData(
ByteOffset += BytesToRead;
// Notify the user
- pLogger->PrintProgress("Copying (%I64u of %I64u complete) ...", BytesCopied, ByteCount);
+ pLogger->PrintProgress("Copying " fmt_X_of_Y_a " ...", BytesCopied, ByteCount);
}
STORM_FREE(pbCopyBuffer);
@@ -1214,52 +1355,6 @@ static bool CheckIfFileIsPresent(TLogHelper * pLogger, HANDLE hMpq, LPCSTR szFil
}
}
-static PFILE_DATA LoadLocalFile(TLogHelper * pLogger, LPCTSTR szFileName, bool bMustSucceed)
-{
- TFileStream * pStream;
- PFILE_DATA pFileData = NULL;
- ULONGLONG FileSize = 0;
- size_t nAllocateBytes;
-
- // Notify the user
- if(pLogger != NULL)
- pLogger->PrintProgress("Loading local file ...");
-
- // Attempt to open the file
- pStream = FileStream_OpenFile(szFileName, STREAM_FLAG_READ_ONLY);
- if(pStream == NULL)
- {
- if(pLogger != NULL && bMustSucceed == true)
- pLogger->PrintError(_T("Open failed: %s"), szFileName);
- return NULL;
- }
-
- // Verify the size
- FileStream_GetSize(pStream, &FileSize);
- if((FileSize >> 0x20) == 0)
- {
- // Allocate space for the file
- nAllocateBytes = sizeof(FILE_DATA) + (size_t)FileSize;
- pFileData = (PFILE_DATA)STORM_ALLOC(BYTE, nAllocateBytes);
- if(pFileData != NULL)
- {
- // Make sure it;s properly zeroed
- memset(pFileData, 0, nAllocateBytes);
- pFileData->dwFileSize = (DWORD)FileSize;
-
- // Load to memory
- if(!FileStream_Read(pStream, NULL, pFileData->FileData, pFileData->dwFileSize))
- {
- STORM_FREE(pFileData);
- pFileData = NULL;
- }
- }
- }
-
- FileStream_Close(pStream);
- return pFileData;
-}
-
static DWORD LoadLocalFileMD5(TLogHelper * pLogger, LPCTSTR szFileFullName, LPBYTE md5_file_local)
{
PFILE_DATA pFileData;
@@ -1834,10 +1929,6 @@ static DWORD AddFileToMpq(
pLogger->PrintError("Unexpected result from SFileCreateFile(%s)", szFileName);
dwErrCode = ERROR_CAN_NOT_COMPLETE;
}
- else
- {
- dwErrCode = ERROR_SUCCESS;
- }
}
return dwErrCode;
}
@@ -1989,7 +2080,7 @@ static DWORD TestOnLocalListFile_Read(TLogHelper & Logger, HANDLE hFile)
static DWORD TestOnLocalListFile(LPCTSTR szPlainName)
{
- TLogHelper Logger("LocalListFile", szPlainName);
+ TLogHelper Logger("TestLiFiSearch", szPlainName);
SFILE_FIND_DATA sf;
HANDLE hFile;
HANDLE hFind;
@@ -2066,7 +2157,7 @@ static DWORD TestReadFile_MasterMirror(LPCTSTR szMirrorName, LPCTSTR szMasterNam
{
TFileStream * pStream1; // Master file
TFileStream * pStream2; // Mirror file
- TLogHelper Logger("OpenMirrorFile", szMirrorName);
+ TLogHelper Logger("TestFileMirror", szMirrorName);
TCHAR szMirrorPath[MAX_PATH + MAX_PATH];
TCHAR szMasterPath[MAX_PATH];
DWORD dwProvider = 0;
@@ -2111,7 +2202,7 @@ static DWORD TestReadFile_MasterMirror(LPCTSTR szMirrorName, LPCTSTR szMasterNam
static DWORD TestFileStreamOperations(LPCTSTR szPlainName, DWORD dwStreamFlags)
{
TFileStream * pStream = NULL;
- TLogHelper Logger("FileStreamTest", szPlainName);
+ TLogHelper Logger("TestFileStream", szPlainName);
ULONGLONG ByteOffset;
ULONGLONG FileSize = 0;
TCHAR szFullPath[MAX_PATH];
@@ -2496,7 +2587,7 @@ static DWORD TestOpenArchive(
DWORD dwFlags, // Test flags. Lower bits contains the number of files
const void * pExtra) // Extra parameter
{
- TLogHelper Logger("TestMpq", szMpqName1);
+ TLogHelper Logger("TestReadingMpq", szMpqName1);
HANDLE hMpq = NULL;
DWORD dwExpectedFileCount = 0;
DWORD dwSearchFlags = 0;
@@ -2564,7 +2655,7 @@ static DWORD TestOpenArchive(
}
// Reset error code, if the failure is expected
- if((dwErrCode != ERROR_SUCCESS) && (hMpq == NULL) && (dwFlags & TFLG_WILL_FAIL))
+ if((dwErrCode != ERROR_SUCCESS || hMpq == NULL) && (dwFlags & TFLG_WILL_FAIL))
SetLastError(dwErrCode = ERROR_SUCCESS);
// Cleanup and exit
@@ -2616,9 +2707,9 @@ static void WINAPI CompactCallback(void * pvUserData, DWORD dwWork, ULONGLONG By
if(szWork != NULL)
{
if(pLogger != NULL)
- pLogger->PrintProgress("%s (%I64u of %I64u) ...", szWork, BytesDone, TotalBytes);
+ pLogger->PrintProgress("%s " fmt_X_of_Y_a " ...", szWork, BytesDone, TotalBytes);
else
- printf("%s (" fmt_I64u_a " of " fmt_I64u_a ") ... \r", szWork, BytesDone, TotalBytes);
+ printf("%s " fmt_X_of_Y_a " ... \r", szWork, BytesDone, TotalBytes);
}
}
@@ -2643,7 +2734,7 @@ static DWORD TestReopenArchive(
LPCSTR szExpectedHash, // Expected name+data hash
DWORD dwFlags) // Test flags. Lower bits contains the number of files
{
- TLogHelper Logger("ReopenMpqTest", szMpqName1);
+ TLogHelper Logger("Test_ReopenMpq", szMpqName1);
ULONGLONG PreMpqDataSize = (dwFlags & TFLG_ADD_USER_DATA) ? 0x400 : 0;
ULONGLONG UserDataSize = (dwFlags & TFLG_ADD_USER_DATA) ? 0x531 : 0;
LPCTSTR szCopyName = _T("StormLibTest_Reopened.mpq");
@@ -2713,7 +2804,7 @@ static DWORD TestReopenArchive(
static DWORD TestOpenArchive_SignatureTest(LPCTSTR szPlainName, LPCTSTR szOriginalName, DWORD dwFlags)
{
- TLogHelper Logger("SignatureTest", szPlainName);
+ TLogHelper Logger("Test_Signature", szPlainName);
HANDLE hMpq;
DWORD dwCreateFlags = MPQ_CREATE_LISTFILE | MPQ_CREATE_ATTRIBUTES | MPQ_FORMAT_VERSION_1;
DWORD dwErrCode = ERROR_SUCCESS;
@@ -2764,7 +2855,7 @@ static DWORD TestOpenArchive_SignatureTest(LPCTSTR szPlainName, LPCTSTR szOrigin
static DWORD TestOpenArchive_CompactArchive(LPCTSTR szPlainName, LPCTSTR szCopyName, DWORD bAddUserData)
{
- TLogHelper Logger("CompactMpqTest", szPlainName);
+ TLogHelper Logger("TestCompactMpq", szPlainName);
ULONGLONG PreMpqDataSize = (bAddUserData) ? 0x400 : 0;
ULONGLONG UserDataSize = (bAddUserData) ? 0x531 : 0;
HANDLE hMpq;
@@ -2844,7 +2935,7 @@ static DWORD TestOpenArchive_CompactArchive(LPCTSTR szPlainName, LPCTSTR szCopyN
static DWORD TestOpenArchive_AddFile(LPCTSTR szMpqName, DWORD dwFlags)
{
- TLogHelper Logger("AddFileToMpqTest", szMpqName);
+ TLogHelper Logger("TestAddFileToMpq", szMpqName);
PFILE_DATA pFileData = NULL;
LPCTSTR szBackupMpq = (dwFlags & TFLAG_REOPEN) ? _T("StormLibTest_Reopened.mpq") : szMpqName;
LPCSTR szFileName = "AddedFile001.txt";
@@ -2905,93 +2996,6 @@ static DWORD TestOpenArchive_AddFile(LPCTSTR szMpqName, DWORD dwFlags)
return dwErrCode;
}
-
-static DWORD ForEachFile_VerifyFileChecksum(LPCTSTR szFullPath)
-{
- PFILE_DATA pFileData;
- TCHAR * szExtension;
- TCHAR szShaFileName[MAX_PATH + 1];
- TCHAR szSha1Text[0x40];
- char szSha1TextA[0x40];
- DWORD dwErrCode = ERROR_SUCCESS;
-
- // Try to load the file with the SHA extension
- StringCopy(szShaFileName, _countof(szShaFileName), szFullPath);
- szExtension = _tcsrchr(szShaFileName, '.');
- if(szExtension == NULL)
- return ERROR_SUCCESS;
-
- // Skip .SHA and .TXT files
- if(!_tcsicmp(szExtension, _T(".sha")) || !_tcsicmp(szExtension, _T(".txt")))
- return ERROR_SUCCESS;
-
- // Load the local file to memory
- _tcscpy(szExtension, _T(".sha"));
- pFileData = LoadLocalFile(NULL, szShaFileName, false);
- if(pFileData != NULL)
- {
- TLogHelper Logger("VerifyFileHash");
-
- // Calculate SHA1 of the entire file
- dwErrCode = CalculateFileSha1(&Logger, szFullPath, szSha1Text);
- if(dwErrCode == ERROR_SUCCESS)
- {
- // Compare with what we loaded from the file
- if(pFileData->dwFileSize >= (SHA1_DIGEST_SIZE * 2))
- {
- // Compare the SHA1
- StringCopy(szSha1TextA, _countof(szSha1TextA), szSha1Text);
- if(_strnicmp(szSha1TextA, (char *)pFileData->FileData, (SHA1_DIGEST_SIZE * 2)))
- {
- SetLastError(dwErrCode = ERROR_FILE_CORRUPT);
- Logger.PrintError(_T("File CRC check failed: %s"), szFullPath);
- }
- }
- }
-
- STORM_FREE(pFileData);
- }
-
- return dwErrCode;
-}
-
-// Opens a found archive
-static DWORD ForEachFile_OpenArchive(LPCTSTR szFullPath)
-{
- HANDLE hMpq = NULL;
- DWORD dwFileCount = 0;
- DWORD dwErrCode = ERROR_SUCCESS;
-
- // Check if it's a MPQ file type
- if(IsMpqExtension(szFullPath))
- {
- TLogHelper Logger("OpenEachMpqTest", GetShortPlainName(szFullPath));
-
- // Open the MPQ name
- dwErrCode = OpenExistingArchive(&Logger, szFullPath, 0, &hMpq);
- if(dwErrCode == ERROR_AVI_FILE || dwErrCode == ERROR_FILE_CORRUPT || dwErrCode == ERROR_BAD_FORMAT)
- return ERROR_SUCCESS;
-
- // Search the archive and load every file
- if(dwErrCode == ERROR_SUCCESS)
- {
- dwErrCode = SearchArchive(&Logger, hMpq, 0, &dwFileCount);
- SFileCloseArchive(hMpq);
- }
-
- // Show warning if no files found
- if(dwFileCount == 0)
- {
- Logger.PrintMessage("Warning: no files in the archive");
- }
- }
-
- // Correct some errors
- if(dwErrCode == ERROR_FILE_CORRUPT || dwErrCode == ERROR_FILE_INCOMPLETE)
- return ERROR_SUCCESS;
- return dwErrCode;
-}
-
static DWORD TestCreateArchive_EmptyMpq(LPCTSTR szPlainName, DWORD dwCreateFlags)
{
TLogHelper Logger("CreateEmptyMpq", szPlainName);
@@ -3027,7 +3031,7 @@ static DWORD TestCreateArchive_EmptyMpq(LPCTSTR szPlainName, DWORD dwCreateFlags
static DWORD TestCreateArchive_TestGaps(LPCTSTR szPlainName)
{
- TLogHelper Logger("CreateGapsTest", szPlainName);
+ TLogHelper Logger("TestCreateGaps", szPlainName);
ULONGLONG ByteOffset1 = 0xFFFFFFFF;
ULONGLONG ByteOffset2 = 0xEEEEEEEE;
HANDLE hMpq = NULL;
@@ -3100,7 +3104,7 @@ static DWORD TestCreateArchive_TestGaps(LPCTSTR szPlainName)
static DWORD TestCreateArchive_NonStdNames(LPCTSTR szPlainName)
{
- TLogHelper Logger("NonStdNamesTest", szPlainName);
+ TLogHelper Logger("TestNonStdNames", szPlainName);
HANDLE hMpq = NULL;
DWORD dwErrCode = ERROR_SUCCESS;
@@ -3167,7 +3171,7 @@ static DWORD TestCreateArchive_MpqEditor(LPCTSTR szPlainName, LPCSTR szFileName)
static DWORD TestCreateArchive_FillArchive(LPCTSTR szPlainName, DWORD dwCreateFlags)
{
- TLogHelper Logger("CreateFullMpq", szPlainName);
+ TLogHelper Logger("TestCreateFull", szPlainName);
LPCSTR szFileData = "TestCreateArchive_FillArchive: Testing file data";
char szFileName[MAX_PATH];
HANDLE hMpq = NULL;
@@ -3375,7 +3379,7 @@ static DWORD TestCreateArchive_UnicodeNames()
static DWORD TestCreateArchive_FileFlagTest(LPCTSTR szPlainName)
{
- TLogHelper Logger("FileFlagTest", szPlainName);
+ TLogHelper Logger("TestFileFlag", szPlainName);
HANDLE hMpq = NULL; // Handle of created archive
TCHAR szFileName1[MAX_PATH];
TCHAR szFileName2[MAX_PATH];
@@ -3532,9 +3536,9 @@ static DWORD TestCreateArchive_FileFlagTest(LPCTSTR szPlainName)
static DWORD TestCreateArchive_WaveCompressionsTest(LPCTSTR szPlainName, LPCTSTR szWaveFile)
{
- TLogHelper Logger("CompressionsTest", szPlainName);
+ TLogHelper Logger("TestCompressions", szPlainName);
HANDLE hMpq = NULL; // Handle of created archive
- TCHAR szFileName[MAX_PATH]; // Source file to be added
+ TCHAR szFileName[MAX_PATH]; // Source file to be added
char szArchivedName[MAX_PATH];
DWORD dwCmprCount = sizeof(WaveCompressions) / sizeof(DWORD);
DWORD dwAddedFiles = 0;
@@ -3681,7 +3685,7 @@ static DWORD TestCreateArchive_ListFilePos(LPCTSTR szPlainName)
static DWORD TestCreateArchive_BigArchive(LPCTSTR szPlainName)
{
- TLogHelper Logger("BigMpqTest", szPlainName);
+ TLogHelper Logger("TestBigArchive", szPlainName);
HANDLE hMpq = NULL; // Handle of created archive
TCHAR szLocalFileName[MAX_PATH];
char szArchivedName[MAX_PATH];
@@ -3736,7 +3740,7 @@ static DWORD TestCreateArchive_BigArchive(LPCTSTR szPlainName)
// "MPQ_2014_v4_Heroes_Replay.MPQ", "AddFile-replay.message.events"
static DWORD TestModifyArchive_ReplaceFile(LPCTSTR szMpqPlainName, LPCTSTR szFilePlainName)
{
- TLogHelper Logger("ModifyTest", szMpqPlainName);
+ TLogHelper Logger("TestModifyMpq", szMpqPlainName);
HANDLE hMpq = NULL;
TCHAR szFileFullName[MAX_PATH];
TCHAR szMpqFullName[MAX_PATH];
@@ -4055,6 +4059,9 @@ static const TEST_INFO Test_OpenMpqs[] =
{_T("mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE"), NULL, "10e4dcdbe95b7ad731c563ec6b71bc16", 82}, // Encrypted archive from Starcraft II installer
{_T("part-file://MPQ_2010_v2_HashTableCompressed.MPQ.part"),NULL, "d41d8cd98f00b204e9800998ecf8427e", 14263}, // Partial MPQ with compressed hash table
{_T("blk4-file://streaming/model.MPQ.0"), NULL, "e06b00efb2fc7e7469dd8b3b859ae15d", 39914}, // Archive that is merged with multiple files
+ {_T("MPQ_2023_v2_MemoryCorruption.SC2Replay"), NULL, "4cf5021aa272298e64712a378a50df44", 10}, // MPQ archive v 2.0, archive size is wrong
+ {_T("MPQ_2023_v1_StarcraftMap.scm"), NULL, "7830c51700697dd3c175f086a3157b29", 4}, // StarCraft map from StarCraft: Brood War 1.16
+ {_T("MPQ_2023_v1_BroodWarMap.scx"), NULL, "dd3afa3c2f5e562ce3ca91c0c605a71f", 3}, // Brood War map from StarCraft: Brood War 1.16
// Protected archives
{_T("MPQ_2002_v1_ProtectedMap_InvalidUserData.w3x"), NULL, "b900364cc134a51ddeca21a13697c3ca", 79},
@@ -4164,7 +4171,7 @@ static const TEST_INFO Test_Signature[] =
//-----------------------------------------------------------------------------
// Main
-//#define TEST_COMMAND_LINE
+#define TEST_COMMAND_LINE
#define TEST_LOCAL_LISTFILE
#define TEST_STREAM_OPERATIONS
#define TEST_MASTER_MIRROR
@@ -4183,20 +4190,29 @@ int _tmain(int argc, TCHAR * argv[])
// Initialize storage and mix the random number generator
printf("==== Test Suite for StormLib version %s ====\n", STORMLIB_VERSION_STRING);
dwErrCode = InitializeMpqDirectory(argv, argc);
-
- // Check creation of the MPQ with LZMA compression
- LPCTSTR szArchiveName = _T("e:\\MemoryCorruption.SC2Replay");
+/*
+ // Check opening of a MPQ
+ LPCTSTR szArchiveName = _T("e:\\Volcanis.scm");
+ LPBYTE pbBuffer = NULL;
HANDLE hFile = NULL;
HANDLE hMpq = NULL;
-/*
+ DWORD dwFileSize;
+
if(SFileOpenArchive(szArchiveName, 0, 0, &hMpq))
{
- if(SFileOpenFileEx(hMpq, "DlgSearchFile.cpp", 0, &hFile))
+ if(SFileOpenFileEx(hMpq, "staredit\\scenario.chk", 0, &hFile))
{
- DWORD dwBytesRead = 0;
- BYTE Buffer[0x100];
+ if((dwFileSize = SFileGetFileSize(hFile, NULL)) != NULL)
+ {
+ if((pbBuffer = STORM_ALLOC(BYTE, dwFileSize)) != NULL)
+ {
+ DWORD dwBytesRead = 0;
- SFileReadFile(hFile, Buffer, sizeof(Buffer), &dwBytesRead, NULL);
+ SFileReadFile(hFile, pbBuffer, dwFileSize, &dwBytesRead, NULL);
+ assert(dwBytesRead == dwFileSize);
+ STORM_FREE(pbBuffer);
+ }
+ }
SFileCloseFile(hFile);
}
SFileCloseArchive(hMpq);
@@ -4205,9 +4221,9 @@ int _tmain(int argc, TCHAR * argv[])
#ifdef TEST_COMMAND_LINE
// Test-open MPQs from the command line. They must be plain name
// and must be placed in the Test-MPQs folder
- for(int i = 2; i < argc; i++)
+ for(int i = 1; i < argc; i++)
{
- TestOpenArchive(argv[i], Bliz, 0, "Scripts\\War3map.j", NULL);
+ TestOpenArchive(argv[i], NULL, NULL, 0, &LfBliz);
}
#endif // TEST_COMMAND_LINE
@@ -4287,11 +4303,7 @@ int _tmain(int argc, TCHAR * argv[])
// Verify SHA1 of each MPQ that we have in the list
if(dwErrCode == ERROR_SUCCESS)
- dwErrCode = FindFiles(ForEachFile_VerifyFileChecksum, szMpqSubDir);
-
- // Open every MPQ that we have in the storage
- if(dwErrCode == ERROR_SUCCESS)
- dwErrCode = FindFiles(ForEachFile_OpenArchive, NULL);
+ dwErrCode = VerifyFileHashes(szMpqSubDir);
// Create an empty archive v2
if(dwErrCode == ERROR_SUCCESS)
diff --git a/test/TLogHelper.cpp b/test/TLogHelper.cpp
index 84dc0aa..d96108f 100644
--- a/test/TLogHelper.cpp
+++ b/test/TLogHelper.cpp
@@ -28,6 +28,8 @@
#define fmt_I64X_a "%llX"
#endif
+#define fmt_X_of_Y_a "(" fmt_I64u_a " of " fmt_I64u_a ")"
+
#ifdef __CASCLIB_SELF__
#define TEST_MIN CASCLIB_MIN
#define TEST_PRINT_PREFIX false
diff --git a/test/stormlib-test-001-linux.txt b/test/stormlib-test-001-linux.txt
new file mode 100644
index 0000000..3c193ca
--- /dev/null
+++ b/test/stormlib-test-001-linux.txt
@@ -0,0 +1,136 @@
+==== Test Suite for StormLib version 9.24 ====
+InitWorkFolder: Work directory /media/ladik/MPQs (default)
+TestLiFiSearch (FLAT-MAP:ListFile_Blizzard.txt) succeeded.
+TestLiFiSearch (ListFile_Blizzard.txt) succeeded.
+TestFileStream (MPQ_2013_v4_alternate-original.MPQ) succeeded.
+TestFileStream (MPQ_2013_v4_alternate-original.MPQ) succeeded.
+TestFileStream (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
+TestFileStream (part-file://MPQ_2009_v2_WoW_patch.MPQ.part) succeeded.
+TestFileStream (blk4-file://streaming/model.MPQ.0) succeeded.
+TestFileStream (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
+TestFileMirror (part-file://MPQ_2009_v1_patch-created.MPQ.part) succeeded.
+TestFileMirror (part-file://MPQ_2009_v1_patch-partial.MPQ.part) succeeded.
+TestFileMirror (part-file://MPQ_2009_v1_patch-complete.MPQ.part) succeeded.
+TestFileMirror (MPQ_2013_v4_alternate-created.MPQ) succeeded.
+TestFileMirror (MPQ_2013_v4_alternate-incomplete.MPQ) succeeded.
+TestFileMirror (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_patch_rt_SC1B.mpq) succeeded.
+TestReadingMpq (MPQ_1997_v1_StarDat_SC1B.mpq) succeeded.
+TestReadingMpq (MPQ_1997_v1_INSTALL_SC1B.EXE_) succeeded.
+TestReadingMpq: Warning: CRC32 error on (signature)
+TestReadingMpq: Warning: CRC32 error on (signature)
+TestReadingMpq (MPQ_2016_v1_D2XP_IX86_1xx_114a.mpq) succeeded.
+TestReadingMpq (MPQ_2018_v1_icon_error.w3m) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_STANDARD.SNP) succeeded.
+TestReadingMpq (MPQ_2012_v2_EmptyMpq.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_EmptyMpq.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_patch-base-16357.MPQ) succeeded.
+TestReadingMpq (MPQ_2011_v4_InvalidHetEntryCount.MPQ) succeeded.
+TestReadingMpq (MPQ_2002_v1_BlockTableCut.MPQ) succeeded.
+TestReadingMpq (MPQ_2010_v2_HasUserData.s2ma) succeeded.
+TestReadingMpq: Warning: CRC32 error on (listfile)
+TestReadingMpq: Warning: CRC32 error on (listfile)
+TestReadingMpq: Warning: CRC32 error on File00000003.xxx
+TestReadingMpq (MPQ_2014_v1_AttributesOneEntryLess.w3x) succeeded.
+TestReadingMpq (MPQ_2020_v1_AHF04patch.mix) succeeded.
+TestReadingMpq (MPQ_2010_v3_expansion-locale-frFR.MPQ) succeeded.
+TestReadingMpq (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
+TestReadingMpq (part-file://MPQ_2010_v2_HashTableCompressed.MPQ.part) succeeded.
+TestReadingMpq (blk4-file://streaming/model.MPQ.0) succeeded.
+TestReadingMpq: Warning: CRC32 error on replay.message.events
+TestReadingMpq (MPQ_2023_v2_MemoryCorruption.SC2Replay) succeeded.
+TestReadingMpq (MPQ_2023_v1_StarcraftMap.scm) succeeded.
+TestReadingMpq (MPQ_2023_v1_BroodWarMap.scx) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_InvalidUserData.w3x) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_InvalidMpqFormat.w3x) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_Spazzler.w3x) succeeded.
+TestReadingMpq (MPQ_2014_v1_ProtectedMap_Spazzler2.w3x) succeeded.
+TestReadingMpq (MPQ_2014_v1_ProtectedMap_Spazzler3.w3x) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_BOBA.w3m) succeeded.
+TestReadingMpq (MPQ_2015_v1_ProtectedMap_KangTooJee.w3x) succeeded.
+TestReadingMpq (MPQ_2015_v1_ProtectedMap_Somj2hM16.w3x) succeeded.
+TestReadingMpq (MPQ_2015_v1_ProtectedMap_Spazy.w3x) succeeded.
+TestReadingMpq (MPQ_2015_v1_MessListFile.mpq) succeeded.
+TestReadingMpq (MPQ_2016_v1_ProtectedMap_TableSizeOverflow.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_ProtectedMap_HashOffsIsZero.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_ProtectedMap_Somj2.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_WME4_4.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_SP_(4)Adrenaline.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_ProtectedMap_1.4.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_KoreanFile.w3m) succeeded.
+TestReadingMpq (MPQ_2017_v1_Eden_RPG_S2_2.5J.w3x) succeeded.
+TestReadingMpq (MPQ_2017_v1_BigDummyFiles.w3x) succeeded.
+TestReadingMpq (MPQ_2017_v1_TildeInFileName.mpq) succeeded.
+TestReadingMpq (MPQ_2018_v1_EWIX_v8_7.w3x) succeeded.
+TestReadingMpq (MPQ_2020_v4_FakeMpqHeaders.SC2Mod) succeeded.
+TestReadingMpq (MPQ_2020_v4_NP_Protect_1.s2ma) succeeded.
+TestReadingMpq (MPQ_2020_v4_NP_Protect_2.s2ma) succeeded.
+TestReadingMpq (MPQ_2015_v1_flem1.w3x) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_HashTable_FakeValid.w3x) succeeded.
+TestReadingMpq (MPQ_2021_v1_CantExtractCHK.scx) succeeded.
+TestReadingMpq (MPQ_2022_v1_Sniper.scx) succeeded.
+TestReadingMpq (MPQ_2022_v1_OcOc_Bound_2.scx) succeeded.
+TestReadingMpq (MPQ_2020_v1_HS0.1.asi) succeeded.
+TestReadingMpq (MPQ_2022_v1_hs0.8.asi) succeeded.
+TestReadingMpq (MPQ_2022_v1_MoeMoeMod.asi) succeeded.
+TestReadingMpq (MPx_2013_v1_LongwuOnline.mpk) succeeded.
+TestReadingMpq (MPx_2013_v1_WarOfTheImmortals.sqp) succeeded.
+TestReadingMpq (MPx_2022_v1_Music.mpk) succeeded.
+TestReadingMpq (MPx_2022_v1_Scp.mpk) succeeded.
+TestReadingMpq (MPx_2022_v1_UI.mpk) succeeded.
+TestReadingMpq (MPQ_1998_v1_StarCraft.mpq) succeeded.
+TestReadingMpq (MPQ_2012_v4_OldWorld.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_world.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_locale-enGB.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_Base1.SC2Data) succeeded.
+TestReadingMpq (MPQ_2013_v4_Mods#Core.SC2Mod#enGB.SC2Assets) succeeded.
+TestReadingMpq (MPQ_2013_v4_Base1.SC2Data) succeeded.
+TestReadingMpq (MPQ_2013_v4_Base3.SC2Maps) succeeded.
+TestReadingMpq (MPQ_2013_v4_Mods#Liberty.SC2Mod#enGB.SC2Data) succeeded.
+TestReadingMpq (MPQ_2014_v4_base-Win.MPQ) succeeded.
+TestReadingMpq (MPQ_2014_v4_base-Win.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_STANDARD.SNP) succeeded.
+TestReadingMpq (MPQ_1999_v1_WeakSignature.exe) succeeded.
+TestReadingMpq (MPQ_2003_v1_WeakSignatureEmpty.exe) succeeded.
+TestReadingMpq (MPQ_2002_v1_StrongSignature.w3m) succeeded.
+TestReadingMpq (MPQ_1998_v1_StarDat.mpq) succeeded.
+TestReadingMpq (MPQ_1999_v1_WeakSignature.exe) succeeded.
+TestReadingMpq (flat-file://streaming/model.MPQ.0) succeeded.
+TestReadingMpq (MPQ_2013_vX_Battle.net.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
+TestReadingMpq (MPQ_2002_v1_StrongSignature.w3m) succeeded.
+TestReadingMpq (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
+Test_ReopenMpq (MPQ_2010_v3_expansion-locale-frFR.MPQ) succeeded.
+Test_ReopenMpq (MPQ_2016_v1_00000.pak) succeeded.
+Test_ReopenMpq (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
+Test_ReopenMpq (MPQ_2013_v4_expansion1.MPQ) succeeded.
+Test_ReopenMpq (MPQ_2014_v1_out1.w3x) succeeded.
+Test_ReopenMpq (MPQ_2014_v1_out2.w3x) succeeded.
+Test_ReopenMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
+Test_ReopenMpq (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
+Test_Signature (MPQ_1999_v1_WeakSigned1.mpq) succeeded.
+Test_Signature (MPQ_1999_v1_WeakSigned1.mpq) succeeded.
+TestVerifyHash succeeded.
+CreateEmptyMpq (StormLibTest_EmptyMpq_v2.mpq) succeeded.
+CreateEmptyMpq (StormLibTest_EmptyMpq_v4.mpq) succeeded.
+TestCreateGaps (StormLibTest_GapsTest.mpq) succeeded.
+TestNonStdNames (StormLibTest_NonStdNames.mpq) succeeded.
+CreateMpqEditor (StormLibTest_MpqEditorTest.mpq) succeeded.
+TestCreateFull (StormLibTest_FileTableFull.mpq) succeeded.
+TestCreateFull (StormLibTest_FileTableFull.mpq) succeeded.
+TestCreateFull (StormLibTest_FileTableFull.mpq) succeeded.
+TestCreateFull (StormLibTest_FileTableFull.mpq) succeeded.
+IncMaxFileCount (StormLibTest_IncMaxFileCount.mpq) succeeded.
+MpqUnicodeName succeeded.
+TestFileFlag (StormLibTest_FileFlagTest.mpq) succeeded.
+TestCompressions: Warning: CRC32 error on WaveFile_01.wav
+TestCompressions: Warning: CRC32 error on WaveFile_02.wav
+TestCompressions (StormLibTest_AddWaveMonoBadTest.mpq) succeeded.
+TestCompressions: Warning: CRC32 error on WaveFile_01.wav
+TestCompressions: Warning: CRC32 error on WaveFile_02.wav
+ListFilePos (StormLibTest_ListFilePos.mpq) succeeded.
+TestBigArchive (StormLibTest_BigArchive_v4.mpq) succeeded.
+TestModifyMpq (MPQ_2014_v4_Base.StormReplay) succeeded.
+TestModifyMpq (MPQ_2022_v1_v4.329.w3x) succeeded. \ No newline at end of file
diff --git a/test/stormlib-test-001.txt b/test/stormlib-test-001.txt
index 70d5325..b8ceeac 100644
--- a/test/stormlib-test-001.txt
+++ b/test/stormlib-test-001.txt
@@ -1,2370 +1,136 @@
-Microsoft Windows [Version 10.0.19045.2486]
-(c) Microsoft Corporation. All rights reserved.
-
-E:\Ladik\Appdir\StormLib\bin\StormLib_test\x64\Release>StormLib_test.exe
==== Test Suite for StormLib version 9.24 ====
-InitWorkDir: Work directory \Multimedia\MPQs (default)
-LocalListFile (FLAT-MAP:ListFile_Blizzard.txt) succeeded.
-LocalListFile (ListFile_Blizzard.txt) succeeded.
-FileStreamTest (MPQ_2013_v4_alternate-original.MPQ) succeeded.
-FileStreamTest (MPQ_2013_v4_alternate-original.MPQ) succeeded.
-FileStreamTest (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
-FileStreamTest (part-file://MPQ_2009_v2_WoW_patch.MPQ.part) succeeded.
-FileStreamTest (blk4-file://streaming/model.MPQ.0) succeeded.
-FileStreamTest (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
-OpenMirrorFile (part-file://MPQ_2009_v1_patch-created.MPQ.part) succeeded.
-OpenMirrorFile (part-file://MPQ_2009_v1_patch-partial.MPQ.part) succeeded.
-OpenMirrorFile (part-file://MPQ_2009_v1_patch-complete.MPQ.part) succeeded.
-OpenMirrorFile (MPQ_2013_v4_alternate-created.MPQ) succeeded.
-OpenMirrorFile (MPQ_2013_v4_alternate-incomplete.MPQ) succeeded.
-OpenMirrorFile (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
-TestMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
-TestMpq (MPQ_1997_v1_patch_rt_SC1B.mpq) succeeded.
-TestMpq (MPQ_1997_v1_StarDat_SC1B.mpq) succeeded.
-TestMpq (MPQ_1997_v1_INSTALL_SC1B.EXE_) succeeded.
-TestMpq: Warning: CRC32 error on (signature)
-TestMpq: Warning: CRC32 error on (signature)
-TestMpq (MPQ_2016_v1_D2XP_IX86_1xx_114a.mpq) succeeded.
-TestMpq (MPQ_2018_v1_icon_error.w3m) succeeded.
-TestMpq (MPQ_1997_v1_Diablo1_STANDARD.SNP) succeeded.
-TestMpq (MPQ_2012_v2_EmptyMpq.MPQ) succeeded.
-TestMpq (MPQ_2013_v4_EmptyMpq.MPQ) succeeded.
-TestMpq (MPQ_2013_v4_patch-base-16357.MPQ) succeeded.
-TestMpq (MPQ_2011_v4_InvalidHetEntryCount.MPQ) succeeded.
-TestMpq (MPQ_2002_v1_BlockTableCut.MPQ) succeeded.
-TestMpq (MPQ_2010_v2_HasUserData.s2ma) succeeded.
-TestMpq: Warning: CRC32 error on (listfile)
-TestMpq: Warning: CRC32 error on (listfile)
-TestMpq: Warning: CRC32 error on File00000003.xxx
-TestMpq (MPQ_2014_v1_AttributesOneEntryLess.w3x) succeeded.
-TestMpq (MPQ_2020_v1_AHF04patch.mix) succeeded.
-TestMpq (MPQ_2010_v3_expansion-locale-frFR.MPQ) succeeded.
-TestMpq (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
-TestMpq (part-file://MPQ_2010_v2_HashTableCompressed.MPQ.part) succeeded.
-TestMpq (blk4-file://streaming/model.MPQ.0) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_InvalidUserData.w3x) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_InvalidMpqFormat.w3x) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_Spazzler.w3x) succeeded.
-TestMpq (MPQ_2014_v1_ProtectedMap_Spazzler2.w3x) succeeded.
-TestMpq (MPQ_2014_v1_ProtectedMap_Spazzler3.w3x) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_BOBA.w3m) succeeded.
-TestMpq (MPQ_2015_v1_ProtectedMap_KangTooJee.w3x) succeeded.
-TestMpq (MPQ_2015_v1_ProtectedMap_Somj2hM16.w3x) succeeded.
-TestMpq (MPQ_2015_v1_ProtectedMap_Spazy.w3x) succeeded.
-TestMpq (MPQ_2015_v1_MessListFile.mpq) succeeded.
-TestMpq (MPQ_2016_v1_ProtectedMap_TableSizeOverflow.w3x) succeeded.
-TestMpq (MPQ_2016_v1_ProtectedMap_HashOffsIsZero.w3x) succeeded.
-TestMpq (MPQ_2016_v1_ProtectedMap_Somj2.w3x) succeeded.
-TestMpq (MPQ_2016_v1_WME4_4.w3x) succeeded.
-TestMpq (MPQ_2016_v1_SP_(4)Adrenaline.w3x) succeeded.
-TestMpq (MPQ_2016_v1_ProtectedMap_1.4.w3x) succeeded.
-TestMpq (MPQ_2016_v1_KoreanFile.w3m) succeeded.
-TestMpq (MPQ_2017_v1_Eden_RPG_S2_2.5J.w3x) succeeded.
-TestMpq (MPQ_2017_v1_BigDummyFiles.w3x) succeeded.
-TestMpq (MPQ_2017_v1_TildeInFileName.mpq) succeeded.
-TestMpq (MPQ_2018_v1_EWIX_v8_7.w3x) succeeded.
-TestMpq (MPQ_2020_v4_FakeMpqHeaders.SC2Mod) succeeded.
-TestMpq (MPQ_2020_v4_NP_Protect_1.s2ma) succeeded.
-TestMpq (MPQ_2020_v4_NP_Protect_2.s2ma) succeeded.
-TestMpq (MPQ_2015_v1_flem1.w3x) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_HashTable_FakeValid.w3x) succeeded.
-TestMpq (MPQ_2021_v1_CantExtractCHK.scx) succeeded.
-TestMpq (MPQ_2022_v1_Sniper.scx) succeeded.
-TestMpq (MPQ_2022_v1_OcOc_Bound_2.scx) succeeded.
-TestMpq (MPQ_2020_v1_HS0.1.asi) succeeded.
-TestMpq (MPQ_2022_v1_hs0.8.asi) succeeded.
-TestMpq (MPQ_2022_v1_MoeMoeMod.asi) succeeded.
-TestMpq (MPx_2013_v1_LongwuOnline.mpk) succeeded.
-TestMpq (MPx_2013_v1_WarOfTheImmortals.sqp) succeeded.
-TestMpq (MPx_2022_v1_Music.mpk) succeeded.
-TestMpq (MPx_2022_v1_Scp.mpk) succeeded.
-TestMpq (MPx_2022_v1_UI.mpk) succeeded.
-TestMpq (MPQ_1998_v1_StarCraft.mpq) succeeded.
-TestMpq (MPQ_2012_v4_OldWorld.MPQ) succeeded.
-TestMpq (MPQ_2013_v4_world.MPQ) succeeded.
-TestMpq (MPQ_2013_v4_locale-enGB.MPQ) succeeded.
-TestMpq (MPQ_2013_v4_Base1.SC2Data) succeeded.
-TestMpq (MPQ_2013_v4_Mods#Core.SC2Mod#enGB.SC2Assets) succeeded.
-TestMpq (MPQ_2013_v4_Base1.SC2Data) succeeded.
-TestMpq (MPQ_2013_v4_Base3.SC2Maps) succeeded.
-TestMpq (MPQ_2013_v4_Mods#Liberty.SC2Mod#enGB.SC2Data) succeeded.
-TestMpq (MPQ_2014_v4_base-Win.MPQ) succeeded.
-TestMpq (MPQ_2014_v4_base-Win.MPQ) succeeded.
-TestMpq (MPQ_1997_v1_Diablo1_STANDARD.SNP) succeeded.
-TestMpq (MPQ_1999_v1_WeakSignature.exe) succeeded.
-TestMpq (MPQ_2003_v1_WeakSignatureEmpty.exe) succeeded.
-TestMpq (MPQ_2002_v1_StrongSignature.w3m) succeeded.
-TestMpq (MPQ_1998_v1_StarDat.mpq) succeeded.
-TestMpq (MPQ_1999_v1_WeakSignature.exe) succeeded.
-TestMpq (flat-file://streaming/model.MPQ.0) succeeded.
-TestMpq (MPQ_2013_vX_Battle.net.MPQ) succeeded.
-TestMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
-TestMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
-TestMpq (MPQ_2002_v1_StrongSignature.w3m) succeeded.
-TestMpq (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
-ReopenMpqTest (MPQ_2010_v3_expansion-locale-frFR.MPQ) succeeded.
-ReopenMpqTest (MPQ_2016_v1_00000.pak) succeeded.
-ReopenMpqTest (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
-ReopenMpqTest (MPQ_2013_v4_expansion1.MPQ) succeeded.
-ReopenMpqTest (MPQ_2014_v1_out1.w3x) succeeded.
-ReopenMpqTest (MPQ_2014_v1_out2.w3x) succeeded.
-ReopenMpqTest (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
-ReopenMpqTest (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
-SignatureTest (MPQ_1999_v1_WeakSigned1.mpq) succeeded.
-SignatureTest (MPQ_1999_v1_WeakSigned1.mpq) succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-VerifyFileHash succeeded.
-OpenEachMpqTest ((10)DustwallowKeys.w3m) succeeded.
-OpenEachMpqTest (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
-OpenEachMpqTest (MPQ_1997_v1_Diablo1_single_0.sv) succeeded.
-OpenEachMpqTest (MPQ_1997_v1_patch_rt_SC1B.mpq) succeeded.
-OpenEachMpqTest (MPQ_1997_v1_StarDat.mpq) succeeded.
-OpenEachMpqTest (MPQ_1997_v1_StarDat_SC1B.mpq) succeeded.
-OpenEachMpqTest (MPQ_1998_v1_StarCraft.mpq) succeeded.
-OpenEachMpqTest (MPQ_1998_v1_StarDat.mpq) succeeded.
-OpenEachMpqTest (MPQ_2002_v1_BlockTableCut.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2002_v1_ProtectedMap_BOBA.w3m) succeeded.
-OpenEachMpqTest (MPQ_2002_v1_ProtectedMap_HashTable_FakeValid.w3x) succeeded.
-OpenEachMpqTest (MPQ_2002_v1_ProtectedMap_InvalidMpqFormat.w3x) succeeded.
-OpenEachMpqTest (MPQ_2002_v1_ProtectedMap_InvalidUserData.w3x) succeeded.
-OpenEachMpqTest (MPQ_2002_v1_ProtectedMap_Spazzler.w3x) succeeded.
-OpenEachMpqTest (MPQ_2002_v1_StrongSignature.w3m) succeeded.
-OpenEachMpqTest (MPQ_2009_v1_patch-complete.MPQ.part) succeeded.
-OpenEachMpqTest (MPQ_2009_v1_patch-original.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2009_v1_patch-partial.MPQ.part) succeeded.
-OpenEachMpqTest (MPQ_2009_v2_WoW_patch.MPQ.part) succeeded.
-OpenEachMpqTest (MPQ_2010_v2_HashTableCompressed.MPQ.part) succeeded.
-OpenEachMpqTest (MPQ_2010_v2_HasUserData.s2ma) succeeded.
-OpenEachMpqTest (MPQ_2010_v3_expansion-locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
-OpenEachMpqTest (MPQ_2011_v4_InvalidHetEntryCount.MPQ) succeeded.
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest (MPQ_2012_v4_OldWorld.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_alternate-downloaded.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_alternate-incomplete.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_alternate-original.MPQ) succeeded.
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest (MPQ_2013_v4_expansion1.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_patch-base-16357.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_world.MPQ) succeeded.
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest (MPQ_2014_v1_AttributesOneEntryLess.w3x) succeeded.
-OpenEachMpqTest (MPQ_2014_v1_CompactTest.w3x) succeeded.
-OpenEachMpqTest (MPQ_2014_v1_out1.w3x) succeeded.
-OpenEachMpqTest (MPQ_2014_v1_out2.w3x) succeeded.
-OpenEachMpqTest (MPQ_2014_v1_ProtectedMap_Spazzler2.w3x) succeeded.
-OpenEachMpqTest (MPQ_2014_v1_ProtectedMap_Spazzler3.w3x) succeeded.
-OpenEachMpqTest (MPQ_2014_v4_base-Win.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2015_v1_flem1.w3x) succeeded.
-OpenEachMpqTest (MPQ_2015_v1_MessListFile.mpq) succeeded.
-OpenEachMpqTest (MPQ_2015_v1_ProtectedMap_KangTooJee.w3x) succeeded.
-OpenEachMpqTest (MPQ_2015_v1_ProtectedMap_Somj2hM16.w3x) succeeded.
-OpenEachMpqTest (MPQ_2015_v1_ProtectedMap_Spazy.w3x) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_AnotherProtectedMap.w3x) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_D2XP_IX86_1xx_114a.mpq) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_DeathWing_ORPG_v.1.45a.w3x) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_KoreanFile.w3m) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_ProtectedMap123.w3x) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_ProtectedMap_1.4.w3x) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_ProtectedMap_HashOffsIsZero.w3x) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_ProtectedMap_Somj2.w3x) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_ProtectedMap_TableSizeOverflow.w3x) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_SP_(4)Adrenaline.w3x) succeeded.
-OpenEachMpqTest (MPQ_2016_v1_WME4_4.w3x) succeeded.
-OpenEachMpqTest (MPQ_2017_v1_BigDummyFiles.w3x) succeeded.
-OpenEachMpqTest (MPQ_2017_v1_Eden_RPG_S2_2.5J.w3x) succeeded.
-OpenEachMpqTest (MPQ_2017_v1_TildeInFileName.mpq) succeeded.
-OpenEachMpqTest (MPQ_2018_v1_EWIX_v8_7.w3x) succeeded.
-OpenEachMpqTest (MPQ_2018_v1_icon_error.w3m) succeeded.
-OpenEachMpqTest (MPQ_2020_v1_HS0.1.asi) succeeded.
-OpenEachMpqTest (MPQ_2020_v4_FakeMpqHeaders.SC2Mod) succeeded.
-OpenEachMpqTest (MPQ_2020_v4_NP_Protect_1.s2ma) succeeded.
-OpenEachMpqTest (MPQ_2020_v4_NP_Protect_2.s2ma) succeeded.
-OpenEachMpqTest (MPQ_2020_v4_NP_Protect_3.s2ma) succeeded.
-OpenEachMpqTest (MPQ_2020_v4_NP_Protect_4.s2ma) succeeded.
-OpenEachMpqTest (MPQ_2020_v4_ThreeFakeHeaders.s2ma) succeeded.
-OpenEachMpqTest (MPQ_2021_v1_CrossLinkedFiles.w3x) succeeded.
-OpenEachMpqTest (MPQ_2021_v4_BzipError.SC2Replay) succeeded.
-OpenEachMpqTest (MPQ_2022_v1_hs0.8.asi) succeeded.
-OpenEachMpqTest (MPQ_2022_v1_MoeMoeMod.asi) succeeded.
-OpenEachMpqTest (MPQ_2022_v1_v4.329.w3x) succeeded.
-OpenEachMpqTest (hs-0-3604-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-0-5314-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-5314-5435-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-5435-5506-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-5506-5834-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-5834-6024-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6024-6141-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6141-6187-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6187-6284-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6284-6485-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6485-6898-Win-final.MPQ) succeeded.
-OpenEachMpqTest (s1-1998-BroodWar.mpq) succeeded.
-OpenEachMpqTest (s2-update-base-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-26147.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-28522.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-30508.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-32283.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-32384.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-34644.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-26147.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-28522.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-30508.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-32283.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-32384.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-34644.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-36281.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13164.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13205.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13287.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13329.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13596.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13623.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-13914.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14007.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14333.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14480.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14545.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14946.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15005.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15050.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16309.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16357.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16516.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16650.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16844.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16965.MPQ) succeeded.
-OpenEachMpqTest (wow-update-oldworld-13154.MPQ) succeeded.
-OpenEachMpqTest (wow-update-oldworld-13286.MPQ) succeeded.
-OpenEachMpqTest (model.MPQ.0) succeeded.
-OpenEachMpqTest (DIABDAT.mpq) succeeded.
-OpenEachMpqTest (single_0.sv) succeeded.
-OpenEachMpqTest (DIABDAT.MPQ) succeeded.
-OpenEachMpqTest (hellfire.mpq) succeeded.
-OpenEachMpqTest (hfmonk.mpq) succeeded.
-OpenEachMpqTest (hfmusic.mpq) succeeded.
-OpenEachMpqTest (hfvoice.mpq) succeeded.
-OpenEachMpqTest (gs.mpq) succeeded.
-OpenEachMpqTest (imp.mpq) succeeded.
-OpenEachMpqTest (pic.mpq) succeeded.
-OpenEachMpqTest (sndfx.mpq) succeeded.
-OpenEachMpqTest (special.mpq) succeeded.
-OpenEachMpqTest (patch_rt.mpq) succeeded.
-OpenEachMpqTest (StarDat.mpq) succeeded.
-OpenEachMpqTest (BrooDat.mpq) succeeded.
-OpenEachMpqTest (BroodWar.mpq) succeeded.
-OpenEachMpqTest (Patch_rt.mpq) succeeded.
-OpenEachMpqTest (StarCraft.mpq) succeeded.
-OpenEachMpqTest (StarDat.mpq) succeeded.
-OpenEachMpqTest (StardatSW.mpq) succeeded.
-OpenEachMpqTest (StarDat_BETA.mpq) succeeded.
-OpenEachMpqTest (War2Dat.mpq) succeeded.
-OpenEachMpqTest (War2Patch.mpq) succeeded.
-OpenEachMpqTest (d2char.mpq) succeeded.
-OpenEachMpqTest (d2data.mpq) succeeded.
-OpenEachMpqTest (d2exp.mpq) succeeded.
-OpenEachMpqTest (d2music.mpq) succeeded.
-OpenEachMpqTest (d2sfx.mpq) succeeded.
-OpenEachMpqTest (d2speech.mpq) succeeded.
-OpenEachMpqTest (d2video.mpq) succeeded.
-OpenEachMpqTest (D2XMUSIC.MPQ) succeeded.
-OpenEachMpqTest (d2xtalk.mpq) succeeded.
-OpenEachMpqTest (d2xvideo.mpq) succeeded.
-OpenEachMpqTest (Patch_D2.mpq) succeeded.
-OpenEachMpqTest (setup.mpq) succeeded.
-OpenEachMpqTest (HumanEd.mpq) succeeded.
-OpenEachMpqTest ((10)DustwallowKeys.w3m) succeeded.
-OpenEachMpqTest ((10)RagingStream.w3x) succeeded.
-OpenEachMpqTest ((4)aaaa.w3x) succeeded.
-OpenEachMpqTest (a_tvse_x_1_2_f.w3x) succeeded.
-OpenEachMpqTest (Shopping_Maul_ USA 9.10.7.w3x) succeeded.
-OpenEachMpqTest (siverrpg_1.9_ver.w3x) succeeded.
-OpenEachMpqTest (ACGExternal0.2.asi) succeeded.
-OpenEachMpqTest (grandparty.asi) succeeded.
-OpenEachMpqTest (HS0.1.asi) succeeded.
-OpenEachMpqTest (HS0.5.asi) succeeded.
-OpenEachMpqTest (Patch_War3x.mpq) succeeded.
-OpenEachMpqTest (Patch_War3_Low.mpq) succeeded.
-OpenEachMpqTest (Patch_War3_Med.mpq) succeeded.
-OpenEachMpqTest (War3.mpq) succeeded.
-OpenEachMpqTest (War3Patch.mpq) succeeded.
-OpenEachMpqTest (War3x.mpq) succeeded.
-OpenEachMpqTest (War3xlocal.mpq) succeeded.
-OpenEachMpqTest (dbc.MPQ) succeeded.
-OpenEachMpqTest (fonts.MPQ) succeeded.
-OpenEachMpqTest (interface.MPQ) succeeded.
-OpenEachMpqTest (misc.MPQ) succeeded.
-OpenEachMpqTest (model.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (speech.MPQ) succeeded.
-OpenEachMpqTest (texture.MPQ) succeeded.
-OpenEachMpqTest (TheramoreDocks.wmo.MPQ) succeeded.
-OpenEachMpqTest (Azeroth.wdl.MPQ) succeeded.
-OpenEachMpqTest (Azeroth.wdt.MPQ) succeeded.
-OpenEachMpqTest (Blackfathom.wdl.MPQ) succeeded.
-OpenEachMpqTest (Blackfathom.wdt.MPQ) succeeded.
-OpenEachMpqTest (Collin.wdl.MPQ) succeeded.
-OpenEachMpqTest (Collin.wdt.MPQ) succeeded.
-OpenEachMpqTest (DeadminesInstance.wdl.MPQ) succeeded.
-OpenEachMpqTest (DeadminesInstance.wdt.MPQ) succeeded.
-OpenEachMpqTest (GnomeragonInstance.wdl.MPQ) succeeded.
-OpenEachMpqTest (GnomeragonInstance.wdt.MPQ) succeeded.
-OpenEachMpqTest (Kalidar.wdl.MPQ) succeeded.
-OpenEachMpqTest (Kalidar.wdt.MPQ) succeeded.
-OpenEachMpqTest (Kalimdor.wdl.MPQ) succeeded.
-OpenEachMpqTest (Kalimdor.wdt.MPQ) succeeded.
-OpenEachMpqTest (Monastery.wdl.MPQ) succeeded.
-OpenEachMpqTest (Monastery.wdt.MPQ) succeeded.
-OpenEachMpqTest (PVPZone01.wdl.MPQ) succeeded.
-OpenEachMpqTest (PVPZone01.wdt.MPQ) succeeded.
-OpenEachMpqTest (PVPZone02.wdl.MPQ) succeeded.
-OpenEachMpqTest (PVPZone02.wdt.MPQ) succeeded.
-OpenEachMpqTest (RazorfenDowns.wdl.MPQ) succeeded.
-OpenEachMpqTest (RazorfenDowns.wdt.MPQ) succeeded.
-OpenEachMpqTest (RazorfenKraulInstance.wdl.MPQ) succeeded.
-OpenEachMpqTest (RazorfenKraulInstance.wdt.MPQ) succeeded.
-OpenEachMpqTest (Shadowfang.wdl.MPQ) succeeded.
-OpenEachMpqTest (Shadowfang.wdt.MPQ) succeeded.
-OpenEachMpqTest (StormwindJail.wdl.MPQ) succeeded.
-OpenEachMpqTest (StormwindJail.wdt.MPQ) succeeded.
-OpenEachMpqTest (StormwindPrison.wdl.MPQ) succeeded.
-OpenEachMpqTest (StormwindPrison.wdt.MPQ) succeeded.
-OpenEachMpqTest (SunkenTemple.wdl.MPQ) succeeded.
-OpenEachMpqTest (SunkenTemple.wdt.MPQ) succeeded.
-OpenEachMpqTest (test.wdl.MPQ) succeeded.
-OpenEachMpqTest (test.wdt.MPQ) succeeded.
-OpenEachMpqTest (Uldaman.wdl.MPQ) succeeded.
-OpenEachMpqTest (Uldaman.wdt.MPQ) succeeded.
-OpenEachMpqTest (UnderMine.wdl.MPQ) succeeded.
-OpenEachMpqTest (UnderMine.wdt.MPQ) succeeded.
-OpenEachMpqTest (WailingCaverns.wdl.MPQ) succeeded.
-OpenEachMpqTest (WailingCaverns.wdt.MPQ) succeeded.
-OpenEachMpqTest (AltarOfStorms.wmo.MPQ) succeeded.
-OpenEachMpqTest (Big_Keep.wmo.MPQ) succeeded.
-OpenEachMpqTest (castle01.wmo.MPQ) succeeded.
-OpenEachMpqTest (Chapel.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodChapel.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedridgeChapel.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodAbandoned_Barn.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodAbandoned_Blacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodAbandoned_HumanTwoStory.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodAbandoned_human_farm.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodAbandoned_Inn.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodAbandoned_lumbermill.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodAbandoned_TownHall_NoWall.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_Barn.wmo.MPQ) succeeded.
-OpenEachMpqTest (duskwood_barracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_Blacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_HumanTwoStory.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_human_farm.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodFarmHouseburnt.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_Inn.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_lumbermill.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_MageTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_Stable.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_TownHall.wmo.MPQ) succeeded.
-OpenEachMpqTest (Duskwood_TownHall_NoWall.wmo.MPQ) succeeded.
-OpenEachMpqTest (GnomeHut.wmo.MPQ) succeeded.
-OpenEachMpqTest (GnomeHutTwoStory.wmo.MPQ) succeeded.
-OpenEachMpqTest (goldshireblacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (GoldshireInn.wmo.MPQ) succeeded.
-OpenEachMpqTest (GriffonAviary.wmo.MPQ) succeeded.
-OpenEachMpqTest (GuardTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (RuinedHumanGuardTower01.wmo.MPQ) succeeded.
-OpenEachMpqTest (HumanTwoStory.wmo.MPQ) succeeded.
-OpenEachMpqTest (barn.wmo.MPQ) succeeded.
-OpenEachMpqTest (silo.wmo.MPQ) succeeded.
-OpenEachMpqTest (Human_Barracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (farm.wmo.MPQ) succeeded.
-OpenEachMpqTest (farmtest.wmo.MPQ) succeeded.
-OpenEachMpqTest (Gate01.wmo.MPQ) succeeded.
-OpenEachMpqTest (Gate02.wmo.MPQ) succeeded.
-OpenEachMpqTest (Gate03.wmo.MPQ) succeeded.
-OpenEachMpqTest (GateRuined01.wmo.MPQ) succeeded.
-OpenEachMpqTest (GateRuined02.wmo.MPQ) succeeded.
-OpenEachMpqTest (KeepBridge01.wmo.MPQ) succeeded.
-OpenEachMpqTest (LowWallPost01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPiece01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPiece02.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPiece03.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPiece04.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPiece05.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPieceRuin01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPieceRuin02.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPieceRuin03.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPieceRuin04.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPieceStairs01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPost01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPost02.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPostRuined01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WallPostTunnel01.wmo.MPQ) succeeded.
-OpenEachMpqTest (lumbermill.wmo.MPQ) succeeded.
-OpenEachMpqTest (magetower.wmo.MPQ) succeeded.
-OpenEachMpqTest (Moonbrook_Blacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (Moonbrook_HumanTwoStory.wmo.MPQ) succeeded.
-OpenEachMpqTest (Moonbrook_human_farm.wmo.MPQ) succeeded.
-OpenEachMpqTest (Moonbrook_Inn.wmo.MPQ) succeeded.
-OpenEachMpqTest (Moonbrook_TownHall_NoWall.wmo.MPQ) succeeded.
-OpenEachMpqTest (NSabbey.wmo.MPQ) succeeded.
-OpenEachMpqTest (OilPlatform.wmo.MPQ) succeeded.
-OpenEachMpqTest (OilPlatformSmall.wmo.MPQ) succeeded.
-OpenEachMpqTest (oil_platform.wmo.MPQ) succeeded.
-OpenEachMpqTest (PrisonGuardTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (prisonHQ.wmo.MPQ) succeeded.
-OpenEachMpqTest (prisonLonghouse.wmo.MPQ) succeeded.
-OpenEachMpqTest (PrisonOubliette.wmo.MPQ) succeeded.
-OpenEachMpqTest (PrisonOublietteTunnel.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_Barn.wmo.MPQ) succeeded.
-OpenEachMpqTest (redridge_barracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_Blacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_HumanTwoStory.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_human_farm.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_Inn.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_lumbermill.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_MageTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_Stable.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_TownHall.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidge_TownHall_NoWall.wmo.MPQ) succeeded.
-OpenEachMpqTest (Scarlet_Monestary.wmo.MPQ) succeeded.
-OpenEachMpqTest (stable.wmo.MPQ) succeeded.
-OpenEachMpqTest (Stormwind.wmo.MPQ) succeeded.
-OpenEachMpqTest (BootyBay.wmo.MPQ) succeeded.
-OpenEachMpqTest (BootyBayPlank.wmo.MPQ) succeeded.
-OpenEachMpqTest (BootyBay_house1.wmo.MPQ) succeeded.
-OpenEachMpqTest (BootyBay_house2.wmo.MPQ) succeeded.
-OpenEachMpqTest (BootyBay_railing.wmo.MPQ) succeeded.
-OpenEachMpqTest (BootyBay_warehouse.wmo.MPQ) succeeded.
-OpenEachMpqTest (ratchet_dock.wmo.MPQ) succeeded.
-OpenEachMpqTest (TownHall.wmo.MPQ) succeeded.
-OpenEachMpqTest (TownHall_NoWall.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_Barn.wmo.MPQ) succeeded.
-OpenEachMpqTest (westfall_barracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_Blacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_GuardTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_HumanTwoStory.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_human_farm.wmo.MPQ) succeeded.
-OpenEachMpqTest (WestFallFarmHouseburnt.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_Inn.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_lumbermill.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_MageTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_Stable.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_TownHall.wmo.MPQ) succeeded.
-OpenEachMpqTest (Westfall_TownHall_NoWall.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskWorldTree.wmo.MPQ) succeeded.
-OpenEachMpqTest (WorldTree.wmo.MPQ) succeeded.
-OpenEachMpqTest (TrollZiggurat.wmo.MPQ) succeeded.
-OpenEachMpqTest (ZulGurubRuins01.wmo.MPQ) succeeded.
-OpenEachMpqTest (AllianceShrine.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodChasmBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (DuskwoodCoveredBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (abbeygate01.wmo.MPQ) succeeded.
-OpenEachMpqTest (abbeygate02.wmo.MPQ) succeeded.
-OpenEachMpqTest (ElwynnLakeBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (ElwynnFootbridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (ElwynnLionBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (HeroBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (HeroGate.wmo.MPQ) succeeded.
-OpenEachMpqTest (ElwynnWideBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (HordeShrine.wmo.MPQ) succeeded.
-OpenEachMpqTest (IronFootbridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (IronforgeRopeBridge01.wmo.MPQ) succeeded.
-OpenEachMpqTest (IronStonebridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedridgeDamagedBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidgeDocks01.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidgeDocks02.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidgeDocks03.wmo.MPQ) succeeded.
-OpenEachMpqTest (RedRidgeFootbridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (OilRefinery.wmo.MPQ) succeeded.
-OpenEachMpqTest (RopeBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (StrangleRuinStair.wmo.MPQ) succeeded.
-OpenEachMpqTest (StrangleGladiatorArena.wmo.MPQ) succeeded.
-OpenEachMpqTest (StrangleArenaGate01.wmo.MPQ) succeeded.
-OpenEachMpqTest (StranglethornRuins01.wmo.MPQ) succeeded.
-OpenEachMpqTest (StranglethornRuins02.wmo.MPQ) succeeded.
-OpenEachMpqTest (StranglethornRuins04.wmo.MPQ) succeeded.
-OpenEachMpqTest (StranglethornRuins11.wmo.MPQ) succeeded.
-OpenEachMpqTest (StranglethornRuins12.wmo.MPQ) succeeded.
-OpenEachMpqTest (StranglethornRuins13.wmo.MPQ) succeeded.
-OpenEachMpqTest (StranglethornRuins16.wmo.MPQ) succeeded.
-OpenEachMpqTest (BridgeStranglethorn.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampBridge01.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampDock01.wmo.MPQ) succeeded.
-OpenEachMpqTest (HumanBoatHouse.wmo.MPQ) succeeded.
-OpenEachMpqTest (WestFallGrainSilo01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WetlandsHumanDock01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WetlandsBustedWagon.wmo.MPQ) succeeded.
-OpenEachMpqTest (cameron.wmo.MPQ) succeeded.
-OpenEachMpqTest (Blackrock.wmo.MPQ) succeeded.
-OpenEachMpqTest (Blackrock2.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZ_Deadmines_A.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZ_Deadmines_B.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZ_Deadmines_C.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZ_Deadmines_D.wmo.MPQ) succeeded.
-OpenEachMpqTest (Karazhan.wmo.MPQ) succeeded.
-OpenEachMpqTest (StormwindJail.wmo.MPQ) succeeded.
-OpenEachMpqTest (StormwindPrison.wmo.MPQ) succeeded.
-OpenEachMpqTest (Ahn_Qiraj.wmo.MPQ) succeeded.
-OpenEachMpqTest (Ahn_Qirajwall01.wmo.MPQ) succeeded.
-OpenEachMpqTest (Ahn_Qirajwall02.wmo.MPQ) succeeded.
-OpenEachMpqTest (Ahn_Qirajwall03.wmo.MPQ) succeeded.
-OpenEachMpqTest (Blackfathom.wmo.MPQ) succeeded.
-OpenEachMpqTest (Blackfathom_instance.wmo.MPQ) succeeded.
-OpenEachMpqTest (RazorfenDowns.wmo.MPQ) succeeded.
-OpenEachMpqTest (RazorfenDowns_instance.wmo.MPQ) succeeded.
-OpenEachMpqTest (RazorfenKraul.wmo.MPQ) succeeded.
-OpenEachMpqTest (RazorfenKraul_instance.wmo.MPQ) succeeded.
-OpenEachMpqTest (wailingcaverns.wmo.MPQ) succeeded.
-OpenEachMpqTest (wailingcaverns_instance.wmo.MPQ) succeeded.
-OpenEachMpqTest (KZ_Gnomeragon.wmo.MPQ) succeeded.
-OpenEachMpqTest (KZ_Gnomeragon_Instance.wmo.MPQ) succeeded.
-OpenEachMpqTest (KZ_Uldaman.wmo.MPQ) succeeded.
-OpenEachMpqTest (KZ_Uldaman_A.wmo.MPQ) succeeded.
-OpenEachMpqTest (KZ_Uldaman_B.wmo.MPQ) succeeded.
-OpenEachMpqTest (LD_ShadowFang.wmo.MPQ) succeeded.
-OpenEachMpqTest (LD_ShadowFangInterior.wmo.MPQ) succeeded.
-OpenEachMpqTest (Stratholme.wmo.MPQ) succeeded.
-OpenEachMpqTest (AlgazGate.wmo.MPQ) succeeded.
-OpenEachMpqTest (AnimalDen.wmo.MPQ) succeeded.
-OpenEachMpqTest (Anvilmarpass.wmo.MPQ) succeeded.
-OpenEachMpqTest (BarrowDens.wmo.MPQ) succeeded.
-OpenEachMpqTest (CorruptBarrowDens.wmo.MPQ) succeeded.
-OpenEachMpqTest (BarrowDensOneRm.wmo.MPQ) succeeded.
-OpenEachMpqTest (CorruptBarrowDensOneRoom.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_IceDen.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_JungleDen.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_MushroomDen.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_TrollDen.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_TrollDen_Warm.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_WarmDen.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_CaveTunnel01.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_StoneAshen_Tunnel.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_WarmCaveTunnel01.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Crypt.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_CryptOneRm.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_CryptSchool.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_CryptSimpleEnt.wmo.MPQ) succeeded.
-OpenEachMpqTest (LargeTunnel.wmo.MPQ) succeeded.
-OpenEachMpqTest (MediumTunnel.wmo.MPQ) succeeded.
-OpenEachMpqTest (MediumTunnel_Snow.wmo.MPQ) succeeded.
-OpenEachMpqTest (SmallTunnel.wmo.MPQ) succeeded.
-OpenEachMpqTest (SmallTunnel_Snow.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_FishingHoleIce.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Goldmine.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Goldmine_1Room.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Goldmine_variantA.wmo.MPQ) succeeded.
-OpenEachMpqTest (exterior_arch.wmo.MPQ) succeeded.
-OpenEachMpqTest (exterior_piece01.wmo.MPQ) succeeded.
-OpenEachMpqTest (exterior_piece02.wmo.MPQ) succeeded.
-OpenEachMpqTest (exterior_piece03.wmo.MPQ) succeeded.
-OpenEachMpqTest (exterior_piece04.wmo.MPQ) succeeded.
-OpenEachMpqTest (exterior_piece05.wmo.MPQ) succeeded.
-OpenEachMpqTest (mini-hive_A.wmo.MPQ) succeeded.
-OpenEachMpqTest (mini-hive_B.wmo.MPQ) succeeded.
-OpenEachMpqTest (mini-hive_C.wmo.MPQ) succeeded.
-OpenEachMpqTest (mini-hive_D.wmo.MPQ) succeeded.
-OpenEachMpqTest (mini-hive_E.wmo.MPQ) succeeded.
-OpenEachMpqTest (mini-hive_F.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Hordemine.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Hordemine1Room.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Icecave.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Icecave_Medium.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Junglecave.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Junglecave_Medium.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Mountaincave_Medium.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Mushroomcave.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Underwatercave_Medium.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Warmcave.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Warmcave_Medium.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Brogremound.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Brogremound1Room.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Grogremound.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Grogremound1Room.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Ogremound.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Ogremound1Room.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Ogremound_Medium.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Snogremound.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Snogremound1Room.wmo.MPQ) succeeded.
-OpenEachMpqTest (Pirateship.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_RuinedFortress.wmo.MPQ) succeeded.
-OpenEachMpqTest (Ruinedkeep.wmo.MPQ) succeeded.
-OpenEachMpqTest (Shipwreck_A.wmo.MPQ) succeeded.
-OpenEachMpqTest (Shipwreck_B.wmo.MPQ) succeeded.
-OpenEachMpqTest (Shipwreck_C.wmo.MPQ) succeeded.
-OpenEachMpqTest (Shipwreck_D.wmo.MPQ) succeeded.
-OpenEachMpqTest (Transport_Shipwreck.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Spidermine.wmo.MPQ) succeeded.
-OpenEachMpqTest (MD_Spidermine_nokobolds.wmo.MPQ) succeeded.
-OpenEachMpqTest (Scarlet_Monestary_Interior.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZ_SunkenTemple.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZ_SunkenTemple_Instance.wmo.MPQ) succeeded.
-OpenEachMpqTest (SunkenTemple.wmo.MPQ) succeeded.
-OpenEachMpqTest (collintest.wmo.MPQ) succeeded.
-OpenEachMpqTest (missingwmo.wmo.MPQ) succeeded.
-OpenEachMpqTest (test.wmo.MPQ) succeeded.
-OpenEachMpqTest (ThousandNeedlesElevator.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin01.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin02.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin03.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin04.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin05.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin06.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin07.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin08.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin09.wmo.MPQ) succeeded.
-OpenEachMpqTest (AZRClassicalElfRuin10.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfRuin01.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfRuin02.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfRuin03.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfRuin04.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfRuin05.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfRuin06.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfRuin07.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfRuin08.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfTemple.wmo.MPQ) succeeded.
-OpenEachMpqTest (ClassicalElfTemple2.wmo.MPQ) succeeded.
-OpenEachMpqTest (GoblinHut.wmo.MPQ) succeeded.
-OpenEachMpqTest (GoblinLab.wmo.MPQ) succeeded.
-OpenEachMpqTest (NagaPagoda01.wmo.MPQ) succeeded.
-OpenEachMpqTest (DSNightElf2Story.wmo.MPQ) succeeded.
-OpenEachMpqTest (NightElf2Story.wmo.MPQ) succeeded.
-OpenEachMpqTest (NightElfAbbey.wmo.MPQ) succeeded.
-OpenEachMpqTest (DSNightElfDruidTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (NightElfDruidTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (DSNightElfHuntersLodge.wmo.MPQ) succeeded.
-OpenEachMpqTest (NightElfHuntersLodge.wmo.MPQ) succeeded.
-OpenEachMpqTest (DSNightElfInn.wmo.MPQ) succeeded.
-OpenEachMpqTest (NightElfInn.wmo.MPQ) succeeded.
-OpenEachMpqTest (DSNightElfMoonWell.wmo.MPQ) succeeded.
-OpenEachMpqTest (DSNightElfMoonWellOrnate.wmo.MPQ) succeeded.
-OpenEachMpqTest (GiantMoonwell.wmo.MPQ) succeeded.
-OpenEachMpqTest (NightElfMoonWell.wmo.MPQ) succeeded.
-OpenEachMpqTest (NightElfMoonWellOrnate.wmo.MPQ) succeeded.
-OpenEachMpqTest (DSNightElfSmallHouse.wmo.MPQ) succeeded.
-OpenEachMpqTest (NightElfSmallHouse.wmo.MPQ) succeeded.
-OpenEachMpqTest (southGate.wmo.MPQ) succeeded.
-OpenEachMpqTest (AbandonedOrcBarracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (BlackrockOrcBarracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (OrcBarracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampOrcBarracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (AbandonedOrcBlacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (BlackrockOrcBlacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (orcblacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampOrcBlacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (BlackrockOrcFortress.wmo.MPQ) succeeded.
-OpenEachMpqTest (OrcFortress.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampOrcFortress.wmo.MPQ) succeeded.
-OpenEachMpqTest (AbandonedOrcGreatHall.wmo.MPQ) succeeded.
-OpenEachMpqTest (BlackrockOrcGreatHall.wmo.MPQ) succeeded.
-OpenEachMpqTest (OrcGreatHall.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampOrcGreatHall.wmo.MPQ) succeeded.
-OpenEachMpqTest (AbandonedOrcKennel.wmo.MPQ) succeeded.
-OpenEachMpqTest (BlackrockOrcKennel.wmo.MPQ) succeeded.
-OpenEachMpqTest (OrcKennel.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampOrcKennel.wmo.MPQ) succeeded.
-OpenEachMpqTest (abandonedOrcMageTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (BlackrockOrcMageTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (OrcMageTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampOrcMageTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (AbandonedOrcMedium.wmo.MPQ) succeeded.
-OpenEachMpqTest (BlackrockOrcMedium.wmo.MPQ) succeeded.
-OpenEachMpqTest (OrcMedium.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampOrcMedium.wmo.MPQ) succeeded.
-OpenEachMpqTest (AbandonedOrcTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (BlackrockOrcTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (OrcTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampOrcTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (Bighouse.wmo.MPQ) succeeded.
-OpenEachMpqTest (Hut.wmo.MPQ) succeeded.
-OpenEachMpqTest (Ladder.wmo.MPQ) succeeded.
-OpenEachMpqTest (Wallhut.wmo.MPQ) succeeded.
-OpenEachMpqTest (Wallhut2.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins01.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins02.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins03.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins04.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins05.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins06.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins07.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins09.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins11.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins12.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins13.wmo.MPQ) succeeded.
-OpenEachMpqTest (TanarisRuins14.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenDruidTent.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenHunterTent.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenChickenHut.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenHutA.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenHutB.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenHutBig.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenHutC.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenHutD.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenTallHut.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenTepee.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenLonghouse.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenShamanTent.wmo.MPQ) succeeded.
-OpenEachMpqTest (Trollbridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (AbandonedTrollBurrow.wmo.MPQ) succeeded.
-OpenEachMpqTest (BlackrockTrollBurrow.wmo.MPQ) succeeded.
-OpenEachMpqTest (SwampTrollBurrow.wmo.MPQ) succeeded.
-OpenEachMpqTest (TrollBurrow.wmo.MPQ) succeeded.
-OpenEachMpqTest (troll_hotel01.wmo.MPQ) succeeded.
-OpenEachMpqTest (troll_hotel_burn01.wmo.MPQ) succeeded.
-OpenEachMpqTest (trollhut01.wmo.MPQ) succeeded.
-OpenEachMpqTest (trollhutSmall01.wmo.MPQ) succeeded.
-OpenEachMpqTest (trollhut_burn01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WyvernNest.wmo.MPQ) succeeded.
-OpenEachMpqTest (DarkshoreBridge01.wmo.MPQ) succeeded.
-OpenEachMpqTest (DarkshoreBridge02.wmo.MPQ) succeeded.
-OpenEachMpqTest (DarkshoreBridge03.wmo.MPQ) succeeded.
-OpenEachMpqTest (DarkshoreBridge04.wmo.MPQ) succeeded.
-OpenEachMpqTest (DarkshoreDocks01.wmo.MPQ) succeeded.
-OpenEachMpqTest (DarkshoreDocks02.wmo.MPQ) succeeded.
-OpenEachMpqTest (DarkshoreDocks03.wmo.MPQ) succeeded.
-OpenEachMpqTest (DarkshoreDocksAberdeen.wmo.MPQ) succeeded.
-OpenEachMpqTest (DarkshoreDocksCurve.wmo.MPQ) succeeded.
-OpenEachMpqTest (GiantSeaTurtle01.wmo.MPQ) succeeded.
-OpenEachMpqTest (GiantSeaTurtle02.wmo.MPQ) succeeded.
-OpenEachMpqTest (SnakeSpineGiantArch.wmo.MPQ) succeeded.
-OpenEachMpqTest (DurotarBridge01.wmo.MPQ) succeeded.
-OpenEachMpqTest (DurotarRootedRock03.wmo.MPQ) succeeded.
-OpenEachMpqTest (DurotarGate.wmo.MPQ) succeeded.
-OpenEachMpqTest (CrashedZippelin.wmo.MPQ) succeeded.
-OpenEachMpqTest (DustWallowFootbridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (FeralasStoneBridge01.wmo.MPQ) succeeded.
-OpenEachMpqTest (KalidarBridge01.wmo.MPQ) succeeded.
-OpenEachMpqTest (KalidarDock01.wmo.MPQ) succeeded.
-OpenEachMpqTest (KalidarTreeBranch.wmo.MPQ) succeeded.
-OpenEachMpqTest (MoongladeBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (CentaurTent02.wmo.MPQ) succeeded.
-OpenEachMpqTest (CentaurTent03.wmo.MPQ) succeeded.
-OpenEachMpqTest (Crossroadsbridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenBridge01.wmo.MPQ) succeeded.
-OpenEachMpqTest (TaurenTent01.wmo.MPQ) succeeded.
-OpenEachMpqTest (Orcbridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (LandingPad01.wmo.MPQ) succeeded.
-OpenEachMpqTest (MonsterLogMachine_01.wmo.MPQ) succeeded.
-OpenEachMpqTest (StonetalonWheelPlatform.wmo.MPQ) succeeded.
-OpenEachMpqTest (TrollTentSand01.wmo.MPQ) succeeded.
-OpenEachMpqTest (1000NeedlesBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (Darnassis.wmo.MPQ) succeeded.
-OpenEachMpqTest (Ogrimmar.wmo.MPQ) succeeded.
-OpenEachMpqTest (DruidMesaA.wmo.MPQ) succeeded.
-OpenEachMpqTest (DruidMesaB.wmo.MPQ) succeeded.
-OpenEachMpqTest (GiantTotem.wmo.MPQ) succeeded.
-OpenEachMpqTest (LowerMesaA.wmo.MPQ) succeeded.
-OpenEachMpqTest (LowerMesaB.wmo.MPQ) succeeded.
-OpenEachMpqTest (LowerMesaC.wmo.MPQ) succeeded.
-OpenEachMpqTest (LowerMesaD.wmo.MPQ) succeeded.
-OpenEachMpqTest (LowerMesaE.wmo.MPQ) succeeded.
-OpenEachMpqTest (LowerMesaF.wmo.MPQ) succeeded.
-OpenEachMpqTest (MidMesaA.wmo.MPQ) succeeded.
-OpenEachMpqTest (MidMesaB.wmo.MPQ) succeeded.
-OpenEachMpqTest (MidMesaC.wmo.MPQ) succeeded.
-OpenEachMpqTest (MidMesaD.wmo.MPQ) succeeded.
-OpenEachMpqTest (ShamanMesa.wmo.MPQ) succeeded.
-OpenEachMpqTest (UndeadCave.wmo.MPQ) succeeded.
-OpenEachMpqTest (UpperMesaA.wmo.MPQ) succeeded.
-OpenEachMpqTest (UpperMesaB.wmo.MPQ) succeeded.
-OpenEachMpqTest (UpperMesaC.wmo.MPQ) succeeded.
-OpenEachMpqTest (UpperMesaD.wmo.MPQ) succeeded.
-OpenEachMpqTest (UpperMesaE.wmo.MPQ) succeeded.
-OpenEachMpqTest (WarriorMesaA.wmo.MPQ) succeeded.
-OpenEachMpqTest (WarriorMesaB.wmo.MPQ) succeeded.
-OpenEachMpqTest (AnvilMar.wmo.MPQ) succeeded.
-OpenEachMpqTest (mud_hovel.wmo.MPQ) succeeded.
-OpenEachMpqTest (hovel_machine.wmo.MPQ) succeeded.
-OpenEachMpqTest (snow_hovel.wmo.MPQ) succeeded.
-OpenEachMpqTest (mud_2story.wmo.MPQ) succeeded.
-OpenEachMpqTest (snow_2story.wmo.MPQ) succeeded.
-OpenEachMpqTest (snow_dwarfbarracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (wet_dwarfbarracks.wmo.MPQ) succeeded.
-OpenEachMpqTest (snow_blacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (wetland_blacksmith.wmo.MPQ) succeeded.
-OpenEachMpqTest (Dwarven_GriffonAviary.wmo.MPQ) succeeded.
-OpenEachMpqTest (Dwarven_GuardTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (Dwarven_SnowStable.wmo.MPQ) succeeded.
-OpenEachMpqTest (Dwarven_SnowTower.wmo.MPQ) succeeded.
-OpenEachMpqTest (Dwarven_Stable.wmo.MPQ) succeeded.
-OpenEachMpqTest (Snow_Tavern.wmo.MPQ) succeeded.
-OpenEachMpqTest (wet_Tavern.wmo.MPQ) succeeded.
-OpenEachMpqTest (GreatWall_Gate.wmo.MPQ) succeeded.
-OpenEachMpqTest (GreatWall_tower_01.wmo.MPQ) succeeded.
-OpenEachMpqTest (GreatWall_tower_02.wmo.MPQ) succeeded.
-OpenEachMpqTest (GreatWall_wall_01.wmo.MPQ) succeeded.
-OpenEachMpqTest (GreatWall_wall_02.wmo.MPQ) succeeded.
-OpenEachMpqTest (GreatWall_wall_03.wmo.MPQ) succeeded.
-OpenEachMpqTest (GreatWall_wall_04.wmo.MPQ) succeeded.
-OpenEachMpqTest (ThandolSpan.wmo.MPQ) succeeded.
-OpenEachMpqTest (Wetlands_GrimBatol.wmo.MPQ) succeeded.
-OpenEachMpqTest (ironforge.wmo.MPQ) succeeded.
-OpenEachMpqTest (DwarvenDam01.wmo.MPQ) succeeded.
-OpenEachMpqTest (DwarvenDock01.wmo.MPQ) succeeded.
-OpenEachMpqTest (DwarvenSentinel01.wmo.MPQ) succeeded.
-OpenEachMpqTest (DwarvenSentinel02.wmo.MPQ) succeeded.
-OpenEachMpqTest (ExcavationPlatform01.wmo.MPQ) succeeded.
-OpenEachMpqTest (ExcavationPlatform02.wmo.MPQ) succeeded.
-OpenEachMpqTest (ExcavationPlatform03.wmo.MPQ) succeeded.
-OpenEachMpqTest (NetherguardWall.wmo.MPQ) succeeded.
-OpenEachMpqTest (GreenHouse01.wmo.MPQ) succeeded.
-OpenEachMpqTest (Cathedral.wmo.MPQ) succeeded.
-OpenEachMpqTest (SlaughterHouse.wmo.MPQ) succeeded.
-OpenEachMpqTest (UndeadZiggurat.wmo.MPQ) succeeded.
-OpenEachMpqTest (UtherShrine.wmo.MPQ) succeeded.
-OpenEachMpqTest (BridgeBigWhite.wmo.MPQ) succeeded.
-OpenEachMpqTest (ArathiStoneBridge01.wmo.MPQ) succeeded.
-OpenEachMpqTest (ArathiStoneBridge02.wmo.MPQ) succeeded.
-OpenEachMpqTest (ChimneyTop.wmo.MPQ) succeeded.
-OpenEachMpqTest (HuRuinedBuildingsBig01.wmo.MPQ) succeeded.
-OpenEachMpqTest (HuRuinedBuildingsBig02.wmo.MPQ) succeeded.
-OpenEachMpqTest (HuRuinedBuildingsBig03.wmo.MPQ) succeeded.
-OpenEachMpqTest (HuRuinedBuildingsMed01.wmo.MPQ) succeeded.
-OpenEachMpqTest (HuRuinedBuildingsMed02.wmo.MPQ) succeeded.
-OpenEachMpqTest (HuRuinedBuildingsSmall01.wmo.MPQ) succeeded.
-OpenEachMpqTest (HuRuinedBuildingsSmall02.wmo.MPQ) succeeded.
-OpenEachMpqTest (WreckedBuildingHCorner01.wmo.MPQ) succeeded.
-OpenEachMpqTest (WreckedBuildingHCorner02.wmo.MPQ) succeeded.
-OpenEachMpqTest (PlaguelandsBridge.wmo.MPQ) succeeded.
-OpenEachMpqTest (Undercity.wmo.MPQ) succeeded.
-OpenEachMpqTest (Undercitywall01.wmo.MPQ) succeeded.
-OpenEachMpqTest (Undercity_test01.wmo.MPQ) succeeded.
-OpenEachMpqTest (HumanLevelOneTest.wmo.MPQ) succeeded.
-OpenEachMpqTest (HumanLevelThreeTest.wmo.MPQ) succeeded.
-OpenEachMpqTest (transportship_A.wmo.MPQ) succeeded.
-OpenEachMpqTest (base.MPQ) succeeded.
-OpenEachMpqTest (dbc.MPQ) succeeded.
-OpenEachMpqTest (fonts.MPQ) succeeded.
-OpenEachMpqTest (interface.MPQ) succeeded.
-OpenEachMpqTest (misc.MPQ) succeeded.
-OpenEachMpqTest (model.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (speech.MPQ) succeeded.
-OpenEachMpqTest (terrain.MPQ) succeeded.
-OpenEachMpqTest (texture.MPQ) succeeded.
-OpenEachMpqTest (wmo.MPQ) succeeded.
-OpenEachMpqTest (base.MPQ) succeeded.
-OpenEachMpqTest (dbc.MPQ) succeeded.
-OpenEachMpqTest (fonts.MPQ) succeeded.
-OpenEachMpqTest (interface.MPQ) succeeded.
-OpenEachMpqTest (misc.MPQ) succeeded.
-OpenEachMpqTest (model.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (speech.MPQ) succeeded.
-OpenEachMpqTest (terrain.MPQ) succeeded.
-OpenEachMpqTest (texture.MPQ) succeeded.
-OpenEachMpqTest (wmo.MPQ) succeeded.
-OpenEachMpqTest (base.MPQ) succeeded.
-OpenEachMpqTest (dbc.MPQ) succeeded.
-OpenEachMpqTest (expansion.MPQ) succeeded.
-OpenEachMpqTest (expansionLoc.MPQ) succeeded.
-OpenEachMpqTest (fonts.MPQ) succeeded.
-OpenEachMpqTest (interface.MPQ) succeeded.
-OpenEachMpqTest (misc.MPQ) succeeded.
-OpenEachMpqTest (model.MPQ) succeeded.
-OpenEachMpqTest (patch.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (speech.MPQ) succeeded.
-OpenEachMpqTest (terrain.MPQ) succeeded.
-OpenEachMpqTest (texture.MPQ) succeeded.
-OpenEachMpqTest (wmo.MPQ) succeeded.
-OpenEachMpqTest (backup-enGB.MPQ) succeeded.
-OpenEachMpqTest (base-enGB.MPQ) succeeded.
-OpenEachMpqTest (common.MPQ) succeeded.
-OpenEachMpqTest (expansion-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (common.MPQ) succeeded.
-OpenEachMpqTest (backup-enGB.MPQ) succeeded.
-OpenEachMpqTest (base-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion.MPQ) succeeded.
-OpenEachMpqTest (Installer Tome.mpq) succeeded.
-OpenEachMpqTest (common-2.MPQ) succeeded.
-OpenEachMpqTest (common.MPQ) succeeded.
-OpenEachMpqTest (base-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (lichking-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (lichking-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion.MPQ) succeeded.
-OpenEachMpqTest (lichking.MPQ) succeeded.
-OpenEachMpqTest (installer tome.mpq.part) succeeded.
-OpenEachMpqTest (movies.mpq.part) succeeded.
-OpenEachMpqTest (dbc.MPQ.0) succeeded.
-OpenEachMpqTest (fonts.MPQ.0) succeeded.
-OpenEachMpqTest (interface.MPQ.0) succeeded.
-OpenEachMpqTest (misc.MPQ.0) succeeded.
-OpenEachMpqTest (model.MPQ.0) succeeded.
-OpenEachMpqTest (patch.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ.0) succeeded.
-OpenEachMpqTest (speech.MPQ.0) succeeded.
-OpenEachMpqTest (streaming.MPQ.0) succeeded.
-OpenEachMpqTest (streamingloc.MPQ.0) succeeded.
-OpenEachMpqTest (terrain.MPQ.0) succeeded.
-OpenEachMpqTest (texture.MPQ.0) succeeded.
-OpenEachMpqTest (wmo.MPQ.0) succeeded.
-OpenEachMpqTest (dbc.MPQ.part) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (fonts.MPQ.part) succeeded.
-OpenEachMpqTest (interface.MPQ.part) succeeded.
-OpenEachMpqTest (misc.MPQ.part) succeeded.
-OpenEachMpqTest (model.MPQ.part) succeeded.
-OpenEachMpqTest (patch.MPQ.part) succeeded.
-OpenEachMpqTest (sound.MPQ.part) succeeded.
-OpenEachMpqTest (speech.MPQ.part) succeeded.
-OpenEachMpqTest (streaming.MPQ.part) succeeded.
-OpenEachMpqTest (streamingloc.MPQ.part) succeeded.
-OpenEachMpqTest (terrain.MPQ.part) succeeded.
-OpenEachMpqTest (texture.MPQ.part) succeeded.
-OpenEachMpqTest (wmo.MPQ.part) succeeded.
-OpenEachMpqTest (WoW-3.3.0.10958-4.0.0.12911-EU-Stage-1.mpq) succeeded.
-OpenEachMpqTest (dbc.MPQ.part) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (fonts.MPQ.part) succeeded.
-OpenEachMpqTest (interface.MPQ.part) succeeded.
-OpenEachMpqTest (misc.MPQ.part) succeeded.
-OpenEachMpqTest (model.MPQ.part) succeeded.
-OpenEachMpqTest (patch.MPQ.part) succeeded.
-OpenEachMpqTest (sound.MPQ.part) succeeded.
-OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\2004 - WoW\11403\Data\SoundCache.MPQ (error code: 11)
-OpenEachMpqTest (speech.MPQ.part) succeeded.
-OpenEachMpqTest (streaming.MPQ.part) succeeded.
-OpenEachMpqTest (streamingloc.MPQ.part) succeeded.
-OpenEachMpqTest (terrain.MPQ.part) succeeded.
-OpenEachMpqTest (texture.MPQ.part) succeeded.
-OpenEachMpqTest (wmo.MPQ.part) succeeded.
-OpenEachMpqTest (Installer Tome 2.mpq.part) succeeded.
-OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\2004 - WoW\11927\Installer Tome.mpq.1.part (error code: 11)
-OpenEachMpqTest (Installer Tome.mpq.part) succeeded.
-OpenEachMpqTest (expansion-locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (art.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion1.MPQ) succeeded.
-OpenEachMpqTest (expansion2.MPQ) succeeded.
-OpenEachMpqTest (expansion3.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (world.MPQ) succeeded.
-OpenEachMpqTest (wow-update-12694.MPQ) succeeded.
-OpenEachMpqTest (wow-update-12759.MPQ) succeeded.
-OpenEachMpqTest (wow-update-12803.MPQ) succeeded.
-OpenEachMpqTest (wow-update-12857.MPQ) succeeded.
-OpenEachMpqTest (wow-update-12942.MPQ) succeeded.
-OpenEachMpqTest (wow-update-12984.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13066.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13117.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13183.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13189.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13195.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13202.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13221.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13241.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13277.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13316.MPQ) succeeded.
-OpenEachMpqTest (wow-12635-OSX-final.MPQ) succeeded.
-OpenEachMpqTest (wow-12635-Win-final.MPQ) succeeded.
-OpenEachMpqTest (wow-12694-OSX-final.MPQ) succeeded.
-OpenEachMpqTest (wow-12694-Win-final.MPQ) succeeded.
-OpenEachMpqTest (wow-12759-OSX-final.MPQ) succeeded.
-OpenEachMpqTest (wow-12759-Win-final.MPQ) succeeded.
-OpenEachMpqTest (base-OSX.MPQ) succeeded.
-OpenEachMpqTest (base-Win.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13623.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13914.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-14007.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-14333.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-14480.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-14545.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-14946.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-15005.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-15050.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion1.MPQ) succeeded.
-OpenEachMpqTest (expansion2.MPQ) succeeded.
-OpenEachMpqTest (expansion3.MPQ) succeeded.
-OpenEachMpqTest (OldWorld.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (world.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13164.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13205.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13287.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13329.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13596.MPQ) succeeded.
-OpenEachMpqTest (wow-update-13623.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-13914.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14007.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14333.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14480.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14545.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-14946.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15005.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15050.MPQ) succeeded.
-OpenEachMpqTest (wow-update-oldworld-13154.MPQ) succeeded.
-OpenEachMpqTest (wow-update-oldworld-13286.MPQ) succeeded.
-OpenEachMpqTest (wow-update-12941.MPQ) succeeded.
-OpenEachMpqTest (wow-update-12984.MPQ) succeeded.
-OpenEachMpqTest (SoundCache-patch-13154.MPQ) succeeded.
-OpenEachMpqTest (SoundCache-patch-13164.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13417.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13449.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13482.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13529.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13561.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13596.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13682.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13698.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13707.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13726.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13750.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13793.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13812.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13850.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13875.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-13914.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-14002.MPQ) succeeded.
-OpenEachMpqTest (locale-zhCN.MPQ) succeeded.
-OpenEachMpqTest (alternate.MPQ) succeeded.
-OpenEachMpqTest (art.MPQ) succeeded.
-OpenEachMpqTest (base-OSX.MPQ) succeeded.
-OpenEachMpqTest (base-Win.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-deDE.MPQ) succeeded.
-OpenEachMpqTest (locale-deDE.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-deDE.MPQ) succeeded.
-OpenEachMpqTest (speech-deDE.MPQ) succeeded.
-OpenEachMpqTest (wow-update-deDE-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-deDE-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-deDE-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enCN.MPQ) succeeded.
-OpenEachMpqTest (locale-enCN.MPQ) succeeded.
-OpenEachMpqTest (speech-enCN.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enCN-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enCN-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enCN-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enTW.MPQ) succeeded.
-OpenEachMpqTest (locale-enTW.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-enTW.MPQ) succeeded.
-OpenEachMpqTest (speech-enTW.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enTW-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enTW-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enTW-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-enUS.MPQ) succeeded.
-OpenEachMpqTest (speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-esES.MPQ) succeeded.
-OpenEachMpqTest (locale-esES.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-esES.MPQ) succeeded.
-OpenEachMpqTest (speech-esES.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esES-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esES-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esES-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-esMX.MPQ) succeeded.
-OpenEachMpqTest (locale-esMX.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-esMX.MPQ) succeeded.
-OpenEachMpqTest (speech-esMX.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esMX-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esMX-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esMX-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1.MPQ) succeeded.
-OpenEachMpqTest (expansion2.MPQ) succeeded.
-OpenEachMpqTest (expansion3.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-frFR.MPQ) succeeded.
-OpenEachMpqTest (locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-frFR.MPQ) succeeded.
-OpenEachMpqTest (speech-frFR.MPQ) succeeded.
-OpenEachMpqTest (wow-update-frFR-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-frFR-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-frFR-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-koKR.MPQ) succeeded.
-OpenEachMpqTest (locale-koKR.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-koKR.MPQ) succeeded.
-OpenEachMpqTest (speech-koKR.MPQ) succeeded.
-OpenEachMpqTest (wow-update-koKR-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-koKR-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-koKR-15595.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_base1.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_base2.MPQ) succeeded.
-OpenEachMpqTest (OldWorld.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-ptBR.MPQ) succeeded.
-OpenEachMpqTest (locale-ptBR.MPQ) succeeded.
-OpenEachMpqTest (speech-ptBR.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptBR-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptBR-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptBR-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-ptPT.MPQ) succeeded.
-OpenEachMpqTest (locale-ptPT.MPQ) succeeded.
-OpenEachMpqTest (speech-ptPT.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptPT-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptPT-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptPT-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-ruRU.MPQ) succeeded.
-OpenEachMpqTest (locale-ruRU.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-ruRU.MPQ) succeeded.
-OpenEachMpqTest (speech-ruRU.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ruRU-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ruRU-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ruRU-15595.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (world.MPQ) succeeded.
-OpenEachMpqTest (world2.MPQ) succeeded.
-OpenEachMpqTest (wow-0-15595-OSX-final.MPQ) succeeded.
-OpenEachMpqTest (wow-0-15595-Win-final.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-zhCN.MPQ) succeeded.
-OpenEachMpqTest (locale-zhCN.MPQ) succeeded.
-OpenEachMpqTest (speech-zhCN.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhCN-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhCN-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhCN-15595.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-zhTW.MPQ) succeeded.
-OpenEachMpqTest (locale-zhTW.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-zhTW.MPQ) succeeded.
-OpenEachMpqTest (speech-zhTW.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhTW-15211.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhTW-15354.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhTW-15595.MPQ) succeeded.
-OpenEachMpqTest (wow-0-15211-OSX-final.MPQ) succeeded.
-OpenEachMpqTest (wow-0-15211-Win-final.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (SoundCache-patch-15508.MPQ) succeeded.
-OpenEachMpqTest (alternate.MPQ) succeeded.
-OpenEachMpqTest (Base-Win.mpq) succeeded.
-OpenEachMpqTest (expansion1-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-15508.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-15544.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-15589.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS.MPQ) succeeded.
-OpenEachMpqTest (speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-15508.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-15544.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-15589.MPQ) succeeded.
-OpenEachMpqTest (expansion1.MPQ) succeeded.
-OpenEachMpqTest (expansion2.MPQ) succeeded.
-OpenEachMpqTest (expansion3.MPQ) succeeded.
-OpenEachMpqTest (expansion4.MPQ) succeeded.
-OpenEachMpqTest (interface.MPQ) succeeded.
-OpenEachMpqTest (itemtexture.MPQ) succeeded.
-OpenEachMpqTest (misc.MPQ) succeeded.
-OpenEachMpqTest (model.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (texture.MPQ) succeeded.
-OpenEachMpqTest (wow-0-15508-OSX-final.MPQ) succeeded.
-OpenEachMpqTest (wow-0-15508-Win-final.MPQ) succeeded.
-OpenEachMpqTest (wow-0-15544-OSX-final.MPQ) succeeded.
-OpenEachMpqTest (wow-0-15589-OSX-final.MPQ) succeeded.
-OpenEachMpqTest (wow-0-15589-Win-final.MPQ) succeeded.
-OpenEachMpqTest (world.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15508.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15544.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15589.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-15851.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-15851.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-15851.MPQ) succeeded.
-OpenEachMpqTest (alternate.MPQ) succeeded.
-OpenEachMpqTest (art.MPQ) succeeded.
-OpenEachMpqTest (base-OSX.MPQ) succeeded.
-OpenEachMpqTest (base-Win.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-deDE.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-deDE.MPQ) succeeded.
-OpenEachMpqTest (locale-deDE.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-deDE.MPQ) succeeded.
-OpenEachMpqTest (speech-deDE.MPQ) succeeded.
-OpenEachMpqTest (wow-update-deDE-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-deDE-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-deDE-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-deDE-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enCN.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-enCN.MPQ) succeeded.
-OpenEachMpqTest (locale-enCN.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-enCN.MPQ) succeeded.
-OpenEachMpqTest (speech-enCN.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enCN-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enCN-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enCN-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enCN-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enTW.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-enTW.MPQ) succeeded.
-OpenEachMpqTest (locale-enTW.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-enTW.MPQ) succeeded.
-OpenEachMpqTest (speech-enTW.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enTW-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enTW-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enTW-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enTW-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-enUS.MPQ) succeeded.
-OpenEachMpqTest (speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-esES.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-esES.MPQ) succeeded.
-OpenEachMpqTest (locale-esES.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-esES.MPQ) succeeded.
-OpenEachMpqTest (speech-esES.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esES-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esES-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esES-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esES-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-esMX.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-esMX.MPQ) succeeded.
-OpenEachMpqTest (locale-esMX.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-esMX.MPQ) succeeded.
-OpenEachMpqTest (speech-esMX.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esMX-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esMX-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esMX-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-esMX-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1.MPQ) succeeded.
-OpenEachMpqTest (expansion2.MPQ) succeeded.
-OpenEachMpqTest (expansion3.MPQ) succeeded.
-OpenEachMpqTest (expansion4.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-frFR.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-frFR.MPQ) succeeded.
-OpenEachMpqTest (locale-frFR.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-frFR.MPQ) succeeded.
-OpenEachMpqTest (speech-frFR.MPQ) succeeded.
-OpenEachMpqTest (wow-update-frFR-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-frFR-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-frFR-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-frFR-16309.MPQ) succeeded.
-OpenEachMpqTest (interface.MPQ) succeeded.
-OpenEachMpqTest (itemtexture.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-itIT.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-itIT.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-itIT.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-itIT.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-itIT.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-itIT.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-itIT.MPQ) succeeded.
-OpenEachMpqTest (locale-itIT.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-itIT.MPQ) succeeded.
-OpenEachMpqTest (speech-itIT.MPQ) succeeded.
-OpenEachMpqTest (wow-update-itIT-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-itIT-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-itIT-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-itIT-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-koKR.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-koKR.MPQ) succeeded.
-OpenEachMpqTest (locale-koKR.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-koKR.MPQ) succeeded.
-OpenEachMpqTest (speech-koKR.MPQ) succeeded.
-OpenEachMpqTest (wow-update-koKR-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-koKR-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-koKR-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-koKR-16309.MPQ) succeeded.
-OpenEachMpqTest (misc.MPQ) succeeded.
-OpenEachMpqTest (model.MPQ) succeeded.
-OpenEachMpqTest (OldWorld.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-ptBR.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-ptBR.MPQ) succeeded.
-OpenEachMpqTest (locale-ptBR.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-ptBR.MPQ) succeeded.
-OpenEachMpqTest (speech-ptBR.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptBR-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptBR-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptBR-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptBR-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-ptPT.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-ptPT.MPQ) succeeded.
-OpenEachMpqTest (locale-ptPT.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-ptPT.MPQ) succeeded.
-OpenEachMpqTest (speech-ptPT.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptPT-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptPT-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptPT-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ptPT-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-ruRU.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-ruRU.MPQ) succeeded.
-OpenEachMpqTest (locale-ruRU.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-ruRU.MPQ) succeeded.
-OpenEachMpqTest (speech-ruRU.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ruRU-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ruRU-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ruRU-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-ruRU-16309.MPQ) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (texture.MPQ) succeeded.
-OpenEachMpqTest (world.MPQ) succeeded.
-OpenEachMpqTest (world2.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-zhCN.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-zhCN.MPQ) succeeded.
-OpenEachMpqTest (locale-zhCN.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-zhCN.MPQ) succeeded.
-OpenEachMpqTest (speech-zhCN.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhCN-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhCN-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhCN-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhCN-16309.MPQ) succeeded.
-OpenEachMpqTest (expansion1-locale-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion2-locale-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion3-locale-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-zhTW.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-zhTW.MPQ) succeeded.
-OpenEachMpqTest (locale-zhTW.MPQ) succeeded.
-OpenEachMpqTest (OldWorld-zhTW.MPQ) succeeded.
-OpenEachMpqTest (speech-zhTW.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhTW-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhTW-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhTW-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-zhTW-16309.MPQ) succeeded.
-OpenEachMpqTest (wow-0-16309-OSX-final.MPQ) succeeded.
-OpenEachMpqTest (wow-0-16309-Win-final.MPQ) succeeded.
-OpenEachMpqTest (alternate.MPQ) succeeded.
-OpenEachMpqTest (Base-Win.mpq) succeeded.
-OpenEachMpqTest (expansion1-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16309.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16357.MPQ) succeeded.
-OpenEachMpqTest (locale-enUS.MPQ) succeeded.
-OpenEachMpqTest (speech-enUS.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enUS-16057.MPQ) succeeded.
-OpenEachMpqTest (expansion1.MPQ) succeeded.
-OpenEachMpqTest (expansion2.MPQ) succeeded.
-OpenEachMpqTest (expansion3.MPQ) succeeded.
-OpenEachMpqTest (expansion4.MPQ) succeeded.
-OpenEachMpqTest (interface.MPQ) succeeded.
-OpenEachMpqTest (itemtexture.MPQ) succeeded.
-OpenEachMpqTest (misc.MPQ) succeeded.
-OpenEachMpqTest (model.MPQ) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (sound.MPQ) succeeded.
-OpenEachMpqTest (texture.MPQ) succeeded.
-OpenEachMpqTest (world.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16309.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16357.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16516.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16650.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16844.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-16965.MPQ) succeeded.
-OpenEachMpqTest (base-Win.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16516.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16650.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16844.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16965.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17116.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17266.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17325.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17345.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17538.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17645.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17116.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17266.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17325.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17345.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17538.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17645.MPQ) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (base-Win.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16016.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16048.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16057.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16309.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16357.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16516.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16650.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16844.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16965.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-17116.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-17266.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-17325.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-17345.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-17538.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-17645.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-17688.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-17898.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-18273.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16016.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16048.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16057.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16309.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16357.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16516.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16650.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16844.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16965.MPQ) succeeded.
-OpenEachMpqTest (patch-base-17116.MPQ) succeeded.
-OpenEachMpqTest (patch-base-17266.MPQ) succeeded.
-OpenEachMpqTest (patch-base-17325.MPQ) succeeded.
-OpenEachMpqTest (patch-base-17345.MPQ) succeeded.
-OpenEachMpqTest (patch-base-17538.MPQ) succeeded.
-OpenEachMpqTest (patch-base-17645.MPQ) succeeded.
-OpenEachMpqTest (patch-base-17688.MPQ) succeeded.
-OpenEachMpqTest (patch-base-17898.MPQ) succeeded.
-OpenEachMpqTest (patch-base-18273.MPQ) succeeded.
-OpenEachMpqTest (expansion1-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion2-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion3-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (expansion4-speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (locale-enGB.MPQ) succeeded.
-OpenEachMpqTest (speech-enGB.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16016.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16048.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16057.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16309.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16357.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16516.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16650.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16844.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-16965.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17116.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17266.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17325.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17345.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17538.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17645.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17688.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-17898.MPQ) succeeded.
-OpenEachMpqTest (wow-update-enGB-18273.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17116.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17266.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17325.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17345.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17538.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17645.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17688.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-17898.MPQ) succeeded.
-OpenEachMpqTest (wow-update-base-18273.MPQ) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (Bel'shir Wildlands1.0.SC2Map) succeeded.
-OpenEachMpqTest (CubDefensev09.SC2Map) succeeded.
-OpenEachMpqTest (Hell_TD_v0.17.SC2Map) succeeded.
-OpenEachMpqTest (Magma Mayham.SC2Map) succeeded.
-OpenEachMpqTest (Test map - published (locked).SC2Map) succeeded.
-OpenEachMpqTest (Test map - published (unlocked).SC2Map) succeeded.
-OpenEachMpqTest (TiddaoTest01.SC2Map) succeeded.
-OpenEachMpqTest (Tya's Zerg Defense (unprotected).SC2Map) succeeded.
-OpenEachMpqTest (Tya's Zerg Defense.SC2Map) succeeded.
-OpenEachMpqTest (Zenith.SC2MAP) succeeded.
-OpenEachMpqTest (zone_control_belshir.SC2Map) succeeded.
-OpenEachMpqTest ((12)(SB) - Shakuras Plateau (Money Map).s2ma) succeeded.
-OpenEachMpqTest ((12)(SB) - Shakuras Plateau (Money Map)_orig.s2ma) succeeded.
-OpenEachMpqTest ((2) - AI - Blistering Sands.s2ma) succeeded.
-OpenEachMpqTest ((2) - AI - Desert Oasis.s2ma) succeeded.
-OpenEachMpqTest ((2) - AI - Scrap Station.s2ma) succeeded.
-OpenEachMpqTest ((2) - AI - Steppes of War.s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Kulas Ravine (1x).s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Kulas Ravine (3x).s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Lost Temple (1x).s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Lost Temple (3x).s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Metalopolis (1x).s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Metalopolis (3x).s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Shakuras Plateau (1x).s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Shakuras Plateau (3x).s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Twilight Fortress (1x).s2ma) succeeded.
-OpenEachMpqTest ((4) - AI - Twilight Fortress (3x).s2ma) succeeded.
-OpenEachMpqTest (Battle.net.MPQ) succeeded.
-OpenEachMpqTest (LOST_v1.SC2Map) succeeded.
-OpenEachMpqTest (Backup.MPQ) succeeded.
-OpenEachMpqTest (Base.MPQ) succeeded.
-OpenEachMpqTest (Installer Tome 1.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 1.MPQ) succeeded.
-OpenEachMpqTest (Installer UI 2.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 deDE.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 enGB.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 enSG.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 enUS.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 esES.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 esMX.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 frFR.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 itIT.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 plPL.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 ptBR.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 ruRU.MPQE) succeeded.
-OpenEachMpqTest (Installer UI 2 zhTW.MPQE) succeeded.
-OpenEachMpqTest (Battle.net-patch.MPQ) succeeded.
-OpenEachMpqTest (Battle.net.MPQ) succeeded.
-OpenEachMpqTest (Challenges.SC2Mod) succeeded.
-OpenEachMpqTest (Backup.MPQ) succeeded.
-OpenEachMpqTest (Base.MPQ) succeeded.
-OpenEachMpqTest (Battle.net.MPQ) succeeded.
-OpenEachMpqTest (Challenges.SC2Mod) succeeded.
-OpenEachMpqTest (Base-OSX.mpq) succeeded.
-OpenEachMpqTest (Base-Win.mpq) succeeded.
-OpenEachMpqTest (Battle.net.MPQ) succeeded.
-OpenEachMpqTest (Test map.SC2Map) succeeded.
-OpenEachMpqTest (Challenges.SC2Mod) succeeded.
-OpenEachMpqTest (Base-Win.mpq) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (s2-update-base-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-base-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-base-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-deDE-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-deDE-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-esES-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-esES-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-esMX-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-esMX-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-frFR-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-frFR-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-itIT-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-itIT-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-koKR-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-koKR-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-plPL-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-plPL-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-ptBR-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-ptBR-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-ruRU-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-ruRU-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-zhCN-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-zhCN-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-zhTW-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-zhTW-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-deDE-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-deDE-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enUS-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enUS-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-esES-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-esES-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-esMX-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-esMX-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-frFR-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-frFR-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-itIT-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-itIT-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-koKR-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-koKR-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-plPL-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-plPL-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-ptBR-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-ptBR-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-ruRU-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-ruRU-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-0-24540-Win-final.MPQ) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_Base.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_Base1.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_deDE.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_enGB.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_enUS.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_esES.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_esMX.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_frFR.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_itIT.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_koKR.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_plPL.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_ptBR.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_ruRU.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_zhTW.MPQE) succeeded.
-OpenEachMpqTest (MigrationContent_base1.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_deDE.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_enGB.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_enUS.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_esES.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_esMX.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_frFR.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_itIT.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_koKR.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_plPL.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_ptBR.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_ruRU.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_zhCN.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_zhTW.MPQ) succeeded.
-OpenEachMpqTest (s2-update-zhCN-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-zhCN-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-zhTW-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-zhTW-24540.MPQ) succeeded.
-OpenEachMpqTest (Battle.net.MPQ) succeeded.
-OpenEachMpqTest (Challenges.SC2Mod) succeeded.
-OpenEachMpqTest (Base-Win.mpq) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (s2-update-base-24764.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enUS-24764.MPQ) succeeded.
-OpenEachMpqTest (s2-0-24764-Win-final.MPQ) succeeded.
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\2010 - Starcraft II\25092\Updates\base\s2-update-base-24540.MPQ (error code: 1392)
-OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\2010 - Starcraft II\25092\Updates\base\s2-update-base-25092.MPQ (error code: 1392)
-OpenEachMpqTest (patch-base-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-base-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-deDE-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-deDE-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-esES-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-esES-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-esMX-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-esMX-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-frFR-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-frFR-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-itIT-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-itIT-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-koKR-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-koKR-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-plPL-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-plPL-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-ptBR-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-ptBR-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-ruRU-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-ruRU-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-zhCN-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-zhCN-24540.MPQ) succeeded.
-OpenEachMpqTest (patch-zhTW-23258.MPQ) succeeded.
-OpenEachMpqTest (patch-zhTW-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-deDE-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-deDE-24540.MPQ) succeeded.
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest (s2-update-enUS-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enUS-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-esES-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-esES-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-esMX-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-esMX-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-frFR-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-frFR-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-itIT-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-itIT-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-koKR-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-koKR-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-plPL-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-plPL-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-ptBR-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-ptBR-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-ruRU-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-ruRU-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-0-24540-Win-final.MPQ) succeeded.
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest (SC2_HotS_20_BGDL_Base.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_Base1.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_deDE.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_enGB.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_enUS.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_esES.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_esMX.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_frFR.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_itIT.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_koKR.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_plPL.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_ptBR.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_ruRU.MPQE) succeeded.
-OpenEachMpqTest (SC2_HotS_20_BGDL_zhTW.MPQE) succeeded.
-OpenEachMpqTest (MigrationContent_base1.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_deDE.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_enGB.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_enUS.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_esES.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_esMX.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_frFR.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_itIT.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_koKR.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_plPL.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_ptBR.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_ruRU.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_zhCN.MPQ) succeeded.
-OpenEachMpqTest (MigrationContent_zhTW.MPQ) succeeded.
-OpenEachMpqTest (s2-update-zhCN-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-zhCN-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-zhTW-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-zhTW-24540.MPQ) succeeded.
-OpenEachMpqTest (Battle.net.MPQ) succeeded.
-OpenEachMpqTest (SwarmStoryUtil.SC2Mod) succeeded.
-OpenEachMpqTest (Challenges.SC2Mod) succeeded.
-OpenEachMpqTest (Base-Win.mpq) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (s2-update-base-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-25293.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-26147.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-26825.MPQ) succeeded.
-OpenEachMpqTest (patch-base-25293.MPQ) succeeded.
-OpenEachMpqTest (patch-base-26147.MPQ) succeeded.
-OpenEachMpqTest (patch-base-26825.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-26147.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-26825.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-26147.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-26825.MPQ) succeeded.
-OpenEachMpqTest (s2-0-26825-Win-final.MPQ) succeeded.
-OpenEachMpqTest (Battle.net.MPQ) succeeded.
-OpenEachMpqTest (SwarmStoryUtil.SC2Mod) succeeded.
-OpenEachMpqTest (Challenges.SC2Mod) succeeded.
-OpenEachMpqTest (Base-Win.mpq) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (s2-update-base-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-26147.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-28522.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-32384.MPQ) succeeded.
-OpenEachMpqTest (s2-update-base-34644.MPQ) succeeded.
-OpenEachMpqTest (patch-base-26147.MPQ) succeeded.
-OpenEachMpqTest (patch-base-28522.MPQ) succeeded.
-OpenEachMpqTest (patch-base-32384.MPQ) succeeded.
-OpenEachMpqTest (patch-base-34644.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-26147.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-28522.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-32384.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-34644.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-23258.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-24540.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-26147.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-28522.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-32384.MPQ) succeeded.
-OpenEachMpqTest (s2-update-enGB-34644.MPQ) succeeded.
-OpenEachMpqTest (s2-0-34644-Win-final.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-7170.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-7200.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-7318.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-7338.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-7447.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-7728.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-7841.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-7931.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-8059.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-8101.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-8296.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-8350.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-8392.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-8610.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-8815.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-8896.MPQ) succeeded.
-OpenEachMpqTest (base-Win.mpq) succeeded.
-OpenEachMpqTest (patch-base-7170.MPQ) succeeded.
-OpenEachMpqTest (patch-base-7200.MPQ) succeeded.
-OpenEachMpqTest (patch-base-7318.MPQ) succeeded.
-OpenEachMpqTest (patch-base-7338.MPQ) succeeded.
-OpenEachMpqTest (patch-base-7447.MPQ) succeeded.
-OpenEachMpqTest (patch-base-7728.MPQ) succeeded.
-OpenEachMpqTest (patch-base-7841.MPQ) succeeded.
-OpenEachMpqTest (patch-base-7931.MPQ) succeeded.
-OpenEachMpqTest (patch-base-8059.MPQ) succeeded.
-OpenEachMpqTest (patch-base-8101.MPQ) succeeded.
-OpenEachMpqTest (patch-base-8296.MPQ) succeeded.
-OpenEachMpqTest (patch-base-8350.MPQ) succeeded.
-OpenEachMpqTest (patch-base-8392.MPQ) succeeded.
-OpenEachMpqTest (patch-base-8610.MPQ) succeeded.
-OpenEachMpqTest (patch-base-8815.MPQ) succeeded.
-OpenEachMpqTest (patch-base-8896.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-7170.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-7200.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-7318.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-7338.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-7447.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-7728.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-7841.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-7931.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-8059.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-8296.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-8392.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-8610.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-8815.MPQ) succeeded.
-OpenEachMpqTest (patch-enUS-8896.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-7200.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-7318.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-7338.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-7447.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-7728.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-7841.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-7931.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-8059.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-8101.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-8296.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-8350.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-8392.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-8610.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-8815.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-8896.MPQ) succeeded.
-OpenEachMpqTest (ClientData.mpq) succeeded.
-OpenEachMpqTest (CoreData.mpq) succeeded.
-OpenEachMpqTest (d3-update-enUS-7170.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-7200.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-7318.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-7338.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-7447.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-7728.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-7841.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-7931.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-8059.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-8296.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-8392.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-8610.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-8815.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enUS-8896.MPQ) succeeded.
-OpenEachMpqTest (enUS_Audio.mpq) succeeded.
-OpenEachMpqTest (enUS_Cutscene.mpq) succeeded.
-OpenEachMpqTest (enUS_Text.mpq) succeeded.
-OpenEachMpqTest (HLSLShaders.mpq) succeeded.
-OpenEachMpqTest (patch.MPQ) succeeded.
-OpenEachMpqTest (Sound.mpq) succeeded.
-OpenEachMpqTest (Texture.mpq) succeeded.
-OpenEachMpqTest (d3-update-Win-7200.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-7318.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-7338.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-7447.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-7728.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-7841.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-7931.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-8059.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-8101.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-8296.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-8350.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-8392.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-8610.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-8815.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-8896.MPQ) succeeded.
-OpenEachMpqTest (Installer Tome 1 deDE.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 enGB.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 enSG.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 enUS.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 esES.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 esMX.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 frFR.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 itIT.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 koKR.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 plPL.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 ptBR.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 ruRU.MPQE) succeeded.
-OpenEachMpqTest (Installer Tome 1 zhTW.MPQE) succeeded.
-OpenEachMpqTest (d3-update-base-10057.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-10235.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-10485.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-11327.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-12480.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-12811.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-13300.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-13644.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-9558.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-9749.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-9858.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-9950.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-9991.MPQ) succeeded.
-OpenEachMpqTest (base-Win.mpq) succeeded.
-OpenEachMpqTest (patch-base-10057.MPQ) succeeded.
-OpenEachMpqTest (patch-base-10235.MPQ) succeeded.
-OpenEachMpqTest (patch-base-10485.MPQ) succeeded.
-OpenEachMpqTest (patch-base-11327.MPQ) succeeded.
-OpenEachMpqTest (patch-base-12480.MPQ) succeeded.
-OpenEachMpqTest (patch-base-12811.MPQ) succeeded.
-OpenEachMpqTest (patch-base-13300.MPQ) succeeded.
-OpenEachMpqTest (patch-base-13644.MPQ) succeeded.
-OpenEachMpqTest (patch-base-9558.MPQ) succeeded.
-OpenEachMpqTest (patch-base-9749.MPQ) succeeded.
-OpenEachMpqTest (patch-base-9858.MPQ) succeeded.
-OpenEachMpqTest (patch-base-9950.MPQ) succeeded.
-OpenEachMpqTest (patch-base-9991.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-10057.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-10485.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-11327.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-12480.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-13300.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-9558.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-9749.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-9858.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-9950.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-9991.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-10057.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-11327.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-12480.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-9558.MPQ) succeeded.
-OpenEachMpqTest (ClientData.mpq) succeeded.
-OpenEachMpqTest (CoreData.mpq) succeeded.
-OpenEachMpqTest (d3-update-enGB-10057.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-10485.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-11327.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-12480.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-13300.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-9558.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-9749.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-9858.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-9950.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-9991.MPQ) succeeded.
-OpenEachMpqTest (enGB_Audio.mpq) succeeded.
-OpenEachMpqTest (enGB_Cutscene.mpq) succeeded.
-OpenEachMpqTest (enGB_Text.mpq) succeeded.
-OpenEachMpqTest (HLSLShaders.mpq) succeeded.
-OpenEachMpqTest (Sound.mpq) succeeded.
-OpenEachMpqTest (Texture.mpq) succeeded.
-OpenEachMpqTest (d3-update-Win-10057.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-11327.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-12480.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-9558.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-14633.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-15295.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-16416.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-16603.MPQ) succeeded.
-OpenEachMpqTest (patch-base-14633.MPQ) succeeded.
-OpenEachMpqTest (patch-base-15295.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16416.MPQ) succeeded.
-OpenEachMpqTest (patch-base-16603.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-14633.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-16416.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-16416.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-14633.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-16416.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-16416.MPQ) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (d3-update-base-21876.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-22044.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-22274.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-22427.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-23119.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-23920.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-24017.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-24641.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-26451.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-27255.MPQ) succeeded.
-OpenEachMpqTest (d3-update-base-28709.MPQ) succeeded.
-OpenEachMpqTest (base-Win.mpq) succeeded.
-OpenEachMpqTest (patch-base-21876.MPQ) succeeded.
-OpenEachMpqTest (patch-base-22044.MPQ) succeeded.
-OpenEachMpqTest (patch-base-22274.MPQ) succeeded.
-OpenEachMpqTest (patch-base-22427.MPQ) succeeded.
-OpenEachMpqTest (patch-base-23119.MPQ) succeeded.
-OpenEachMpqTest (patch-base-23920.MPQ) succeeded.
-OpenEachMpqTest (patch-base-24017.MPQ) succeeded.
-OpenEachMpqTest (patch-base-24641.MPQ) succeeded.
-OpenEachMpqTest (patch-base-26451.MPQ) succeeded.
-OpenEachMpqTest (patch-base-27255.MPQ) succeeded.
-OpenEachMpqTest (patch-base-28709.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-21876.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-22044.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-22274.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-22427.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-23119.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-23920.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-24641.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-26451.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-27255.MPQ) succeeded.
-OpenEachMpqTest (patch-enGB-28709.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-21876.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-22044.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-23119.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-23920.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-26451.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-27255.MPQ) succeeded.
-OpenEachMpqTest (patch-Win-28709.MPQ) succeeded.
-OpenEachMpqTest (ClientData.mpq) succeeded.
-OpenEachMpqTest (CoreData.mpq) succeeded.
-OpenEachMpqTest (d3-update-enGB-21876.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-22044.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-22274.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-22427.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-23119.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-23920.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-24641.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-26451.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-27255.MPQ) succeeded.
-OpenEachMpqTest (d3-update-enGB-28709.MPQ) succeeded.
-OpenEachMpqTest (enGB_Audio.mpq) succeeded.
-OpenEachMpqTest (enGB_Cutscene.mpq) succeeded.
-OpenEachMpqTest (enGB_Text.mpq) succeeded.
-OpenEachMpqTest (HLSLShaders.mpq) succeeded.
-OpenEachMpqTest (Sound.mpq) succeeded.
-OpenEachMpqTest (Texture.mpq) succeeded.
-OpenEachMpqTest (d3-update-Win-21876.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-22044.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-23119.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-23920.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-26451.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-27255.MPQ) succeeded.
-OpenEachMpqTest (d3-update-Win-28709.MPQ) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (Installer Tome 1.MPQ) succeeded.
-OpenEachMpqTest (base-Win.MPQ) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (base-Win.MPQ) succeeded.
-OpenEachMpqTest (SetupWin.mpq) succeeded.
-OpenEachMpqTest (hs-0-5314-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-5314-5435-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-5435-5506-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-5506-5834-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-5834-6024-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6024-6141-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6141-6187-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6187-6284-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6284-6485-Win-final.MPQ) succeeded.
-OpenEachMpqTest (hs-6485-6898-Win-final.MPQ) succeeded.
-OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\model.MPQ.0 (error code: 11)
-OpenEachMpqTest (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
-OpenEachMpqTest (MPQ_1998_v1_StarDat.mpq) succeeded.
-OpenEachMpqTest (MPQ_1999_v1_WeakSigned1.mpq) succeeded.
-OpenEachMpqTest (MPQ_1999_v1_WeakSigned2.mpq) succeeded.
-OpenEachMpqTest (MPQ_2002_v1_StrongSignature.w3m) succeeded.
-OpenEachMpqTest (MPQ_2009_v1_patch-complete.MPQ.part) succeeded.
-OpenEachMpqTest (MPQ_2009_v1_patch-created.MPQ.part) succeeded.
-OpenEachMpqTest (MPQ_2009_v1_patch-partial.MPQ.part) succeeded.
-OpenEachMpqTest (MPQ_2009_v2_WoW_patch.MPQ.part) succeeded.
-OpenEachMpqTest (MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_alternate-created.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_alternate-incomplete.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_alternate-original.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest (MPQ_2014_v1_out1.w3x) succeeded.
-OpenEachMpqTest (MPQ_2014_v1_out2.w3x) succeeded.
-OpenEachMpqTest (MPQ_2022_v1_v4.329.w3x) succeeded.
-OpenEachMpqTest (StormLibTest_AddWaveMonoBadTest.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_AddWaveMonoTest.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_AddWaveStereoTest.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_BigArchive_v4.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_CraftedMpq1_v3.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_CraftedMpq2_v4.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_CraftedMpq3_v4.mpq) succeeded.
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest: Warning: no files in the archive
-OpenEachMpqTest (StormLibTest_FileFlagTest.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_FileTableFull.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_GapsTest.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_HasListFile.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_IncMaxFileCount.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_ListFilePos.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_MpqEditorTest.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_NoListFile.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_NonStdNames.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_ReadOnly.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_ReadWrite.mpq) succeeded.
-OpenEachMpqTest (StormLibTest_Reopened.mpq) succeeded.
-OpenEachMpqTest (File00000003.mpq) succeeded.
-CreateEmptyMpq: The file "File00000000.xxx" is present, but it should not be
-CreateEmptyMpq: The file "File00000000.xxx" is present, but it should not be
-CreateGapsTest (StormLibTest_GapsTest.mpq) succeeded.
-NonStdNamesTest (StormLibTest_NonStdNames.mpq) succeeded.
+InitWorkFolder: Work directory \Multimedia\MPQs (default)
+TestLiFiSearch (FLAT-MAP:ListFile_Blizzard.txt) succeeded.
+TestLiFiSearch (ListFile_Blizzard.txt) succeeded.
+TestFileStream (MPQ_2013_v4_alternate-original.MPQ) succeeded.
+TestFileStream (MPQ_2013_v4_alternate-original.MPQ) succeeded.
+TestFileStream (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
+TestFileStream (part-file://MPQ_2009_v2_WoW_patch.MPQ.part) succeeded.
+TestFileStream (blk4-file://streaming/model.MPQ.0) succeeded.
+TestFileStream (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
+TestFileMirror (part-file://MPQ_2009_v1_patch-created.MPQ.part) succeeded.
+TestFileMirror (part-file://MPQ_2009_v1_patch-partial.MPQ.part) succeeded.
+TestFileMirror (part-file://MPQ_2009_v1_patch-complete.MPQ.part) succeeded.
+TestFileMirror (MPQ_2013_v4_alternate-created.MPQ) succeeded.
+TestFileMirror (MPQ_2013_v4_alternate-incomplete.MPQ) succeeded.
+TestFileMirror (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_patch_rt_SC1B.mpq) succeeded.
+TestReadingMpq (MPQ_1997_v1_StarDat_SC1B.mpq) succeeded.
+TestReadingMpq (MPQ_1997_v1_INSTALL_SC1B.EXE_) succeeded.
+TestReadingMpq: Warning: CRC32 error on (signature)
+TestReadingMpq: Warning: CRC32 error on (signature)
+TestReadingMpq (MPQ_2016_v1_D2XP_IX86_1xx_114a.mpq) succeeded.
+TestReadingMpq (MPQ_2018_v1_icon_error.w3m) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_STANDARD.SNP) succeeded.
+TestReadingMpq (MPQ_2012_v2_EmptyMpq.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_EmptyMpq.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_patch-base-16357.MPQ) succeeded.
+TestReadingMpq (MPQ_2011_v4_InvalidHetEntryCount.MPQ) succeeded.
+TestReadingMpq (MPQ_2002_v1_BlockTableCut.MPQ) succeeded.
+TestReadingMpq (MPQ_2010_v2_HasUserData.s2ma) succeeded.
+TestReadingMpq: Warning: CRC32 error on (listfile)
+TestReadingMpq: Warning: CRC32 error on (listfile)
+TestReadingMpq: Warning: CRC32 error on File00000003.xxx
+TestReadingMpq (MPQ_2014_v1_AttributesOneEntryLess.w3x) succeeded.
+TestReadingMpq (MPQ_2020_v1_AHF04patch.mix) succeeded.
+TestReadingMpq (MPQ_2010_v3_expansion-locale-frFR.MPQ) succeeded.
+TestReadingMpq (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
+TestReadingMpq (part-file://MPQ_2010_v2_HashTableCompressed.MPQ.part) succeeded.
+TestReadingMpq (blk4-file://streaming/model.MPQ.0) succeeded.
+TestReadingMpq: Warning: CRC32 error on replay.message.events
+TestReadingMpq (MPQ_2023_v2_MemoryCorruption.SC2Replay) succeeded.
+TestReadingMpq (MPQ_2023_v1_StarcraftMap.scm) succeeded.
+TestReadingMpq (MPQ_2023_v1_BroodWarMap.scx) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_InvalidUserData.w3x) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_InvalidMpqFormat.w3x) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_Spazzler.w3x) succeeded.
+TestReadingMpq (MPQ_2014_v1_ProtectedMap_Spazzler2.w3x) succeeded.
+TestReadingMpq (MPQ_2014_v1_ProtectedMap_Spazzler3.w3x) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_BOBA.w3m) succeeded.
+TestReadingMpq (MPQ_2015_v1_ProtectedMap_KangTooJee.w3x) succeeded.
+TestReadingMpq (MPQ_2015_v1_ProtectedMap_Somj2hM16.w3x) succeeded.
+TestReadingMpq (MPQ_2015_v1_ProtectedMap_Spazy.w3x) succeeded.
+TestReadingMpq (MPQ_2015_v1_MessListFile.mpq) succeeded.
+TestReadingMpq (MPQ_2016_v1_ProtectedMap_TableSizeOverflow.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_ProtectedMap_HashOffsIsZero.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_ProtectedMap_Somj2.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_WME4_4.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_SP_(4)Adrenaline.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_ProtectedMap_1.4.w3x) succeeded.
+TestReadingMpq (MPQ_2016_v1_KoreanFile.w3m) succeeded.
+TestReadingMpq (MPQ_2017_v1_Eden_RPG_S2_2.5J.w3x) succeeded.
+TestReadingMpq (MPQ_2017_v1_BigDummyFiles.w3x) succeeded.
+TestReadingMpq (MPQ_2017_v1_TildeInFileName.mpq) succeeded.
+TestReadingMpq (MPQ_2018_v1_EWIX_v8_7.w3x) succeeded.
+TestReadingMpq (MPQ_2020_v4_FakeMpqHeaders.SC2Mod) succeeded.
+TestReadingMpq (MPQ_2020_v4_NP_Protect_1.s2ma) succeeded.
+TestReadingMpq (MPQ_2020_v4_NP_Protect_2.s2ma) succeeded.
+TestReadingMpq (MPQ_2015_v1_flem1.w3x) succeeded.
+TestReadingMpq (MPQ_2002_v1_ProtectedMap_HashTable_FakeValid.w3x) succeeded.
+TestReadingMpq (MPQ_2021_v1_CantExtractCHK.scx) succeeded.
+TestReadingMpq (MPQ_2022_v1_Sniper.scx) succeeded.
+TestReadingMpq (MPQ_2022_v1_OcOc_Bound_2.scx) succeeded.
+TestReadingMpq (MPQ_2020_v1_HS0.1.asi) succeeded.
+TestReadingMpq (MPQ_2022_v1_hs0.8.asi) succeeded.
+TestReadingMpq (MPQ_2022_v1_MoeMoeMod.asi) succeeded.
+TestReadingMpq (MPx_2013_v1_LongwuOnline.mpk) succeeded.
+TestReadingMpq (MPx_2013_v1_WarOfTheImmortals.sqp) succeeded.
+TestReadingMpq (MPx_2022_v1_Music.mpk) succeeded.
+TestReadingMpq (MPx_2022_v1_Scp.mpk) succeeded.
+TestReadingMpq (MPx_2022_v1_UI.mpk) succeeded.
+TestReadingMpq (MPQ_1998_v1_StarCraft.mpq) succeeded.
+TestReadingMpq (MPQ_2012_v4_OldWorld.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_world.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_locale-enGB.MPQ) succeeded.
+TestReadingMpq (MPQ_2013_v4_Base1.SC2Data) succeeded.
+TestReadingMpq (MPQ_2013_v4_Mods#Core.SC2Mod#enGB.SC2Assets) succeeded.
+TestReadingMpq (MPQ_2013_v4_Base1.SC2Data) succeeded.
+TestReadingMpq (MPQ_2013_v4_Base3.SC2Maps) succeeded.
+TestReadingMpq (MPQ_2013_v4_Mods#Liberty.SC2Mod#enGB.SC2Data) succeeded.
+TestReadingMpq (MPQ_2014_v4_base-Win.MPQ) succeeded.
+TestReadingMpq (MPQ_2014_v4_base-Win.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_STANDARD.SNP) succeeded.
+TestReadingMpq (MPQ_1999_v1_WeakSignature.exe) succeeded.
+TestReadingMpq (MPQ_2003_v1_WeakSignatureEmpty.exe) succeeded.
+TestReadingMpq (MPQ_2002_v1_StrongSignature.w3m) succeeded.
+TestReadingMpq (MPQ_1998_v1_StarDat.mpq) succeeded.
+TestReadingMpq (MPQ_1999_v1_WeakSignature.exe) succeeded.
+TestReadingMpq (flat-file://streaming/model.MPQ.0) succeeded.
+TestReadingMpq (MPQ_2013_vX_Battle.net.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
+TestReadingMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
+TestReadingMpq (MPQ_2002_v1_StrongSignature.w3m) succeeded.
+TestReadingMpq (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
+Test_ReopenMpq (MPQ_2010_v3_expansion-locale-frFR.MPQ) succeeded.
+Test_ReopenMpq (MPQ_2016_v1_00000.pak) succeeded.
+Test_ReopenMpq (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
+Test_ReopenMpq (MPQ_2013_v4_expansion1.MPQ) succeeded.
+Test_ReopenMpq (MPQ_2014_v1_out1.w3x) succeeded.
+Test_ReopenMpq (MPQ_2014_v1_out2.w3x) succeeded.
+Test_ReopenMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
+Test_ReopenMpq (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
+Test_Signature (MPQ_1999_v1_WeakSigned1.mpq) succeeded.
+Test_Signature (MPQ_1999_v1_WeakSigned1.mpq) succeeded.
+TestVerifyHash succeeded.
+CreateEmptyMpq (StormLibTest_EmptyMpq_v2.mpq) succeeded.
+CreateEmptyMpq (StormLibTest_EmptyMpq_v4.mpq) succeeded.
+TestCreateGaps (StormLibTest_GapsTest.mpq) succeeded.
+TestNonStdNames (StormLibTest_NonStdNames.mpq) succeeded.
CreateMpqEditor (StormLibTest_MpqEditorTest.mpq) succeeded.
-CreateFullMpq (StormLibTest_FileTableFull.mpq) succeeded.
-CreateFullMpq (StormLibTest_FileTableFull.mpq) succeeded.
-CreateFullMpq (StormLibTest_FileTableFull.mpq) succeeded.
-CreateFullMpq (StormLibTest_FileTableFull.mpq) succeeded.
+TestCreateFull (StormLibTest_FileTableFull.mpq) succeeded.
+TestCreateFull (StormLibTest_FileTableFull.mpq) succeeded.
+TestCreateFull (StormLibTest_FileTableFull.mpq) succeeded.
+TestCreateFull (StormLibTest_FileTableFull.mpq) succeeded.
IncMaxFileCount (StormLibTest_IncMaxFileCount.mpq) succeeded.
MpqUnicodeName succeeded.
-FileFlagTest (StormLibTest_FileFlagTest.mpq) succeeded.
-CompressionsTest: Warning: CRC32 error on WaveFile_01.wav
-CompressionsTest: Warning: CRC32 error on WaveFile_02.wav
-CompressionsTest (StormLibTest_AddWaveMonoBadTest.mpq) succeeded.
-CompressionsTest: Warning: CRC32 error on WaveFile_01.wav
-CompressionsTest: Warning: CRC32 error on WaveFile_02.wav
+TestFileFlag (StormLibTest_FileFlagTest.mpq) succeeded.
+TestCompressions: Warning: CRC32 error on WaveFile_01.wav
+TestCompressions: Warning: CRC32 error on WaveFile_02.wav
+TestCompressions (StormLibTest_AddWaveMonoBadTest.mpq) succeeded.
+TestCompressions: Warning: CRC32 error on WaveFile_01.wav
+TestCompressions: Warning: CRC32 error on WaveFile_02.wav
ListFilePos (StormLibTest_ListFilePos.mpq) succeeded.
-BigMpqTest (StormLibTest_BigArchive_v4.mpq) succeeded.
-ModifyTest (MPQ_2014_v4_Base.StormReplay) succeeded.
-ModifyTest (MPQ_2022_v1_v4.329.w3x) succeeded.
-
-E:\Ladik\Appdir\StormLib\bin\StormLib_test\x64\Release> \ No newline at end of file
+TestBigArchive (StormLibTest_BigArchive_v4.mpq) succeeded.
+TestModifyMpq (MPQ_2014_v4_Base.StormReplay) succeeded.
+TestModifyMpq (MPQ_2022_v1_v4.329.w3x) succeeded.