Clean up DqnFile to be more C++ and minor fixes
This commit is contained in:
parent
ee4f8eca17
commit
18967312d6
@ -1395,7 +1395,7 @@ void DqnArray_TestRealDataInternal(DqnArray<char> *array)
|
|||||||
{
|
{
|
||||||
#ifdef DQN_XPLATFORM_LAYER
|
#ifdef DQN_XPLATFORM_LAYER
|
||||||
size_t bufSize = 0;
|
size_t bufSize = 0;
|
||||||
u8 *buf = DqnFile_ReadEntireFileSimple("tests/google-10000-english.txt", &bufSize);
|
u8 *buf = DqnFile::ReadEntireFileSimple("tests/google-10000-english.txt", bufSize);
|
||||||
DQN_ASSERT(buf);
|
DQN_ASSERT(buf);
|
||||||
|
|
||||||
for (auto i = 0; i < bufSize; i++)
|
for (auto i = 0; i < bufSize; i++)
|
||||||
@ -1899,32 +1899,32 @@ void DqnFile_Test()
|
|||||||
if (1)
|
if (1)
|
||||||
{
|
{
|
||||||
size_t size = 0;
|
size_t size = 0;
|
||||||
DQN_ASSERT_HARD(DqnFile_GetFileSize(FILE_TO_OPEN, &size));
|
DQN_ASSERT_HARD(DqnFile::GetFileSize(FILE_TO_OPEN, size));
|
||||||
DQN_ASSERT_HARD(size == expectedSize);
|
DQN_ASSERT_HARD(size == expectedSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
DqnFile file = {};
|
DqnFile file = {};
|
||||||
DQN_ASSERT(DqnFile_Open(".clang-format", &file,
|
DQN_ASSERT(file.Open(".clang-format",
|
||||||
(DqnFilePermissionFlag_Write | DqnFilePermissionFlag_Read),
|
(DqnFile::PermissionFlag::FileWrite | DqnFile::PermissionFlag::FileRead),
|
||||||
DqnFileAction_OpenOnly));
|
DqnFile::Action::OpenOnly));
|
||||||
|
|
||||||
DQN_ASSERT_MSG(file.size == expectedSize,
|
DQN_ASSERT_MSG(file.size == expectedSize,
|
||||||
"DqnFileOpen() failed: file.size: %d, expected:%d\n", file.size,
|
"DqnFileOpen() failed: file.size: %d, expected:%d\n", file.size,
|
||||||
expectedSize);
|
expectedSize);
|
||||||
|
|
||||||
u8 *buffer = (u8 *)calloc(1, (size_t)file.size * sizeof(u8));
|
u8 *buffer = (u8 *)calloc(1, (size_t)file.size * sizeof(u8));
|
||||||
DQN_ASSERT(DqnFile_Read(&file, buffer, (u32)file.size) == file.size);
|
DQN_ASSERT(file.Read(*buffer, (u32)file.size) == file.size);
|
||||||
free(buffer);
|
free(buffer);
|
||||||
|
|
||||||
DqnFile_Close(&file);
|
file.Close();
|
||||||
DQN_ASSERT(!file.handle && file.size == 0 && file.permissionFlags == 0);
|
DQN_ASSERT(!file.handle && file.size == 0 && file.flags == 0);
|
||||||
|
|
||||||
if (1)
|
if (1)
|
||||||
{
|
{
|
||||||
DqnFile raiiFile = DqnFile(true);
|
DqnFile raiiFile = DqnFile(true);
|
||||||
if (raiiFile.Open(FILE_TO_OPEN,
|
if (raiiFile.Open(FILE_TO_OPEN,
|
||||||
DqnFilePermissionFlag_Write | DqnFilePermissionFlag_Read,
|
DqnFile::PermissionFlag::FileWrite | DqnFile::PermissionFlag::FileRead,
|
||||||
DqnFileAction_OpenOnly))
|
DqnFile::Action::OpenOnly))
|
||||||
{
|
{
|
||||||
i32 breakHereToTestRaii = 0;
|
i32 breakHereToTestRaii = 0;
|
||||||
(void)breakHereToTestRaii;
|
(void)breakHereToTestRaii;
|
||||||
@ -1938,11 +1938,11 @@ void DqnFile_Test()
|
|||||||
if (1)
|
if (1)
|
||||||
{
|
{
|
||||||
DqnFile file = {};
|
DqnFile file = {};
|
||||||
DQN_ASSERT(!DqnFile_Open("asdljasdnel;kajdf", &file,
|
DQN_ASSERT(!file.Open("asdljasdnel;kajdf", (DqnFile::PermissionFlag::FileWrite |
|
||||||
(DqnFilePermissionFlag_Write | DqnFilePermissionFlag_Read),
|
DqnFile::PermissionFlag::FileRead),
|
||||||
DqnFileAction_OpenOnly));
|
DqnFile::Action::OpenOnly));
|
||||||
DQN_ASSERT(file.size == 0);
|
DQN_ASSERT(file.size == 0);
|
||||||
DQN_ASSERT(file.permissionFlags == 0);
|
DQN_ASSERT(file.flags == 0);
|
||||||
DQN_ASSERT(!file.handle);
|
DQN_ASSERT(!file.handle);
|
||||||
LogSuccess("DqnFile(): Invalid file test");
|
LogSuccess("DqnFile(): Invalid file test");
|
||||||
}
|
}
|
||||||
@ -1960,19 +1960,20 @@ void DqnFile_Test()
|
|||||||
// Write data out to some files
|
// Write data out to some files
|
||||||
for (u32 i = 0; i < DQN_ARRAY_COUNT(fileNames); i++)
|
for (u32 i = 0; i < DQN_ARRAY_COUNT(fileNames); i++)
|
||||||
{
|
{
|
||||||
u32 permissions = DqnFilePermissionFlag_Read | DqnFilePermissionFlag_Write;
|
u32 permissions = DqnFile::PermissionFlag::FileRead | DqnFile::PermissionFlag::FileWrite;
|
||||||
if (!DqnFile_Open(fileNames[i], files + i, permissions, DqnFileAction_ClearIfExist))
|
DqnFile *file = files + i;
|
||||||
|
if (!file->Open(fileNames[i], permissions, DqnFile::Action::ClearIfExist))
|
||||||
{
|
{
|
||||||
bool result = DqnFile_Open(fileNames[i], files + i, permissions,
|
bool result =
|
||||||
DqnFileAction_CreateIfNotExist);
|
file->Open(fileNames[i], permissions, DqnFile::Action::CreateIfNotExist);
|
||||||
DQN_ASSERT(result);
|
DQN_ASSERT(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t bytesToWrite = DqnStr_Len(writeData[i]);
|
size_t bytesToWrite = DqnStr_Len(writeData[i]);
|
||||||
u8 *dataToWrite = (u8 *)(writeData[i]);
|
u8 *dataToWrite = (u8 *)(writeData[i]);
|
||||||
size_t bytesWritten = DqnFile_Write(files + i, dataToWrite, bytesToWrite, 0);
|
size_t bytesWritten = file->Write(*dataToWrite, bytesToWrite, 0);
|
||||||
DQN_ASSERT(bytesWritten == bytesToWrite);
|
DQN_ASSERT(bytesWritten == bytesToWrite);
|
||||||
DqnFile_Close(&files[i]);
|
file->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
DqnMemStack memStack = {};
|
DqnMemStack memStack = {};
|
||||||
@ -1982,15 +1983,15 @@ void DqnFile_Test()
|
|||||||
{
|
{
|
||||||
// Manual read the file contents
|
// Manual read the file contents
|
||||||
{
|
{
|
||||||
u32 permissions = DqnFilePermissionFlag_Read;
|
u32 permissions = DqnFile::PermissionFlag::FileRead;
|
||||||
DqnFile *file = files + i;
|
DqnFile *file = files + i;
|
||||||
bool result = DqnFile_Open(fileNames[i], file, permissions, DqnFileAction_OpenOnly);
|
bool result = file->Open(fileNames[i], permissions, DqnFile::Action::OpenOnly);
|
||||||
DQN_ASSERT(result);
|
DQN_ASSERT(result);
|
||||||
|
|
||||||
u8 *buffer = (u8 *)memStack.Push(file->size);
|
u8 *buffer = (u8 *)memStack.Push(file->size);
|
||||||
DQN_ASSERT(buffer);
|
DQN_ASSERT(buffer);
|
||||||
|
|
||||||
size_t bytesRead = DqnFile_Read(&files[i], buffer, file->size);
|
size_t bytesRead = file->Read(*buffer, file->size);
|
||||||
DQN_ASSERT(bytesRead == file->size);
|
DQN_ASSERT(bytesRead == file->size);
|
||||||
|
|
||||||
// Verify the data is the same as we wrote out
|
// Verify the data is the same as we wrote out
|
||||||
@ -1998,19 +1999,19 @@ void DqnFile_Test()
|
|||||||
|
|
||||||
// Delete when we're done with it
|
// Delete when we're done with it
|
||||||
DQN_ASSERT(memStack.Pop(buffer, file->size));
|
DQN_ASSERT(memStack.Pop(buffer, file->size));
|
||||||
DqnFile_Close(file);
|
file->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read using the ReadEntireFile api which doesn't need a file handle as an argument
|
// Read using the ReadEntireFile api which doesn't need a file handle as an argument
|
||||||
{
|
{
|
||||||
size_t reqSize = 0;
|
size_t reqSize = 0;
|
||||||
DQN_ASSERT(DqnFile_GetFileSize(fileNames[i], &reqSize));
|
DQN_ASSERT(DqnFile::GetFileSize(fileNames[i], reqSize));
|
||||||
|
|
||||||
u8 *buffer = (u8 *)memStack.Push(reqSize);
|
u8 *buffer = (u8 *)memStack.Push(reqSize);
|
||||||
DQN_ASSERT(buffer);
|
DQN_ASSERT(buffer);
|
||||||
|
|
||||||
size_t bytesRead = 0;
|
size_t bytesRead = 0;
|
||||||
DQN_ASSERT(DqnFile_ReadEntireFile(fileNames[i], buffer, reqSize, &bytesRead));
|
DQN_ASSERT(DqnFile::ReadEntireFile(fileNames[i], *buffer, reqSize, bytesRead));
|
||||||
DQN_ASSERT(bytesRead == reqSize);
|
DQN_ASSERT(bytesRead == reqSize);
|
||||||
|
|
||||||
// Verify the data is the same as we wrote out
|
// Verify the data is the same as we wrote out
|
||||||
@ -2018,16 +2019,15 @@ void DqnFile_Test()
|
|||||||
DQN_ASSERT(memStack.Pop(buffer, reqSize));
|
DQN_ASSERT(memStack.Pop(buffer, reqSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
DQN_ASSERT(DqnFile_Delete(fileNames[i]));
|
DQN_ASSERT(DqnFile::Delete(fileNames[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Then check delete actually worked, files should not exist.
|
// Then check delete actually worked, files should not exist.
|
||||||
for (u32 i = 0; i < DQN_ARRAY_COUNT(fileNames); i++)
|
for (u32 i = 0; i < DQN_ARRAY_COUNT(fileNames); i++)
|
||||||
{
|
{
|
||||||
DqnFile dummy = {};
|
DqnFile dummy = {};
|
||||||
u32 permissions = DqnFilePermissionFlag_Read;
|
u32 permissions = DqnFile::PermissionFlag::FileRead;
|
||||||
bool fileExists =
|
bool fileExists = dummy.Open(fileNames[i], permissions, DqnFile::Action::OpenOnly);
|
||||||
DqnFile_Open(fileNames[i], &dummy, permissions, DqnFileAction_OpenOnly);
|
|
||||||
DQN_ASSERT(!fileExists);
|
DQN_ASSERT(!fileExists);
|
||||||
}
|
}
|
||||||
memStack.Free();
|
memStack.Free();
|
||||||
@ -2040,18 +2040,18 @@ void DqnFile_Test()
|
|||||||
////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////
|
||||||
if (1)
|
if (1)
|
||||||
{
|
{
|
||||||
u32 numFiles;
|
i32 numFiles;
|
||||||
#if defined(DQN_UNIX_IMPLEMENTATION)
|
#if defined(DQN_UNIX_IMPLEMENTATION)
|
||||||
char **filelist = DqnFile_ListDir(".", &numFiles);
|
char **filelist = DqnFile::ListDir(".", numFiles);
|
||||||
#elif defined(DQN_WIN32_IMPLEMENTATION)
|
#elif defined(DQN_WIN32_IMPLEMENTATION)
|
||||||
char **filelist = DqnFile_ListDir("*", &numFiles);
|
char **filelist = DqnFile::ListDir("*", numFiles);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
printf("DqnFile(): Display read files\n");
|
printf("DqnFile(): Display read files\n");
|
||||||
for (u32 i = 0; i < numFiles; i++)
|
for (auto i = 0; i < numFiles; i++)
|
||||||
printf("DqnFile(): DirRead: %s\n", filelist[i]);
|
printf("DqnFile(): DirRead: %s\n", filelist[i]);
|
||||||
|
|
||||||
DqnFile_ListDirFree(filelist, numFiles);
|
DqnFile::ListDirFree(filelist, numFiles);
|
||||||
LogSuccess("DqnFile(): List directory files");
|
LogSuccess("DqnFile(): List directory files");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user