diff options
author | Spartan322 <Megacake1234@gmail.com> | 2024-08-04 01:25:12 +0200 |
---|---|---|
committer | Spartan322 <Megacake1234@gmail.com> | 2024-08-04 01:58:53 +0200 |
commit | df819d120610b7d3737f8b8e2ad03b7e88fb924c (patch) | |
tree | 210f992e56a32a832bc775a5b2c73f032bb3aca0 /tests/src/csv | |
parent | 2addc7763556ff76809f14e2063d1452aa9d6275 (diff) |
Add error kind and error message checks to empty testsfixup/errors
Add conditional logging for valid path in errors
Remove error ending newlines
Diffstat (limited to 'tests/src/csv')
-rw-r--r-- | tests/src/csv/Parser.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/tests/src/csv/Parser.cpp b/tests/src/csv/Parser.cpp index 88a1474..e800f3c 100644 --- a/tests/src/csv/Parser.cpp +++ b/tests/src/csv/Parser.cpp @@ -2,6 +2,7 @@ #include <fstream> #include <string_view> +#include <openvic-dataloader/Error.hpp> #include <openvic-dataloader/csv/LineObject.hpp> #include <openvic-dataloader/csv/Parser.hpp> @@ -161,19 +162,46 @@ TEST_CASE("CSV File (HasCstr) Handle String Parse", "[csv-file-parse][handle-str } TEST_CASE("CSV File (const char*) Handle Empty Path String Parse", "[csv-file-parse][handle-string][char-ptr][empty-path]") { + static constexpr auto error_fmt = +#ifdef __APPLE__ + "error: OS file error for '{}'."; +#elif defined(_WIN32) + "error: OS file error for '{}'."; +#else + "error: File '{}' not found."; +#endif + std::error_code fs_err; + const auto fs_path = std::filesystem::weakly_canonical("", fs_err); + Parser parser(ovdl::detail::cnull); parser.load_from_file(""); CHECK_OR_RETURN(!parser.get_errors().empty()); + + auto error = parser.get_errors().front(); + CHECK_OR_RETURN(error != nullptr); + + CHECK_OR_RETURN(error->kind() == ovdl::error::ErrorKind::BufferError); + CHECK_OR_RETURN(parser.error(error) == fmt::format(error_fmt, fs_path.string())); } TEST_CASE("CSV File (const char*) Handle Non-existent Path String Parse", "[csv-file-parse][handle-string][char-ptr][nonexistent-path]") { + static constexpr auto path = "./Idontexist"; + std::error_code fs_err; + const auto fs_path = std::filesystem::weakly_canonical(path, fs_err); + Parser parser(ovdl::detail::cnull); - parser.load_from_file("./Idontexist"); + parser.load_from_file(path); CHECK_OR_RETURN(!parser.get_errors().empty()); + + auto error = parser.get_errors().front(); + CHECK_OR_RETURN(error != nullptr); + + CHECK_OR_RETURN(error->kind() == ovdl::error::ErrorKind::BufferError); + CHECK_OR_RETURN(parser.error(error) == fmt::format("error: File '{}' not found.", fs_path.string())); } TEST_CASE("CSV Parse", "[csv-parse]") { |