123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #include <cstdio>
- #include "../Tests.hpp"
- #include "../src/ErrorSimulator.hpp"
- #include "core/Clock.hpp"
- #include "core/ReadLine.hpp"
- #include "core/Test.hpp"
- static void testStringError(int line, const char* s) {
- char buffer[256];
- for(int i = 0; i < 200; i++) {
- if(Core::readLine(buffer, sizeof(buffer))) {
- break;
- }
- Core::Clock::sleepMillis(10);
- }
- if(!Core::testString(__FILE__, line, s, buffer)) {
- 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(!TEST_TRUE(Core::startReadLine())) {
- return;
- }
- failStepThrow = 0;
- #endif
- if(!TEST_FALSE(Core::startReadLine())) {
- return;
- }
- testStringError(__LINE__, "wusi");
- testStringError(__LINE__, "gusi");
- testStringError(__LINE__, "abc");
- testStringError(__LINE__, "abc");
- testStringError(__LINE__, "abd");
- testStringError(__LINE__, "abö");
- testStringError(__LINE__, "ghi");
- testStringError(__LINE__, "abcghi");
- testStringError(__LINE__, "abcghi");
- testStringError(__LINE__, "abö");
- testStringError(__LINE__, "abac");
- testStringError(
- __LINE__,
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbb");
- testStringError(__LINE__, "abäo");
- testStringError(__LINE__, "bäöo");
- Core::stopReadLine();
- }
|