| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- module Tests;
- import Core.Clock;
- import Core.ReadLine;
- import Core.Test;
- import Core.Std;
- import Core.ToString;
- import ErrorSimulator;
- 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;
- Core::print("Invalid sequence: ");
- while(*p != 0) {
- Core::print("{} ", static_cast<unsigned int>(*p & 0xFF));
- p++;
- }
- putchar('\n');
- p = s;
- Core::print("Correct sequence: ");
- while(*p != 0) {
- Core::print("{} ", 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();
- }
|