mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-10 12:53:42 +08:00
Add -cl-kernel-debug-enable internal option when -g is passed to ocloclib
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
48d40ad850
commit
f30fb9126a
14
opencl/test/unit_test/offline_compiler/gen8/CMakeLists.txt
Normal file
14
opencl/test/unit_test/offline_compiler/gen8/CMakeLists.txt
Normal file
@ -0,0 +1,14 @@
|
||||
#
|
||||
# Copyright (C) 2021 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
||||
if(TESTS_GEN8)
|
||||
set(IGDRCL_SRCS_offline_compiler_tests_gen8
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/offline_compiler_tests_gen8.cpp
|
||||
)
|
||||
target_sources(ocloc_tests PRIVATE ${IGDRCL_SRCS_offline_compiler_tests_gen8})
|
||||
add_subdirectories()
|
||||
endif()
|
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "opencl/test/unit_test/offline_compiler/mock/mock_offline_compiler.h"
|
||||
#include "opencl/test/unit_test/offline_compiler/offline_compiler_tests.h"
|
||||
|
||||
#include "gmock/gmock.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
TEST_F(OfflineCompilerTests, givenDebugOptionWhenPlatformIsBelowGen9ThenInternalOptionShouldNotContainKernelDebugEnable) {
|
||||
std::vector<std::string> argv = {
|
||||
"ocloc",
|
||||
"-options",
|
||||
"-g",
|
||||
"-file",
|
||||
"test_files/copybuffer.cl",
|
||||
"-device",
|
||||
"bdw"};
|
||||
|
||||
auto mockOfflineCompiler = std::unique_ptr<MockOfflineCompiler>(new MockOfflineCompiler());
|
||||
ASSERT_NE(nullptr, mockOfflineCompiler);
|
||||
mockOfflineCompiler->initialize(argv.size(), argv);
|
||||
|
||||
std::string internalOptions = mockOfflineCompiler->internalOptions;
|
||||
|
||||
EXPECT_THAT(internalOptions, Not(::testing::HasSubstr("-cl-kernel-debug-enable")));
|
||||
}
|
||||
} // namespace NEO
|
@ -31,6 +31,29 @@ extern Environment *gEnvironment;
|
||||
|
||||
namespace NEO {
|
||||
|
||||
void MultiCommandTests::createFileWithArgs(const std::vector<std::string> &singleArgs, int numOfBuild) {
|
||||
std::ofstream myfile(nameOfFileWithArgs);
|
||||
if (myfile.is_open()) {
|
||||
for (int i = 0; i < numOfBuild; i++) {
|
||||
for (auto singleArg : singleArgs)
|
||||
myfile << singleArg + " ";
|
||||
myfile << std::endl;
|
||||
}
|
||||
myfile.close();
|
||||
} else
|
||||
printf("Unable to open file\n");
|
||||
}
|
||||
|
||||
void MultiCommandTests::deleteFileWithArgs() {
|
||||
if (remove(nameOfFileWithArgs.c_str()) != 0)
|
||||
perror("Error deleting file");
|
||||
}
|
||||
|
||||
void MultiCommandTests::deleteOutFileList() {
|
||||
if (remove(outFileList.c_str()) != 0)
|
||||
perror("Error deleting file");
|
||||
}
|
||||
|
||||
std::string getCompilerOutputFileName(const std::string &fileName, const std::string &type) {
|
||||
std::string fName(fileName);
|
||||
fName.append("_");
|
||||
@ -295,6 +318,28 @@ TEST_F(OfflineCompilerTests, givenIncorrectDeviceIdWithIncorrectHexPatternThenIn
|
||||
EXPECT_EQ(CL_INVALID_DEVICE, retVal);
|
||||
}
|
||||
|
||||
TEST_F(OfflineCompilerTests, givenDebugOptionThenInternalOptionShouldContainKernelDebugEnable) {
|
||||
if (gEnvironment->devicePrefix == "bdw") {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
std::vector<std::string> argv = {
|
||||
"ocloc",
|
||||
"-options",
|
||||
"-g",
|
||||
"-file",
|
||||
"test_files/copybuffer.cl",
|
||||
"-device",
|
||||
gEnvironment->devicePrefix.c_str()};
|
||||
|
||||
auto mockOfflineCompiler = std::unique_ptr<MockOfflineCompiler>(new MockOfflineCompiler());
|
||||
ASSERT_NE(nullptr, mockOfflineCompiler);
|
||||
mockOfflineCompiler->initialize(argv.size(), argv);
|
||||
|
||||
std::string internalOptions = mockOfflineCompiler->internalOptions;
|
||||
EXPECT_THAT(internalOptions, ::testing::HasSubstr("-cl-kernel-debug-enable"));
|
||||
}
|
||||
|
||||
TEST_F(OfflineCompilerTests, givenVariousClStdValuesWhenCompilingSourceThenCorrectExtensionsArePassed) {
|
||||
std::string clStdOptionValues[] = {"", "-cl-std=CL1.2", "-cl-std=CL2.0", "-cl-std=CL3.0"};
|
||||
|
||||
|
@ -34,28 +34,4 @@ class MultiCommandTests : public ::testing::Test {
|
||||
int retVal = OfflineCompiler::ErrorCode::SUCCESS;
|
||||
std::unique_ptr<OclocArgHelper> oclocArgHelperWithoutInput = std::make_unique<OclocArgHelper>();
|
||||
};
|
||||
|
||||
void MultiCommandTests::createFileWithArgs(const std::vector<std::string> &singleArgs, int numOfBuild) {
|
||||
std::ofstream myfile(nameOfFileWithArgs);
|
||||
if (myfile.is_open()) {
|
||||
for (int i = 0; i < numOfBuild; i++) {
|
||||
for (auto singleArg : singleArgs)
|
||||
myfile << singleArg + " ";
|
||||
myfile << std::endl;
|
||||
}
|
||||
myfile.close();
|
||||
} else
|
||||
printf("Unable to open file\n");
|
||||
}
|
||||
|
||||
void MultiCommandTests::deleteFileWithArgs() {
|
||||
if (remove(nameOfFileWithArgs.c_str()) != 0)
|
||||
perror("Error deleting file");
|
||||
}
|
||||
|
||||
void MultiCommandTests::deleteOutFileList() {
|
||||
if (remove(outFileList.c_str()) != 0)
|
||||
perror("Error deleting file");
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
@ -405,6 +405,13 @@ int OfflineCompiler::initialize(size_t numArgs, const std::vector<std::string> &
|
||||
argHelper->printf("Error: Cannot get HW Info for device %s.\n", deviceName.c_str());
|
||||
return retVal;
|
||||
}
|
||||
|
||||
if (options.find(CompilerOptions::generateDebugInfo.str()) != std::string::npos) {
|
||||
if (hwInfo.platform.eRenderCoreFamily >= IGFX_GEN9_CORE) {
|
||||
internalOptions = CompilerOptions::concatenate(internalOptions, CompilerOptions::debugKernelEnable);
|
||||
}
|
||||
}
|
||||
|
||||
if (deviceName.empty()) {
|
||||
internalOptions = CompilerOptions::concatenate("-ocl-version=300 -cl-ext=-all,+cl_khr_3d_image_writes", internalOptions);
|
||||
CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::enableImageSupport);
|
||||
|
Reference in New Issue
Block a user