test: improve logging in unit tests

include API name
unify tests timeout/sigabrt message across OSes

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski 2025-05-14 15:58:57 +00:00 committed by Compute-Runtime-Automation
parent a4bbfb41b4
commit a361ca1e3f
8 changed files with 33 additions and 20 deletions

View File

@ -14,6 +14,10 @@
namespace L0 {
extern std::vector<_ze_driver_handle_t *> *globalDriverHandles;
}
namespace NEO {
const char *apiName = "L0";
}
using namespace NEO;
void cleanTestHelpers() {
delete L0::globalDriverHandles;

View File

@ -51,6 +51,7 @@ namespace NEO {
class OsLibrary;
void __attribute__((destructor)) platformsDestructor();
extern const DeviceDescriptor deviceDescriptorTable[];
const char *apiName = "OCL";
} // namespace NEO
NEO::OsLibrary *setAdapterInfo(const PLATFORM *platform, const GT_SYSTEM_INFO *gtSystemInfo, uint64_t gpuAddressSpace) {

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2021-2024 Intel Corporation
* Copyright (C) 2021-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -11,5 +11,6 @@ unsigned int ultIterationMaxTimeInS = 90;
#else
unsigned int ultIterationMaxTimeInS = 45;
#endif
const char *executionName = "OCLOC";
const char *executionName = "ULT";
const char *apiName = "OCLOC";
} // namespace NEO

View File

@ -12,6 +12,9 @@
#include "opencl/test/unit_test/ult_config_listener.h"
#include "test_files_setup.h"
namespace NEO {
const char *apiName = "OCL";
}
using namespace NEO;
void applyWorkarounds() {

View File

@ -18,7 +18,8 @@
extern std::string lastTest;
namespace NEO {
extern const char *executionName;
}
extern const char *apiName;
} // namespace NEO
class CCustomEventListener : public ::testing::TestEventListener {
public:
@ -114,28 +115,28 @@ class CCustomEventListener : public ::testing::TestEventListener {
if (unitTest.Failed()) {
ultStatus = "FAILED";
}
auto executionNameLen = strlen(NEO::executionName);
auto targetNameLen = strlen(NEO::apiName) + 1 + strlen(NEO::executionName);
if (hardwarePrefix != "---") {
paddingS = std::string(hardwarePrefix.length() + executionNameLen, ' ');
paddingE = std::string(hardwarePrefix.length() + executionNameLen, '=');
paddingS = std::string(hardwarePrefix.length() + targetNameLen, ' ');
paddingE = std::string(hardwarePrefix.length() + targetNameLen, '=');
fprintf(
stdout,
"\n"
"%s==================\n"
"== %s %ss %s ==\n"
"== %s %s %ss %s ==\n"
"%s==================\n",
paddingE.c_str(), hardwarePrefix.c_str(), NEO::executionName, ultStatus.c_str(), paddingE.c_str());
paddingE.c_str(), hardwarePrefix.c_str(), NEO::apiName, NEO::executionName, ultStatus.c_str(), paddingE.c_str());
} else {
paddingE = std::string(executionNameLen, '=');
paddingE = std::string(targetNameLen, '=');
fprintf(
stdout,
"\n"
"%s==================\n"
"== %ss %s ==\n"
"== %s %ss %s ==\n"
"%s==================\n",
paddingE.c_str(), NEO::executionName, ultStatus.c_str(), paddingE.c_str());
paddingE.c_str(), NEO::apiName, NEO::executionName, ultStatus.c_str(), paddingE.c_str());
}
fprintf(

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2022-2024 Intel Corporation
* Copyright (C) 2022-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -17,6 +17,7 @@ std::string lastTest("");
namespace NEO {
extern const unsigned int ultIterationMaxTimeInS;
extern const char *executionName;
extern const char *apiName;
} // namespace NEO
int newStdOut = -1;
@ -26,7 +27,7 @@ void handleSIGABRT(int signal) {
if (newStdOut != -1) {
dup2(newStdOut, 1);
}
std::cout << "SIGABRT in " << NEO::executionName << ", on: " << lastTest << std::endl;
std::cout << "SIGABRT in " << NEO::apiName << " " << NEO::executionName << ", on: " << lastTest << std::endl;
if (sigaction(SIGABRT, &oldSigAbrt, nullptr) == -1) {
std::cout << "FATAL: cannot fatal SIGABRT handler" << std::endl;
std::cout << "FATAL: try SEGV" << std::endl;
@ -44,7 +45,7 @@ void handleSIGALRM(int signal) {
if (newStdOut != -1) {
dup2(newStdOut, 1);
}
std::cout << "Tests timeout in " << NEO::executionName << ", ";
std::cout << "Tests timeout in " << NEO::apiName << " " << NEO::executionName << ",";
if (clock_gettime(CLOCK_MONOTONIC_RAW, &alrmTimeSpec) == 0) {
auto deltaSec = alrmTimeSpec.tv_sec - startTimeSpec.tv_sec;
std::cout << " after: " << deltaSec << " seconds";
@ -57,7 +58,7 @@ void handleSIGSEGV(int signal) {
if (newStdOut != -1) {
dup2(newStdOut, 1);
}
std::cout << "SIGSEGV in " << NEO::executionName << ", on: " << lastTest << std::endl;
std::cout << "SIGSEGV in " << NEO::apiName << " " << NEO::executionName << ", on: " << lastTest << std::endl;
abort();
}

View File

@ -21,6 +21,7 @@ std::string lastTest("");
static int newStdOut = -1;
namespace NEO {
extern const char *apiName;
extern const char *executionName;
extern unsigned int ultIterationMaxTimeInS;
} // namespace NEO
@ -39,7 +40,7 @@ void handleSIGABRT(int sigNo) {
if (newStdOut != -1) {
_dup2(newStdOut, 1);
}
std::cout << "SIGABRT on: " << lastTest << std::endl;
std::cout << "SIGABRT in " << NEO::apiName << " " << NEO::executionName << ", on: " << lastTest << std::endl;
signal(SIGABRT, oldSigAbrt);
raise(sigNo);
}
@ -92,20 +93,20 @@ int setAlarm(bool enableAlarm) {
std::cout << "set timeout to: " << alarmTimeInS << " seconds" << std::endl;
threadStarted = true;
std::chrono::high_resolution_clock::time_point startTime, endTime;
std::chrono::milliseconds elapsedTime{};
std::chrono::milliseconds elapsedTimeInMs{};
startTime = std::chrono::high_resolution_clock::now();
do {
std::this_thread::yield();
std::this_thread::sleep_for(std::chrono::milliseconds(1));
endTime = std::chrono::high_resolution_clock::now();
elapsedTime = std::chrono::duration_cast<std::chrono::milliseconds>(endTime - startTime);
elapsedTimeInMs = std::chrono::duration_cast<std::chrono::milliseconds>(endTime - startTime);
if (!abortOnTimeout) {
return;
}
} while (abortOnTimeout && elapsedTime.count() < alarmTimeInS * 1000);
} while (abortOnTimeout && elapsedTimeInMs.count() < alarmTimeInS * 1000);
if (abortOnTimeout) {
printf("timeout on: %s\n", lastTest.c_str());
printf("Tests timeout in %s %s, after %u seconds on %s\n", NEO::apiName, NEO::executionName, static_cast<uint32_t>(elapsedTimeInMs.count() / 1000), lastTest.c_str());
abort();
}
});

View File

@ -38,6 +38,7 @@ void CpuPageFaultManager::allowCPUMemoryEviction(bool evict, void *ptr, PageFaul
void RootDeviceEnvironment::initApiGfxCoreHelper() {
}
const char *apiName = "SHARED";
} // namespace NEO