| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- module;
- #include <cstdio>
- #include <source_location>
- #include "../../src/ErrorSimulator.hpp"
- module Tests;
- import Core.Clock;
- import Core.ReadLine;
- import Core.Test;
- static void testStringError(
- const char* s,
- const std::source_location& l = std::source_location::current()) {
- char buffer[256];
- for(int i = 0; i < 200; i++) {
- if(Core::readLine(buffer, sizeof(buffer))) {
- break;
- }
- Core::Clock::sleepMillis(10);
- }
- if(!Core::testString(s, buffer, l)) {
- const char* p = buffer;
- printf("Invalid sequence: ");
- while(*p != 0) {
- printf("%u ", static_cast<unsigned int>(*p & 0xFF));
- p++;
- }
- putchar('\n');
- p = s;
- printf("Correct sequence: ");
- while(*p != 0) {
- printf("%u ", static_cast<unsigned int>(*p & 0xFF));
- p++;
- }
- putchar('\n');
- }
- }
- void testReadLine() {
- #ifdef ERROR_SIMULATOR
- failStepThrow = 1;
- if(!Core::testTrue(Core::startReadLine())) {
- return;
- }
- failStepThrow = 0;
- #endif
- if(!Core::testFalse(Core::startReadLine())) {
- return;
- }
- testStringError("wusi");
- testStringError("gusi");
- testStringError("abc");
- testStringError("abc");
- testStringError("abd");
- testStringError("abö");
- testStringError("ghi");
- testStringError("abcghi");
- testStringError("abcghi");
- testStringError("abö");
- testStringError("abac");
- testStringError(
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbb");
- testStringError("abäo");
- testStringError("bäöo");
- Core::stopReadLine();
- }
|