/* * Copyright (C) Tristan Franssen, . * * This software is licensed under the Apache License, Version 2.0 (the "License"); * You may not use this file except in compliance with the License. * You may obtain a copy of the License in the file LICENSE or at * http://www.apache.org/licenses/LICENSE-2.0 */ #include "unit/file.h" #include #include COSMS_CORE_TEST_TEST(file_open_small_file_read, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/small-file.txt", COSMS_CORE_FILE_MODE_READ); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_open_large_file_read, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/large-file.txt", COSMS_CORE_FILE_MODE_READ); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_open_non_existing_file_read, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "non-existing-file.cosms", COSMS_CORE_FILE_MODE_READ); if (error == COSMS_CORE_FILE_OK) { error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return cosms_core_file_error_string(error); } if (error != COSMS_CORE_FILE_NOT_FOUND) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_open_small_file_write, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/small-file.txt", COSMS_CORE_FILE_MODE_WRITE); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_open_large_file_write, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/large-file.txt", COSMS_CORE_FILE_MODE_WRITE); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_open_small_file_append, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/small-file.txt", COSMS_CORE_FILE_MODE_APPEND); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_open_large_file_append, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/large-file.txt", COSMS_CORE_FILE_MODE_APPEND); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_open_small_file_read_write, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/small-file.txt", COSMS_CORE_FILE_MODE_READ | COSMS_CORE_FILE_MODE_WRITE); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_open_large_file_read_write, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/large-file.txt", COSMS_CORE_FILE_MODE_READ | COSMS_CORE_FILE_MODE_WRITE); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_close, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/small-file.txt", COSMS_CORE_FILE_MODE_READ); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_close_non_existing_file, struct cosms_core_file file; file.native_file = 0; CosmsCoreFileError error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_INVALID_FILE) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_size_small_file, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/small-file.txt", COSMS_CORE_FILE_MODE_READ); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } unsigned long long size = 0; error = cosms_core_file_get_size(&file, &size); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } if (size != 13) { return "result does not match expected result"; } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_size_large, struct cosms_core_file file; CosmsCoreFileError error = cosms_core_file_open(&file, "tests/data/large-file.txt", COSMS_CORE_FILE_MODE_READ); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } unsigned long long size = 0; error = cosms_core_file_get_size(&file, &size); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } if (size != 5242880000ULL) { return "result does not match expected result"; } error = cosms_core_file_close(&file); if (error != COSMS_CORE_FILE_OK) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_size_non_existing_file, struct cosms_core_file file; file.native_file = 0; unsigned long long size = 0; CosmsCoreFileError error = cosms_core_file_get_size(&file, &size); if (error != COSMS_CORE_FILE_INVALID_FILE) { return cosms_core_file_error_string(error); } return NULL; ) COSMS_CORE_TEST_TEST(file_read, return NULL; ) COSMS_CORE_TEST_TEST(file_write, return NULL; ) COSMS_CORE_TEST_TEST(file_delete, return NULL; )