123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #include <stdio.h>
- #include <threads.h>
- #include "../Tests.h"
- #include "../src/ErrorSimulator.h"
- #include "core/ReadLine.h"
- static void sleepMillis(int millis) {
- struct timespec t = {.tv_nsec = millis * 1000000};
- thrd_sleep(&t, nullptr);
- }
- static void testString(int line, const char* s) {
- char buffer[256];
- for(int i = 0; i < 200; i++) {
- if(coreReadLine(buffer, sizeof(buffer))) {
- break;
- }
- sleepMillis(10);
- }
- if(!coreTestString(__FILE__, line, s, buffer)) {
- const char* p = buffer;
- printf("Invalid sequence: ");
- while(*p != 0) {
- printf("%u ", (unsigned int)*p & 0xFF);
- p++;
- }
- putchar('\n');
- p = s;
- printf("Correct sequence: ");
- while(*p != 0) {
- printf("%u ", (unsigned int)*p & 0xFF);
- p++;
- }
- putchar('\n');
- }
- }
- void coreTestReadLine(void) {
- #ifdef ERROR_SIMULATOR
- coreFailMutexInit = true;
- if(!CORE_TEST_TRUE(coreStartReadLine())) {
- return;
- }
- coreFailMutexInit = false;
- coreFailThreadInit = true;
- if(!CORE_TEST_TRUE(coreStartReadLine())) {
- return;
- }
- coreFailThreadInit = false;
- coreFailMutexLock = true;
- coreFailMutexUnlock = true;
- #endif
- if(!CORE_TEST_FALSE(coreStartReadLine())) {
- return;
- }
- testString(__LINE__, "wusi");
- #ifdef ERROR_SIMULATOR
- coreFailMutexLock = false;
- coreFailMutexUnlock = false;
- #endif
- testString(__LINE__, "gusi");
- testString(__LINE__, "abc");
- testString(__LINE__, "abc");
- testString(__LINE__, "abd");
- testString(__LINE__, "abö");
- testString(__LINE__, "ghi");
- testString(__LINE__, "abcghi");
- testString(__LINE__, "abcghi");
- testString(__LINE__, "abö");
- testString(__LINE__, "abac");
- testString(
- __LINE__,
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbb");
- testString(__LINE__, "abäo");
- testString(__LINE__, "bäöo");
- coreStopReadLine();
- }
|