From 0682f9a222821dc6a83b6cf493f1b832104da8fb Mon Sep 17 00:00:00 2001 From: Bui Nguyen Quoc Thanh Date: Thu, 18 Apr 2019 13:35:58 +0700 Subject: test: Add manual interruption in dlt-test-stress - Add an environment variable to handle interruption of test. - By default, test1 won't wait for manual interruption anymore. Signed-off-by: Bui Nguyen Quoc Thanh --- src/tests/dlt-test-stress.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/tests/dlt-test-stress.c b/src/tests/dlt-test-stress.c index bb986da..c85026b 100644 --- a/src/tests/dlt-test-stress.c +++ b/src/tests/dlt-test-stress.c @@ -99,6 +99,11 @@ void thread_function(void); void stress3(void); +/* + * This environment variable is used when developer wants to interrupt program manually + */ +char *env_manual_interruption = 0; + /** * Print usage information of tool. */ @@ -115,6 +120,8 @@ void usage() printf(" -v Verbose mode\n"); printf(" -f filename Use local log file instead of sending to daemon\n"); printf(" -1 Execute test 1 (register/unregister many contexts)\n"); + printf(" In order to interrupt test manually (e.g: wait for ENTER key),\n"); + printf(" set environment variable DLT_TEST_MANUAL_INTERRUPTION=1\n"); printf(" -2 Execute test 2 (multiple threads logging data)\n"); printf(" -3 Execute test 3 (logging much data)\n"); } @@ -150,6 +157,7 @@ int main(int argc, char *argv[]) case '1': { test[0] = 1; + env_manual_interruption = getenv("DLT_TEST_MANUAL_INTERRUPTION"); break; } case '2': @@ -229,7 +237,7 @@ void stress1(void) char ctid[5]; struct timespec ts; - printf("Starting stress test1... (press \"Enter\" to terminate test) \n"); + printf("Starting stress test1...\n"); printf("* Register %d contexts...\n", STRESS1_NUM_CONTEXTS); @@ -246,12 +254,18 @@ void stress1(void) nanosleep(&ts, NULL); } - while (1) { - c = getchar(); - - /* if "Return" is pressed, exit loop; */ - if (c == 10) - break; + if (env_manual_interruption && (strcmp(env_manual_interruption, "1") == 0)) + { + printf("press \"Enter\" to terminate test"); + while (1) + { + c=getchar(); + /* if "Return" is pressed, exit loop; */ + if (c==10) + { + break; + } + } } printf("* Unregister %d contexts...\n", STRESS1_NUM_CONTEXTS); -- cgit v1.2.1