void TestChunkFileNameing(void) { CChunkFile cChunkFile; int iChunkNum; char acTwentyOne[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}; char acTwentyTwo[] = {0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19}; char acTwentyThree[] = {0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29}; char acActual[10]; cChunkFile.Init(MemoryFile()); AssertTrue(cChunkFile.WriteOpen()); AssertTrue(cChunkFile.WriteChunkBegin()); AssertLongLongInt(1, cChunkFile.Write(acTwentyOne, 10, 1)); AssertTrue(cChunkFile.WriteChunkBegin()); AssertLongLongInt(1, cChunkFile.Write(acTwentyTwo, 10, 1)); AssertTrue(cChunkFile.WriteChunkEnd("Floopy")); AssertTrue(cChunkFile.WriteChunkBegin()); AssertLongLongInt(1, cChunkFile.Write(acTwentyThree, 10, 1)); AssertTrue(cChunkFile.WriteChunkEnd("Floopy")); AssertTrue(cChunkFile.WriteChunkEnd("Rise")); AssertTrue(cChunkFile.WriteClose()); AssertTrue(cChunkFile.ReadOpen()); iChunkNum = cChunkFile.FindFirstChunkWithName("Rise"); AssertInt(0, iChunkNum); AssertTrue(cChunkFile.ReadChunkBegin(iChunkNum)); AssertLongLongInt(1, cChunkFile.Read(acActual, 10, 1)); AssertMemory(acTwentyOne, acActual, 10); iChunkNum = cChunkFile.FindFirstChunkWithName("Floopy"); AssertInt(0, iChunkNum); AssertTrue(cChunkFile.ReadChunkBegin(iChunkNum)); AssertLongLongInt(1, cChunkFile.Read(acActual, 10, 1)); AssertMemory(acTwentyTwo, acActual, 10); AssertTrue(cChunkFile.ReadChunkEnd()); iChunkNum = cChunkFile.FindNextChunkWithName(); AssertInt(1, iChunkNum); AssertTrue(cChunkFile.ReadChunkBegin(iChunkNum)); AssertLongLongInt(1, cChunkFile.Read(acActual, 10, 1)); AssertMemory(acTwentyThree, acActual, 10); AssertTrue(cChunkFile.ReadChunkEnd()); AssertTrue(cChunkFile.ReadChunkEnd()); AssertTrue(cChunkFile.ReadClose()); cChunkFile.Kill(); }
void TestChunkFileSimple(void) { CChunkFile cChunkFile; CFileUtil cFileUtil; int iChunkNum; cFileUtil.MakeDir("Output"); cFileUtil.Delete("Output/ChunkFile.bin"); cChunkFile.Init(DiskFile("Output/ChunkFile.bin")); AssertFalse(cChunkFile.IsOpen()); AssertTrue(cChunkFile.WriteOpen()); AssertTrue(cChunkFile.IsOpen()); AssertTrue(cChunkFile.WriteChunkBegin()); AssertTrue(cChunkFile.WriteChunkEnd("ThisChunk")); AssertTrue(cChunkFile.WriteClose()); AssertFalse(cChunkFile.IsOpen()); cChunkFile.Kill(); cChunkFile.Init(DiskFile("Output/ChunkFile.bin")); AssertFalse(cChunkFile.IsOpen()); AssertTrue(cChunkFile.ReadOpen()); AssertTrue(cChunkFile.IsOpen()); iChunkNum = cChunkFile.FindFirstChunkWithName("ThisChunk"); AssertInt(0, iChunkNum); AssertTrue(cChunkFile.ReadChunkBegin(iChunkNum)); AssertTrue(cChunkFile.ReadClose()); AssertFalse(cChunkFile.IsOpen()); cChunkFile.Kill(); }
void TestChunkFileFileRead(void) { CChunkFile cChunkFile; int iChunkNum; char szZ[] = {"Z"}; CChunkFileFile cChunkFileFile; char cz; cChunkFile.Init(MemoryFile()); AssertTrue(cChunkFile.WriteOpen()); AssertTrue(cChunkFile.WriteChunkBegin()); AssertLongLongInt(1, cChunkFile.Write(szZ, 1, 1)); AssertTrue(cChunkFile.WriteChunkEnd("Zynaps")); AssertTrue(cChunkFile.WriteClose()); AssertTrue(cChunkFile.ReadOpen()); iChunkNum = cChunkFile.FindFirstChunkWithName("Zynaps"); AssertInt(0, iChunkNum); AssertTrue(cChunkFile.ReadChunkBegin(iChunkNum)); cChunkFileFile.Init(&cChunkFile); AssertTrue(cChunkFileFile.Open(EFM_Read)); AssertLongLongInt(1, cChunkFileFile.Size()); AssertLongLongInt(0, cChunkFileFile.Tell()); AssertLongLongInt(1, cChunkFileFile.Read(&cz, 1, 1)); AssertChar('Z', cz); cz = 'Q'; AssertTrue(cChunkFileFile.Seek(0, EFSO_SET)); AssertLongLongInt(0, cChunkFileFile.Tell()); AssertLongLongInt(1, cChunkFileFile.Read(&cz, 1, 1)); AssertChar('Z', cz); cz = 'Q'; AssertLongLongInt(1, cChunkFileFile.Tell()); AssertFalse(cChunkFileFile.Eof()); AssertLongLongInt(0, cChunkFileFile.Read(&cz, 1, 1)); AssertTrue(cChunkFileFile.Eof()); AssertLongLongInt(1, cChunkFileFile.Tell()); AssertTrue(cChunkFileFile.Seek(0, EFSO_SET)); AssertFalse(cChunkFileFile.Eof()); AssertLongLongInt(1, cChunkFileFile.Read(&cz, 1, 2)); AssertChar('Z', cz); cz = 'Q'; AssertLongLongInt(1, cChunkFileFile.Tell()); AssertTrue(cChunkFileFile.Eof()); AssertTrue(cChunkFileFile.Close()); AssertTrue(cChunkFile.ReadChunkEnd()); AssertTrue(cChunkFile.ReadClose()); cChunkFile.Kill(); }