diff --git a/include/cosms-core/file.h b/include/cosms-core/file.h index 2053faa..5ea7f01 100644 --- a/include/cosms-core/file.h +++ b/include/cosms-core/file.h @@ -12,20 +12,20 @@ #include typedef enum { - COSMS_FILE_OK = 0, - COSMS_FILE_NOT_FOUND = -1, - COSMS_FILE_NO_ACCESS = -2, - COSMS_FILE_LIMIT_REACHED = -3, - COSMS_FILE_COULD_NOT_READ_SIZE = -4, - COSMS_FILE_UNKOWN_ERROR = -5, - COSMS_FILE_FAILED_TO_ALLOCATE = -6, - COSMS_FILE_FAILED_TO_READ = -7, - COSMS_FILE_FAILED_TO_WRITE = -8, -} CosmsFileError; + COSMS_CORE_FILE_OK = 0, + COSMS_CORE_FILE_NOT_FOUND = -1, + COSMS_CORE_FILE_NO_ACCESS = -2, + COSMS_CORE_FILE_LIMIT_REACHED = -3, + COSMS_CORE_FILE_COULD_NOT_READ_SIZE = -4, + COSMS_CORE_FILE_UNKOWN_ERROR = -5, + COSMS_CORE_FILE_FAILED_TO_ALLOCATE = -6, + COSMS_CORE_FILE_FAILED_TO_READ = -7, + COSMS_CORE_FILE_FAILED_TO_WRITE = -8, +} CosmsCoreFileError; -CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned long long *size); -CosmsFileError cosms_core_file_write(const char *path, const char *content, unsigned long long size, bool override); +CosmsCoreFileError cosms_core_file_read(const char *path, char **content, unsigned long long *size); +CosmsCoreFileError cosms_core_file_write(const char *path, const char *content, unsigned long long size, bool override); -const char *cosms_core_file_error_string(CosmsFileError error); +const char *cosms_core_file_error_string(CosmsCoreFileError error); #endif diff --git a/src/file.c b/src/file.c index b0cc00f..1f05ebe 100644 --- a/src/file.c +++ b/src/file.c @@ -20,30 +20,30 @@ #include #endif -CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned long long *size) { +CosmsCoreFileError cosms_core_file_read(const char *path, char **content, unsigned long long *size) { #if defined(__GNUC__) int file = open(path, O_RDONLY); if (file == -1) { switch(errno) { case ENOENT: - return COSMS_FILE_NOT_FOUND; + return COSMS_CORE_FILE_NOT_FOUND; case EACCES: - return COSMS_FILE_NO_ACCESS; + return COSMS_CORE_FILE_NO_ACCESS; case EMFILE: case ENFILE: - return COSMS_FILE_LIMIT_REACHED; + return COSMS_CORE_FILE_LIMIT_REACHED; default: - return COSMS_FILE_UNKOWN_ERROR; + return COSMS_CORE_FILE_UNKOWN_ERROR; } } struct stat file_stat; if (stat(path, &file_stat) != 0) { close(file); - return COSMS_FILE_COULD_NOT_READ_SIZE; + return COSMS_CORE_FILE_COULD_NOT_READ_SIZE; } if (size != NULL) { @@ -53,7 +53,7 @@ CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned l *content = (char*)malloc((file_stat.st_size + 1) * sizeof(char)); if (content == NULL) { close(file); - return COSMS_FILE_FAILED_TO_ALLOCATE; + return COSMS_CORE_FILE_FAILED_TO_ALLOCATE; } unsigned long long remaining_bytes = file_stat.st_size; @@ -69,7 +69,7 @@ CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned l if (read_bytes == -1) { free(*content); close(file); - return COSMS_FILE_FAILED_TO_READ; + return COSMS_CORE_FILE_FAILED_TO_READ; } remaining_bytes -= read_bytes; @@ -83,18 +83,18 @@ CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned l switch(GetLastError()) { case ERROR_FILE_NOT_FOUND: case ERROR_PATH_NOT_FOUND: - return COSMS_FILE_NOT_FOUND; + return COSMS_CORE_FILE_NOT_FOUND; case ERROR_ACCESS_DENIED: case ERROR_SHARING_VIOLATION: case ERROR_LOCK_VIOLATION: - return COSMS_FILE_NO_ACCESS; + return COSMS_CORE_FILE_NO_ACCESS; case ERROR_TOO_MANY_OPEN_FILES: - return COSMS_FILE_LIMIT_REACHED; + return COSMS_CORE_FILE_LIMIT_REACHED; default: - return COSMS_FILE_UNKOWN_ERROR; + return COSMS_CORE_FILE_UNKOWN_ERROR; } } @@ -102,7 +102,7 @@ CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned l DWORD low_size = GetFileSize(file, &high_size); if (low_size == INVALID_FILE_SIZE && GetLastError() != NO_ERROR) { CloseHandle(file); - return COSMS_FILE_COULD_NOT_READ_SIZE; + return COSMS_CORE_FILE_COULD_NOT_READ_SIZE; } unsigned long long file_size = ((unsigned long long)high_size << 32) | low_size; @@ -114,7 +114,7 @@ CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned l *content = (char*)malloc((file_size + 1) * sizeof(char)); if (content == NULL) { CloseHandle(file); - return COSMS_FILE_FAILED_TO_ALLOCATE; + return COSMS_CORE_FILE_FAILED_TO_ALLOCATE; } unsigned long long remaining_bytes = file_size; @@ -129,7 +129,7 @@ CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned l if (!ReadFile(file, (*content) + (file_size - remaining_bytes), bytes_to_read, &read_bytes, NULL)) { free(*content); CloseHandle(file); - return COSMS_FILE_FAILED_TO_READ; + return COSMS_CORE_FILE_FAILED_TO_READ; } remaining_bytes -= read_bytes; @@ -139,10 +139,10 @@ CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned l CloseHandle(file); #endif - return COSMS_FILE_OK; + return COSMS_CORE_FILE_OK; } -CosmsFileError cosms_core_file_write(const char *path, const char *content, unsigned long long size, bool override) { +CosmsCoreFileError cosms_core_file_write(const char *path, const char *content, unsigned long long size, bool override) { #if defined(__GNUC__) int file; if (override) { @@ -154,17 +154,17 @@ CosmsFileError cosms_core_file_write(const char *path, const char *content, unsi if (file == -1) { switch (errno) { case ENOENT: - return COSMS_FILE_NOT_FOUND; + return COSMS_CORE_FILE_NOT_FOUND; case EACCES: - return COSMS_FILE_NO_ACCESS; + return COSMS_CORE_FILE_NO_ACCESS; case EMFILE: case ENFILE: - return COSMS_FILE_LIMIT_REACHED; + return COSMS_CORE_FILE_LIMIT_REACHED; default: - return COSMS_FILE_UNKOWN_ERROR; + return COSMS_CORE_FILE_UNKOWN_ERROR; } } @@ -180,7 +180,7 @@ CosmsFileError cosms_core_file_write(const char *path, const char *content, unsi int written_bytes = write(file, content + (size - remaining_bytes), bytes_to_write); if (written_bytes == -1) { close(file); - return COSMS_FILE_FAILED_TO_WRITE; + return COSMS_CORE_FILE_FAILED_TO_WRITE; } remaining_bytes -= written_bytes; @@ -199,18 +199,18 @@ CosmsFileError cosms_core_file_write(const char *path, const char *content, unsi switch(GetLastError()) { case ERROR_FILE_NOT_FOUND: case ERROR_PATH_NOT_FOUND: - return COSMS_FILE_NOT_FOUND; + return COSMS_CORE_FILE_NOT_FOUND; case ERROR_ACCESS_DENIED: case ERROR_SHARING_VIOLATION: case ERROR_LOCK_VIOLATION: - return COSMS_FILE_NO_ACCESS; + return COSMS_CORE_FILE_NO_ACCESS; case ERROR_TOO_MANY_OPEN_FILES: - return COSMS_FILE_LIMIT_REACHED; + return COSMS_CORE_FILE_LIMIT_REACHED; default: - return COSMS_FILE_UNKOWN_ERROR; + return COSMS_CORE_FILE_UNKOWN_ERROR; } } @@ -225,7 +225,7 @@ CosmsFileError cosms_core_file_write(const char *path, const char *content, unsi if (!WriteFile(file, content + (size - remaining_bytes), bytes_to_write, &written_bytes, NULL)) { CloseHandle(file); - return COSMS_FILE_FAILED_TO_WRITE; + return COSMS_CORE_FILE_FAILED_TO_WRITE; } remaining_bytes -= written_bytes; @@ -234,36 +234,36 @@ CosmsFileError cosms_core_file_write(const char *path, const char *content, unsi CloseHandle(file); #endif - return COSMS_FILE_OK; + return COSMS_CORE_FILE_OK; } -const char *cosms_core_file_error_string(CosmsFileError error) { +const char *cosms_core_file_error_string(CosmsCoreFileError error) { switch(error) { - case COSMS_FILE_OK: + case COSMS_CORE_FILE_OK: return "cosms-file everything ok"; - case COSMS_FILE_NOT_FOUND: + case COSMS_CORE_FILE_NOT_FOUND: return "cosms-file path not found"; - case COSMS_FILE_NO_ACCESS: + case COSMS_CORE_FILE_NO_ACCESS: return "cosms-file no access"; - case COSMS_FILE_LIMIT_REACHED: + case COSMS_CORE_FILE_LIMIT_REACHED: return "cosms-file to many open files"; - case COSMS_FILE_COULD_NOT_READ_SIZE: + case COSMS_CORE_FILE_COULD_NOT_READ_SIZE: return "cosms-file failed to read size"; - case COSMS_FILE_UNKOWN_ERROR: + case COSMS_CORE_FILE_UNKOWN_ERROR: return "cosms-file unkown error occured"; - case COSMS_FILE_FAILED_TO_ALLOCATE: + case COSMS_CORE_FILE_FAILED_TO_ALLOCATE: return "cosms-file failed to allocate memory"; - case COSMS_FILE_FAILED_TO_READ: + case COSMS_CORE_FILE_FAILED_TO_READ: return "cosms-file failed to read content of file"; - case COSMS_FILE_FAILED_TO_WRITE: + case COSMS_CORE_FILE_FAILED_TO_WRITE: return "cosms-file failed to write content to file"; default: diff --git a/tests/unit/file.c b/tests/unit/file.c index 89e1de8..ba305b8 100644 --- a/tests/unit/file.c +++ b/tests/unit/file.c @@ -14,8 +14,8 @@ void cosms_core_file_read_test() { unsigned long long file_size; char *file_buffer; - CosmsFileError error = cosms_core_file_read("tests/data/small-file.txt", &file_buffer, &file_size); - if (error != COSMS_FILE_OK) { + CosmsCoreFileError error = cosms_core_file_read("tests/data/small-file.txt", &file_buffer, &file_size); + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { const char *expected_result = "Hello, World!"; @@ -34,7 +34,7 @@ void cosms_core_file_read_test() { file_size = 0; file_buffer = NULL; error = cosms_core_file_read("tests/data/large-file.txt", &file_buffer, &file_size); - if (error != COSMS_FILE_OK) { + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { unsigned long long expected_size = 5242880000ULL; @@ -65,7 +65,7 @@ void cosms_core_file_read_test() { file_size = 0; file_buffer = NULL; error = cosms_core_file_read("non-existing-file.cosms", &file_buffer, &file_size); - if (error == COSMS_FILE_NOT_FOUND) { + if (error == COSMS_CORE_FILE_NOT_FOUND) { COSMS_TEST_SUCCESS(current_test_name); } else { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); @@ -81,13 +81,13 @@ void cosms_core_file_write_test() { COSMS_TEST_START(current_test_name); char *file_buffer = "Hello, World!"; - CosmsFileError error = cosms_core_file_write("tests/data/small-write-file.txt", file_buffer, strlen(file_buffer) - 1, true); - if (error != COSMS_FILE_OK) { + CosmsCoreFileError error = cosms_core_file_write("tests/data/small-write-file.txt", file_buffer, strlen(file_buffer) - 1, true); + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { char *file_content; error = cosms_core_file_read("tests/data/small-write-file.txt", &file_content, NULL); - if (error != COSMS_FILE_OK) { + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { if (strcmp(file_buffer, file_content)) { @@ -115,12 +115,12 @@ void cosms_core_file_write_test() { large_file_buffer[large_file_size] = '\0'; error = cosms_core_file_write("tests/data/large-write-file.txt", large_file_buffer, large_file_size, true); - if (error != COSMS_FILE_OK) { + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { char *file_content; error = cosms_core_file_read("tests/data/large-write-file.txt", &file_content, NULL); - if (error != COSMS_FILE_OK) { + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { if (strcmp(file_buffer, file_content)) { @@ -139,12 +139,12 @@ void cosms_core_file_write_test() { COSMS_TEST_START(current_test_name); error = cosms_core_file_write("tests/data/small-write-file.txt", file_buffer, strlen(file_buffer) - 1, false); - if (error != COSMS_FILE_OK) { + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { char *file_content; error = cosms_core_file_read("tests/data/small-write-file.txt", &file_content, NULL); - if (error != COSMS_FILE_OK) { + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { const char *expected_result = "Hello, World!Hello, World!"; @@ -162,12 +162,12 @@ void cosms_core_file_write_test() { COSMS_TEST_START(current_test_name); error = cosms_core_file_write("tests/data/append-write-file.txt", file_buffer, strlen(file_buffer) - 1, false); - if (error != COSMS_FILE_OK) { + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { char *file_content; error = cosms_core_file_read("tests/data/small-write-file.txt", &file_content, NULL); - if (error != COSMS_FILE_OK) { + if (error != COSMS_CORE_FILE_OK) { COSMS_TEST_FAIL(current_test_name, cosms_core_file_error_string(error)); } else { if (strcmp(file_buffer, file_content)) {