Merge pull request 'ArchiveReader bugfixes & tests for ArchiveReader/ArchiveWriter' (#144) from archive_reader_bugfix into master

Reviewed-on: https://git.madvoxel.net/OpenVulkano/OpenVulkano/pulls/144
Reviewed-by: Georg Hagen <georg.hagen@madvoxel.com>
This commit is contained in:
Vladyslav_Baranovskyi_EXT
2024-10-14 14:48:40 +02:00
5 changed files with 344 additions and 2 deletions

View File

@@ -57,6 +57,14 @@ namespace OpenVulkano
bool ArchiveReader::Open(const char* archiveFile)
{
if (archiveFile[0] == '\0')
{
if (m_logger)
{
m_logger->error("Unable to open archive file with an empty name!");
}
return false;
}
PrepOpen();
ChkErr(archive_read_open_filename(m_archive, archiveFile, BUFFER_SIZE));
ReadNextHeader();

View File

@@ -88,7 +88,7 @@ namespace OpenVulkano
else if (archiveResult <= ARCHIVE_FAILED) lvl = spdlog::level::level_enum::err;
const char* errorString = archive_error_string(arch);
if (logger) logger->log(lvl, errorString ? errorString : "Unknown error while handling archive");
if (archiveResult == ARCHIVE_FAILED) throw std::runtime_error(errorString);
if (archiveResult == ARCHIVE_FAILED || archiveResult == ARCHIVE_FATAL) throw std::runtime_error(errorString);
return false;
}
}

View File

@@ -19,7 +19,7 @@ namespace OpenVulkano
std::string path;
size_t size;
std::filesystem::perms permissions;
time_t createTime, modTime;
time_t createTime = {}, modTime = {};
static FileDescription MakeDescriptionForFile(const char* path, size_t size)
{