Skip to content

Commit 7daee00

Browse files
Baj, TomaszCompute-Runtime-Automation
authored andcommitted
Add alarmTime to ULTs
Signed-off-by: Baj, Tomasz <tomasz.baj@intel.com> Related-To: NEO-6413
1 parent 498cf5e commit 7daee00

File tree

14 files changed

+142
-102
lines changed

14 files changed

+142
-102
lines changed

level_zero/core/test/unit_tests/main.cpp

Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2020-2021 Intel Corporation
2+
* Copyright (C) 2020-2022 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -18,6 +18,7 @@
1818
#include "shared/test/common/helpers/test_files.h"
1919
#include "shared/test/common/helpers/ult_hw_config.inl"
2020
#include "shared/test/common/libult/global_environment.h"
21+
#include "shared/test/common/libult/signal_utils.h"
2122
#include "shared/test/common/mocks/mock_gmm_client_context.h"
2223
#include "shared/test/common/mocks/mock_sip.h"
2324
#include "shared/test/unit_test/base_ult_config_listener.h"
@@ -64,7 +65,6 @@ extern const HardwareInfo *hardwareInfoTable[IGFX_MAX_PRODUCT];
6465
extern bool useMockGmm;
6566
extern TestMode testMode;
6667
extern const char *executionDirectorySuffix;
67-
extern const unsigned int ultIterationMaxTime;
6868

6969
namespace MockSipData {
7070
extern std::unique_ptr<MockSipKernel> mockSipKernel;
@@ -141,13 +141,6 @@ void applyWorkarounds() {
141141
}
142142
}
143143

