basic host FS unittests
This commit is contained in:
parent
e796e025b6
commit
8aaabc5d73
@ -132,6 +132,9 @@ class HasFileSystemIF {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
virtual ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) = 0;
|
virtual ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) = 0;
|
||||||
|
virtual ReturnValue_t createDirectory(FilesystemParams params) {
|
||||||
|
return createDirectory(params, false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Generic function to remove a directory
|
* @brief Generic function to remove a directory
|
||||||
@ -143,10 +146,11 @@ class HasFileSystemIF {
|
|||||||
return removeDirectory(params, false);
|
return removeDirectory(params, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ReturnValue_t renameFile(const char* oldPath, char* newPath) {
|
virtual ReturnValue_t rename(const char* oldPath, const char* newPath) {
|
||||||
return rename(oldPath, newPath, nullptr);
|
return rename(oldPath, newPath, nullptr);
|
||||||
}
|
}
|
||||||
virtual ReturnValue_t rename(const char* oldPath, char* newPath, FileSystemArgsIF* args) = 0;
|
virtual ReturnValue_t rename(const char* oldPath, const char* newPath,
|
||||||
|
FileSystemArgsIF* args) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* FSFW_MEMORY_HASFILESYSTEMIF_H_ */
|
#endif /* FSFW_MEMORY_HASFILESYSTEMIF_H_ */
|
||||||
|
@ -132,7 +132,8 @@ ReturnValue_t HostFilesystem::removeDirectory(FilesystemParams params, bool dele
|
|||||||
return HasFileSystemIF::GENERIC_DIR_ERROR;
|
return HasFileSystemIF::GENERIC_DIR_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t HostFilesystem::rename(const char *oldPath_, char *newPath_, FileSystemArgsIF *args) {
|
ReturnValue_t HostFilesystem::rename(const char *oldPath_, const char *newPath_,
|
||||||
|
FileSystemArgsIF *args) {
|
||||||
if (oldPath_ == nullptr or newPath_ == nullptr) {
|
if (oldPath_ == nullptr or newPath_ == nullptr) {
|
||||||
return HasReturnvaluesIF::RETURN_FAILED;
|
return HasReturnvaluesIF::RETURN_FAILED;
|
||||||
}
|
}
|
||||||
|
@ -15,11 +15,15 @@ class HostFilesystem : public HasFileSystemIF {
|
|||||||
ReturnValue_t removeFile(const char *path, FileSystemArgsIF *args) override;
|
ReturnValue_t removeFile(const char *path, FileSystemArgsIF *args) override;
|
||||||
ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) override;
|
ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) override;
|
||||||
ReturnValue_t removeDirectory(FilesystemParams params, bool deleteRecurively) override;
|
ReturnValue_t removeDirectory(FilesystemParams params, bool deleteRecurively) override;
|
||||||
ReturnValue_t rename(const char *oldPath, char *newPath, FileSystemArgsIF *args) override;
|
ReturnValue_t rename(const char *oldPath, const char *newPath, FileSystemArgsIF *args) override;
|
||||||
|
|
||||||
std::error_code errorCode;
|
std::error_code errorCode;
|
||||||
|
using HasFileSystemIF::createDirectory;
|
||||||
using HasFileSystemIF::createFile;
|
using HasFileSystemIF::createFile;
|
||||||
|
using HasFileSystemIF::removeDirectory;
|
||||||
using HasFileSystemIF::removeFile;
|
using HasFileSystemIF::removeFile;
|
||||||
|
using HasFileSystemIF::rename;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
};
|
};
|
||||||
#endif // FSFW_HAL_HOSTFILESYSTEM_H
|
#endif // FSFW_HAL_HOSTFILESYSTEM_H
|
||||||
|
@ -1,17 +1,22 @@
|
|||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
#include <filesystem>
|
||||||
|
|
||||||
#include "fsfw_hal/host/HostFilesystem.h"
|
#include "fsfw_hal/host/HostFilesystem.h"
|
||||||
#include <filesystem>
|
|
||||||
|
|
||||||
TEST_CASE("Host Filesystem", "[hal][host]") {
|
TEST_CASE("Host Filesystem", "[hal][host]") {
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
auto hostFs = HostFilesystem();
|
auto hostFs = HostFilesystem();
|
||||||
auto tmpDir = fs::temp_directory_path();
|
auto tmpDir = fs::temp_directory_path();
|
||||||
|
fs::path file0 = tmpDir / "hello.txt";
|
||||||
|
fs::path file1 = tmpDir / "hello.txt";
|
||||||
|
REQUIRE_NOTHROW(fs::remove(file0));
|
||||||
|
REQUIRE_NOTHROW(fs::remove(file1));
|
||||||
|
|
||||||
SECTION("Create file") {
|
SECTION("Create file") {
|
||||||
fs::path file = tmpDir / "hello.txt";
|
fs::path file = tmpDir / "hello.txt";
|
||||||
FilesystemParams params(file.c_str());
|
FilesystemParams params(file.c_str());
|
||||||
REQUIRE(hostFs.createFile(params) == result::OK);
|
REQUIRE(hostFs.createFile(params) == result::OK);
|
||||||
|
CHECK(fs::is_regular_file(file));
|
||||||
REQUIRE(fs::exists(file));
|
REQUIRE(fs::exists(file));
|
||||||
REQUIRE_NOTHROW(fs::remove(file));
|
REQUIRE_NOTHROW(fs::remove(file));
|
||||||
}
|
}
|
||||||
@ -20,9 +25,38 @@ TEST_CASE("Host Filesystem", "[hal][host]") {
|
|||||||
fs::path file = tmpDir / "hello.txt";
|
fs::path file = tmpDir / "hello.txt";
|
||||||
FilesystemParams params(file.c_str());
|
FilesystemParams params(file.c_str());
|
||||||
REQUIRE(hostFs.createFile(params) == result::OK);
|
REQUIRE(hostFs.createFile(params) == result::OK);
|
||||||
|
CHECK(fs::is_regular_file(file));
|
||||||
REQUIRE(fs::exists(file));
|
REQUIRE(fs::exists(file));
|
||||||
REQUIRE(hostFs.removeFile(file.c_str()) == result::OK);
|
REQUIRE(hostFs.removeFile(file.c_str()) == result::OK);
|
||||||
REQUIRE(not fs::exists(file));
|
REQUIRE(not fs::exists(file));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("Create Directory") {
|
||||||
|
fs::path dirPath = tmpDir / "test_dir";
|
||||||
|
FilesystemParams params(dirPath.c_str());
|
||||||
|
REQUIRE(hostFs.createDirectory(params) == result::OK);
|
||||||
|
CHECK(fs::is_directory(dirPath));
|
||||||
|
REQUIRE(fs::exists(dirPath));
|
||||||
|
REQUIRE_NOTHROW(fs::remove(dirPath));
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("Remove Directory") {
|
||||||
|
fs::path dirPath = tmpDir / "test_dir";
|
||||||
|
FilesystemParams params(dirPath.c_str());
|
||||||
|
REQUIRE(hostFs.createDirectory(params) == result::OK);
|
||||||
|
REQUIRE(fs::exists(dirPath));
|
||||||
|
REQUIRE(hostFs.removeDirectory(params) == result::OK);
|
||||||
|
REQUIRE(not fs::exists(dirPath));
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("Rename File") {
|
||||||
|
fs::path file = tmpDir / "hello.txt";
|
||||||
|
fs::path newFile = tmpDir / "hello2.txt";
|
||||||
|
FilesystemParams params(file.c_str());
|
||||||
|
REQUIRE(hostFs.createFile(params) == result::OK);
|
||||||
|
CHECK(fs::is_regular_file(file));
|
||||||
|
REQUIRE(fs::exists(file));
|
||||||
|
REQUIRE(hostFs.rename(file.c_str(), newFile.c_str()) == result::OK);
|
||||||
|
REQUIRE_NOTHROW(fs::remove(newFile));
|
||||||
|
}
|
||||||
}
|
}
|
@ -64,7 +64,8 @@ ReturnValue_t FilesystemMock::removeDirectory(FilesystemParams params, bool dele
|
|||||||
return HasReturnvaluesIF::RETURN_OK;
|
return HasReturnvaluesIF::RETURN_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t FilesystemMock::rename(const char *oldPath, char *newPath, FileSystemArgsIF *args) {
|
ReturnValue_t FilesystemMock::rename(const char *oldPath, const char *newPath,
|
||||||
|
FileSystemArgsIF *args) {
|
||||||
renameQueue.push(RenameInfo(oldPath, newPath));
|
renameQueue.push(RenameInfo(oldPath, newPath));
|
||||||
return HasReturnvaluesIF::RETURN_OK;
|
return HasReturnvaluesIF::RETURN_OK;
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ class FilesystemMock : public HasFileSystemIF {
|
|||||||
ReturnValue_t removeFile(const char *path, FileSystemArgsIF *args) override;
|
ReturnValue_t removeFile(const char *path, FileSystemArgsIF *args) override;
|
||||||
ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) override;
|
ReturnValue_t createDirectory(FilesystemParams params, bool createParentDirs) override;
|
||||||
ReturnValue_t removeDirectory(FilesystemParams params, bool deleteRecurively) override;
|
ReturnValue_t removeDirectory(FilesystemParams params, bool deleteRecurively) override;
|
||||||
ReturnValue_t rename(const char *oldPath, char *newPath, FileSystemArgsIF *args) override;
|
ReturnValue_t rename(const char *oldPath, const char *newPath, FileSystemArgsIF *args) override;
|
||||||
|
|
||||||
void reset();
|
void reset();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user