From c3d884e548a070da2f1d041485d0ca40b368ad6d Mon Sep 17 00:00:00 2001 From: Artur Harasimiuk Date: Tue, 27 Feb 2024 18:35:51 +0000 Subject: [PATCH] test: improve test timeout configuration Allow custom values for different test types, i.e. ULT, AUB, etc. can have custom timeout by using e.g.: NEO_{ULT,AUB,...}_ITERATION_MAX_TIME. Old behavior with reading NEO_ULT_ITERATION_MAX_TIME for each test type is preserved but new envirnoment variable has precedence. Signed-off-by: Artur Harasimiuk --- .../test/common/os_interface/linux/signal_utils.cpp | 8 +++++++- .../test/common/os_interface/windows/signal_utils.cpp | 11 +++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/shared/test/common/os_interface/linux/signal_utils.cpp b/shared/test/common/os_interface/linux/signal_utils.cpp index a50f0a5a75..05ba3d3017 100644 --- a/shared/test/common/os_interface/linux/signal_utils.cpp +++ b/shared/test/common/os_interface/linux/signal_utils.cpp @@ -93,9 +93,15 @@ int setAlarm(bool enableAlarm) { } auto currentUltIterationMaxTimeInS = NEO::ultIterationMaxTimeInS; - auto ultIterationMaxTimeInSEnv = getenv("NEO_ULT_ITERATION_MAX_TIME"); + std::string envVar = std::string("NEO_") + NEO::executionName + "_ITERATION_MAX_TIME"; + auto ultIterationMaxTimeInSEnv = getenv(envVar.c_str()); if (ultIterationMaxTimeInSEnv != nullptr) { currentUltIterationMaxTimeInS = atoi(ultIterationMaxTimeInSEnv); + } else { + ultIterationMaxTimeInSEnv = getenv("NEO_ULT_ITERATION_MAX_TIME"); + if (ultIterationMaxTimeInSEnv != nullptr) { + currentUltIterationMaxTimeInS = atoi(ultIterationMaxTimeInSEnv); + } } unsigned int alarmTime = currentUltIterationMaxTimeInS * ::testing::GTEST_FLAG(repeat); diff --git a/shared/test/common/os_interface/windows/signal_utils.cpp b/shared/test/common/os_interface/windows/signal_utils.cpp index 2923749205..d5a9e5de5d 100644 --- a/shared/test/common/os_interface/windows/signal_utils.cpp +++ b/shared/test/common/os_interface/windows/signal_utils.cpp @@ -76,9 +76,16 @@ int setAlarm(bool enableAlarm) { std::atomic threadStarted{false}; alarmThread = std::make_unique([&]() { auto currentUltIterationMaxTimeInS = NEO::ultIterationMaxTimeInS; - auto ultIterationMaxTimeInSEnv = getenv("NEO_ULT_ITERATION_MAX_TIME"); + + std::string envVar = std::string("NEO_") + NEO::executionName + "_ITERATION_MAX_TIME"; + auto ultIterationMaxTimeInSEnv = getenv(envVar.c_str()); if (ultIterationMaxTimeInSEnv != nullptr) { currentUltIterationMaxTimeInS = atoi(ultIterationMaxTimeInSEnv); + } else { + ultIterationMaxTimeInSEnv = getenv("NEO_ULT_ITERATION_MAX_TIME"); + if (ultIterationMaxTimeInSEnv != nullptr) { + currentUltIterationMaxTimeInS = atoi(ultIterationMaxTimeInSEnv); + } } unsigned int alarmTimeInS = currentUltIterationMaxTimeInS * ::testing::GTEST_FLAG(repeat); std::cout << "set timeout to: " << alarmTimeInS << " seconds" << std::endl; @@ -121,4 +128,4 @@ void cleanupSignals() { alarmThread->join(); alarmThread.reset(); } -} \ No newline at end of file +}