144-
#ifdef __linux__
145-
void handle_SIGALRM(int signal) {
146-
std::cout << "Tests timeout on: " << lastTest << std::endl;
147-
abort();
148-
}
149-
#endif
150-
151144
bool checkAubTestsExecutionPathValidity() {
152145
bool valid = true;
153146
if ((testMode == TestMode::AubTests || testMode == TestMode::AubTestsWithTbx)) {
@@ -390,31 +383,9 @@ int main(int argc, char **argv) {
390383

391384
environment->setDefaultDebugVars(fclDebugVars, igcDebugVars, hwInfoForTests);
392385

393-
#if defined(__linux__)
394-
std::cout << "enable SIGALRM handler: " << enableAlarm << std::endl;
395-
396-
//ULTs timeout
397-
if (enableAlarm) {
398-
auto currentUltIterationMaxTime = NEO::ultIterationMaxTime;
399-
auto ultIterationMaxTimeEnv = getenv("NEO_ULT_ITERATION_MAX_TIME");
400-
if (ultIterationMaxTimeEnv != nullptr) {
401-
currentUltIterationMaxTime = atoi(ultIterationMaxTimeEnv);
402-
}
403-
unsigned int alarmTime = currentUltIterationMaxTime * ::testing::GTEST_FLAG(repeat);
404-
405-
struct sigaction sa;
406-
sa.sa_handler = &handle_SIGALRM;
407-
sa.sa_flags = SA_RESTART;
408-
sigfillset(&sa.sa_mask);
409-
if (sigaction(SIGALRM, &sa, NULL) == -1) {
410-
printf("FATAL ERROR: cannot intercept SIGALRM\n");
411-
return -2;
412-
}
413-
alarm(alarmTime);
414-
std::cout << "set timeout to: " << alarmTime << std::endl;
415-
}
416-
417-
#endif
386+
int sigOut = setAlarm(enableAlarm);
387+
if (sigOut != 0)
388+
return sigOut;
418389

419390
auto retVal = RUN_ALL_TESTS();
420391

opencl/test/unit_test/linux/main_linux_dll.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "shared/test/common/helpers/default_hw_info.inl"
2020
#include "shared/test/common/helpers/ult_hw_config.inl"
2121
#include "shared/test/common/helpers/variable_backup.h"
22+
#include "shared/test/common/libult/signal_utils.h"
2223
#include "shared/test/common/mocks/mock_execution_environment.h"
2324
#include "shared/test/common/os_interface/linux/device_command_stream_fixture.h"
2425
#include "shared/test/common/test_macros/test.h"
@@ -781,6 +782,7 @@ TEST(SysCalls, WhenSysCallsFstatCalledThenCallIsRedirectedToOs) {
781782

782783
int main(int argc, char **argv) {
783784
bool useDefaultListener = false;
785+
bool enableAlarm = true;
784786

785787
::testing::InitGoogleTest(&argc, argv);
786788

@@ -790,6 +792,8 @@ int main(int argc, char **argv) {
790792
useDefaultListener = false;
791793
} else if (!strcmp("--enable_default_listener", argv[i])) {
792794
useDefaultListener = true;
795+
} else if (!strcmp("--disable_alarm", argv[i])) {
796+
enableAlarm = false;
793797
}
794798
}
795799

@@ -808,6 +812,11 @@ int main(int argc, char **argv) {
808812
initializeTestedDevice();
809813

810814
Os::dxcoreDllName = "";
815+
816+
int sigOut = setAlarm(enableAlarm);
817+
if (sigOut != 0)
818+
return sigOut;
819+
811820
auto retVal = RUN_ALL_TESTS();
812821

813822
return retVal;

opencl/test/unit_test/main.cpp

Lines changed: 9 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2018-2021 Intel Corporation
2+
* Copyright (C) 2018-2022 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -18,6 +18,7 @@
1818
#include "shared/test/common/helpers/test_files.h"
1919
#include "shared/test/common/helpers/ult_hw_config.inl"
2020
#include "shared/test/common/libult/global_environment.h"
21+
#include "shared/test/common/libult/signal_utils.h"
2122
#include "shared/test/common/mocks/mock_gmm.h"
2223
#include "shared/test/common/mocks/mock_gmm_client_context.h"
2324
#include "shared/test/common/mocks/mock_sip.h"
@@ -50,7 +51,6 @@ extern const char *hardwarePrefix[];
5051
extern const HardwareInfo *hardwareInfoTable[IGFX_MAX_PRODUCT];
5152
extern const char *executionName;
5253

53-
extern const unsigned int ultIterationMaxTime;
5454
extern bool useMockGmm;
5555
extern TestMode testMode;
5656
extern const char *executionDirectorySuffix;
@@ -118,10 +118,6 @@ void applyWorkarounds() {
118118
}
119119
}
120120
#ifdef __linux__
121-
void handle_SIGALRM(int signal) {
122-
std::cout << "Tests timeout on: " << lastTest << std::endl;
123-
abort();
124-
}
125121
void handle_SIGSEGV(int signal) {
126122
std::cout << "SIGSEGV on: " << lastTest << std::endl;
127123
abort();
@@ -193,7 +189,7 @@ std::string getRunPath(char *argv0) {
193189
int main(int argc, char **argv) {
194190
int retVal = 0;
195191
bool useDefaultListener = false;
196-
bool enable_alarm = true;
192+
bool enableAlarm = true;
197193
bool enable_abrt = true;
198194
bool setupFeatureTableAndWorkaroundTable = testMode == TestMode::AubTests ? true : false;
199195
bool showTestStats = false;
@@ -223,7 +219,7 @@ int main(int argc, char **argv) {
223219
std::string envVar = std::string("NEO_") + executionName + "_DISABLE_TEST_ALARM";
224220
char *envValue = getenv(envVar.c_str());
225221
if (envValue != nullptr) {
226-
enable_alarm = false;
222+
enableAlarm = false;
227223
}
228224
}
229225

@@ -242,7 +238,7 @@ int main(int argc, char **argv) {
242238
} else if (!strcmp("--enable_default_listener", argv[i])) {
243239
useDefaultListener = true;
244240
} else if (!strcmp("--disable_alarm", argv[i])) {
245-
enable_alarm = false;
241+
enableAlarm = false;
246242
} else if (!strcmp("--show_test_stats", argv[i])) {
247243
showTestStats = true;
248244
} else if (!strcmp("--disable_pagefaulting_tests", argv[i])) { //disable tests which raise page fault signal during execution
@@ -433,32 +429,14 @@ int main(int argc, char **argv) {
433429
gEnvironment->setMockFileNames(fclDebugVars.fileName, igcDebugVars.fileName);
434430
gEnvironment->setDefaultDebugVars(fclDebugVars, igcDebugVars, hwInfoForTests);
435431

432+
int sigOut = setAlarm(enableAlarm);
433+
if (sigOut != 0)
434+
return sigOut;
435+
436436
#if defined(__linux__)
437-
std::cout << "enable SIGALRM handler: " << enable_alarm << std::endl;
438437
std::cout << "enable SIGSEGV handler: " << enable_segv << std::endl;
439438
std::cout << "enable SIGABRT handler: " << enable_abrt << std::endl;
440439

441-
//ULTs timeout
442-
if (enable_alarm) {
443-
auto currentUltIterationMaxTime = NEO::ultIterationMaxTime;
444-
auto ultIterationMaxTimeEnv = getenv("NEO_ULT_ITERATION_MAX_TIME");
445-
if (ultIterationMaxTimeEnv != nullptr) {
446-
currentUltIterationMaxTime = atoi(ultIterationMaxTimeEnv);
447-
}
448-
unsigned int alarmTime = currentUltIterationMaxTime * ::testing::GTEST_FLAG(repeat);
449-
450-
struct sigaction sa;
451-
sa.sa_handler = &handle_SIGALRM;
452-
sa.sa_flags = SA_RESTART;
453-
sigfillset(&sa.sa_mask);
454-
if (sigaction(SIGALRM, &sa, NULL) == -1) {
455-
printf("FATAL ERROR: cannot intercept SIGALRM\n");
456-
return -2;
457-
}
458-
alarm(alarmTime);
459-
std::cout << "set timeout to: " << alarmTime << std::endl;
460-
}
461-
462440
if (enable_segv) {
463441
struct sigaction sa;
464442
sa.sa_handler = &handle_SIGSEGV;

opencl/test/unit_test/offline_compiler/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ set(IGDRCL_SRCS_offline_compiler_tests
7070
${NEO_SHARED_TEST_DIRECTORY}/common/mocks/mock_compilers.h
7171
${NEO_SHARED_TEST_DIRECTORY}/unit_test/device_binary_format/zebin_tests.h
7272
${NEO_SHARED_TEST_DIRECTORY}/common/helpers/test_files.cpp
73+
${NEO_SHARED_TEST_DIRECTORY}/common/libult/signal_utils.h
7374
${NEO_SHARED_TEST_DIRECTORY}/common/test_macros/test_excludes.cpp
7475
${IGDRCL_SRCS_cloc}
7576
${IGDRCL_SRCS_offline_compiler_mock}
@@ -81,11 +82,13 @@ set(IGDRCL_SRCS_offline_compiler_tests
8182
if(WIN32)
8283
list(APPEND IGDRCL_SRCS_offline_compiler_tests
8384
${NEO_SHARED_DIRECTORY}/os_interface/windows/os_thread_win.cpp
85+
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/signal_utils.cpp
8486
)
8587
else()
8688
list(APPEND IGDRCL_SRCS_offline_compiler_tests
8789
${NEO_SHARED_DIRECTORY}/os_interface/linux/os_thread_linux.cpp
8890
${NEO_SHARED_DIRECTORY}/os_interface/linux/sys_calls_linux.cpp
91+
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/linux/signal_utils.cpp
8992
${OCLOC_DIRECTORY}/source/linux/os_library_ocloc_helper.cpp
9093
)
9194
endif()

opencl/test/unit_test/offline_compiler/main.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2018-2021 Intel Corporation
2+
* Copyright (C) 2018-2022 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -8,6 +8,7 @@
88
#include "shared/source/os_interface/os_library.h"
99
#include "shared/test/common/helpers/custom_event_listener.h"
1010
#include "shared/test/common/helpers/test_files.h"
11+
#include "shared/test/common/libult/signal_utils.h"
1112
#include "shared/test/unit_test/test_stats.h"
1213

1314
#include "environment.h"
@@ -39,6 +40,7 @@ std::string getRunPath() {
3940
int main(int argc, char **argv) {
4041
int retVal = 0;
4142
bool useDefaultListener = false;
43+
bool enableAlarm = true;
4244
bool showTestStats = false;
4345

4446
std::string devicePrefix("skl");
@@ -71,6 +73,8 @@ int main(int argc, char **argv) {
7173
for (int i = 0; i < argc; i++) {
7274
if (strcmp("--use_default_listener", argv[i]) == 0) {
7375
useDefaultListener = true;
76+
} else if (!strcmp("--disable_alarm", argv[i])) {
77+
enableAlarm = false;
7478
} else if (strcmp("--device", argv[i]) == 0) {
7579
++i;
7680
devicePrefix = argv[i];
@@ -138,6 +142,10 @@ int main(int argc, char **argv) {
138142

139143
gEnvironment = reinterpret_cast<Environment *>(::testing::AddGlobalTestEnvironment(new Environment(devicePrefix, familyNameWithType)));
140144

145+
int sigOut = setAlarm(enableAlarm);
146+
if (sigOut != 0)
147+
return sigOut;
148+
141149
retVal = RUN_ALL_TESTS();
142150

143151
return retVal;
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
/*
2-
* Copyright (C) 2021 Intel Corporation
2+
* Copyright (C) 2021-2022 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
66
*/
77

88
namespace NEO {
9+
unsigned int ultIterationMaxTime = 45;
910
const char *executionName = "OCLOC";
1011
} // namespace NEO

opencl/test/unit_test/offline_compiler/segfault_test/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (C) 2018-2021 Intel Corporation
2+
# Copyright (C) 2018-2022 Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
#
@@ -10,14 +10,17 @@ set(CLOC_SEGFAULT_TEST_SOURCES
1010
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
1111
${NEO_SHARED_DIRECTORY}/helpers/abort.cpp
1212
${NEO_SHARED_DIRECTORY}/os_interface/os_library.h
13+
${NEO_SHARED_TEST_DIRECTORY}/common/libult/signal_utils.h
1314
${NEO_SHARED_TEST_DIRECTORY}/unit_test/helpers/debug_helpers.cpp
15+
${NEO_SOURCE_DIR}/opencl/test/unit_test/offline_compiler/ocloc_tests_configuration.cpp
1416
)
1517

1618
if(WIN32)
1719
list(APPEND CLOC_SEGFAULT_TEST_SOURCES
1820
${CMAKE_CURRENT_SOURCE_DIR}/windows/safety_guard_caller_windows.cpp
1921
${NEO_SHARED_DIRECTORY}/os_interface/windows/os_library_win.cpp
2022
${NEO_SHARED_DIRECTORY}/os_interface/windows/os_library_win.h
23+
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/signal_utils.cpp
2124
${OCLOC_DIRECTORY}/source/utilities/windows/safety_guard_windows.h
2225
${OCLOC_DIRECTORY}/source/utilities/windows/seh_exception.cpp
2326
${OCLOC_DIRECTORY}/source/utilities/windows/seh_exception.h
@@ -28,6 +31,7 @@ else()
2831
${NEO_SHARED_DIRECTORY}/os_interface/linux/os_library_linux.cpp
2932
${NEO_SHARED_DIRECTORY}/os_interface/linux/os_library_linux.h
3033
${NEO_SHARED_DIRECTORY}/os_interface/linux/sys_calls_linux.cpp
34+
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/linux/signal_utils.cpp
3135
${OCLOC_DIRECTORY}/source/linux/os_library_ocloc_helper.cpp
3236
)
3337
endif()

opencl/test/unit_test/offline_compiler/segfault_test/main.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
/*
2-
* Copyright (C) 2018-2020 Intel Corporation
2+
* Copyright (C) 2018-2022 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
66
*/
77

8+
#include "shared/test/common/libult/signal_utils.h"
9+
810
#include "gmock/gmock.h"
911
#include "gtest/gtest.h"
1012
#include "segfault_helper.h"
@@ -15,7 +17,18 @@ extern void generateSegfaultWithSafetyGuard(SegfaultHelper *segfaultHelper);
1517

1618
int main(int argc, char **argv) {
1719
int retVal = 0;
20+
bool enableAlarm = true;
21+
1822
::testing::InitGoogleTest(&argc, argv);
23+
for (int i = 1; i < argc; ++i) {
24+
if (!strcmp("--disable_alarm", argv[i])) {
25+
enableAlarm = false;
26+
}
27+
}
28+
29+
int sigOut = setAlarm(enableAlarm);
30+
if (sigOut != 0)
31+
return sigOut;
1932

2033
retVal = RUN_ALL_TESTS();
2134

shared/test/common/helpers/custom_event_listener.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2018-2021 Intel Corporation
2+
* Copyright (C) 2018-2022 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -15,7 +15,7 @@
1515
#include <string>
1616
#include <vector>
1717

18-
std::string lastTest("");
18+
extern std::string lastTest;
1919
namespace NEO {
2020
extern const char *executionName;
2121
}

shared/test/common/libult/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ set(neo_libult_common_SRCS_LIB_ULT
9999
${NEO_SHARED_TEST_DIRECTORY}/common/libult/source_level_debugger_library.cpp
100100
${NEO_SHARED_TEST_DIRECTORY}/common/libult/source_level_debugger_library.h
101101
${NEO_SHARED_TEST_DIRECTORY}/common/libult/source_level_debugger_ult.cpp
102+
${NEO_SHARED_TEST_DIRECTORY}/common/libult/signal_utils.h
102103
${NEO_SHARED_TEST_DIRECTORY}/common/libult/ult_aub_command_stream_receiver.h
103104
${NEO_SHARED_TEST_DIRECTORY}/common/libult/ult_command_stream_receiver.h
104105
${NEO_SHARED_TEST_DIRECTORY}/common/mocks/mock_memory_manager.cpp
@@ -139,6 +140,7 @@ set(neo_libult_common_SRCS_LIB_ULT_WIN
139140
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/ult_dxcore_factory.h
140141
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/ult_dxgi_factory.cpp
141142
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/ult_dxgi_factory.h
143+
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/signal_utils.cpp
142144
)
143145
set_property(GLOBAL PROPERTY neo_libult_common_SRCS_LIB_ULT_WIN ${neo_libult_common_SRCS_LIB_ULT_WIN})
144146

@@ -147,6 +149,7 @@ set(neo_libult_common_SRCS_LIB_ULT_LINUX
147149
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/linux/device_command_stream_fixture.cpp
148150
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/linux/device_command_stream_fixture.h
149151
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/linux/drm_buffer_object_fixture.h
152+
${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/linux/signal_utils.cpp
150153
)
151154
set_property(GLOBAL PROPERTY neo_libult_common_SRCS_LIB_ULT_LINUX ${neo_libult_common_SRCS_LIB_ULT_LINUX})
152155

0 commit comments

Comments
 (0)