| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- module;
- #include <cstring>
- #include <source_location>
- #include "../../src/ErrorSimulator.hpp"
- module Tests;
- import Core.File;
- import Core.Logger;
- import Core.Test;
- static int failIndex = 0;
- static const char* fails[] = {
- "cannot read file 'gdfgdfg'",
- "cannot seek file end of 'testData/someFile'",
- "cannot tell file position of 'testData/someFile'",
- "cannot seek file start of 'testData/someFile'",
- "expected to read 20 bytes from 'testData/someFile' but read 20",
- "cannot close file 'testData/someFile'"};
- static void printReport(
- Core::LogLevel l, const std::source_location&, void*, const char* message) {
- Core::test(static_cast<int>(Core::LogLevel::ERROR), static_cast<int>(l));
- if(!Core::testTrue(strstr(message, fails[failIndex]) != nullptr)) {
- Core::logError("'#' does not contain '#'", message, fails[failIndex]);
- }
- }
- static void testExistingFile() {
- Core::List<char> f;
- if(!Core::testFalse(readFile(f, "testData/someFile"))) {
- return;
- }
- Core::test(21lu, f.getLength());
- Core::testString("Just\nSome\nTest File\n", &f[0]);
- }
- static void testNotExistingFile() {
- Core::List<char> f;
- Core::testTrue(readFile(f, "gdfgdfg"));
- }
- static void testFails(int steps) {
- (void)steps;
- #ifdef ERROR_SIMULATOR
- failStep = steps;
- failIndex = steps;
- Core::List<char> f;
- Core::testTrue(readFile(f, "testData/someFile"));
- failStep = -1;
- #endif
- }
- void testFile() {
- Core::setReportHandler(printReport, nullptr);
- testExistingFile();
- testNotExistingFile();
- for(int i = 1; i < 6; i++) {
- testFails(i);
- }
- Core::setReportHandler(nullptr, nullptr);
- }
|