From ee943142766fa6c3af53e44700c416e8cbbdf665 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Mon, 26 Mar 2018 12:00:27 +0900 Subject: [PATCH] utests: fix getchar issue Change-Id: I1e217b2594be0b46564626d8fe103a49fb3f6349 --- utests/src/ut_tdm.h | 57 +++++++++++------------------------ utests/src/ut_tdm_backend_display.cpp | 17 +++++++++++ 2 files changed, 34 insertions(+), 40 deletions(-) diff --git a/utests/src/ut_tdm.h b/utests/src/ut_tdm.h index 4f899e1..63662e1 100644 --- a/utests/src/ut_tdm.h +++ b/utests/src/ut_tdm.h @@ -105,46 +105,6 @@ extern bool enable_porting_debug; } \ } while(0) -#define TDM_UT_ASK_YNR(fmt, ...) \ - do { \ - if (enable_porting_debug) { \ - char ch; \ - printf(fmt" [Y]es, [n]o, [r]etry: ", ##__VA_ARGS__); \ - do { \ - ch = getchar(); \ - if (ch == '\n') \ - ch = 'y'; \ - else { \ - char tch; \ - while ((tch = getchar()) != '\n' && tch != EOF); \ - } \ - } while (ch != 'y' && ch != 'Y' && ch != 'n' && ch != 'N' && ch != 'r' && ch != 'R'); \ - if (ch == 'n' || ch == 'N') \ - GTEST_FATAL_FAILURE_("tc failed"); \ - if (ch == 'r' || ch == 'R') \ - goto retry; \ - } \ - } while (0) - -#define TDM_UT_ASK_YN(fmt, ...) \ - do { \ - if (enable_porting_debug) { \ - char ch; \ - printf(fmt" [Y]es, [n]o: ", ##__VA_ARGS__); \ - do { \ - ch = getchar(); \ - if (ch == '\n') \ - ch = 'y'; \ - else { \ - char tch; \ - while ((tch = getchar()) != '\n' && tch != EOF); \ - } \ - } while (ch != 'y' && ch != 'Y' && ch != 'n' && ch != 'N'); \ - if (ch == 'n' || ch == 'N') \ - GTEST_FATAL_FAILURE_("tc failed"); \ - } \ - } while (0) - #define TDM_UT_SIZE_ALIGN(value, base) (((value) + ((base) - 1)) & ~((base) - 1)) #define TDM_UT_DUMP_DIR "/tmp/tdm_dump" @@ -278,4 +238,21 @@ public: void TearDown(void) { TDMBackendBasic::TearDown(); } }; +char ut_tdm_backend_getchar(void); + +#define TDM_UT_ASK_YNR(fmt, ...) \ + do { \ + if (enable_porting_debug) { \ + char ch; \ + do { \ + printf(fmt" [Y]es, [n]o, [r]etry): ", ##__VA_ARGS__); \ + ch = ut_tdm_backend_getchar(); \ + } while(ch != 'y' && ch != 'n' && ch != 'r'); \ + if (ch == 'n') \ + GTEST_FATAL_FAILURE_("tc failed"); \ + if (ch == 'r') \ + goto retry; \ + } \ + } while (0) + #endif // _UT_TDM_H_ diff --git a/utests/src/ut_tdm_backend_display.cpp b/utests/src/ut_tdm_backend_display.cpp index 69d7022..58127a8 100644 --- a/utests/src/ut_tdm_backend_display.cpp +++ b/utests/src/ut_tdm_backend_display.cpp @@ -122,6 +122,23 @@ void TDMBackendBasic::DestroyBuffers(void) } } +char +ut_tdm_backend_getchar(void) +{ + int c = getchar(); + int ch = c; + + if (ch == '\n' || ch == '\r') + ch = 'y'; + else if (ch < 'a') + ch += ('a' - 'A'); + + while (c != '\n' && c != EOF) + c = getchar(); + + return ch; +} + TEST_P(TDMBackendBasic, VerifyOutputObject) { tdm_error ret; -- 2.7.4