/* * Copyright (C) 2019 Freie Universität Berlin * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level * directory for more details. */ /** * @ingroup sys * @{ * * @file * @brief Interactive Sync implementation * * * @author Gaëtan Harter */ #include #include "test_utils/interactive_sync.h" #if defined(__AVR__) #include /* For small AVR targets the extra strings generated by test interactive can make the application overflow the .data section (RAM), we use puts_P() to write those constant string to .txt section (FLASH)*/ #define PUTS(_s) puts_P(PSTR(_s)) #else #define PUTS(_s) puts(_s) #endif void test_utils_interactive_sync(void) { char c = '\0'; /* Print help on first loop */ do { if (c == 'r') { /* This one should have a different case than the help message * otherwise we match it when using 'expect' */ PUTS("READY"); } else if (c != '\n' && c != '\r') { PUTS("Help: Press s to start test, r to print it is ready"); } c = getchar(); } while (c != 's'); PUTS("START"); }