From 537200dac56205ebf57a5719047687d58e182449 Mon Sep 17 00:00:00 2001 From: Bartosz Dunajski Date: Mon, 29 Nov 2021 13:34:57 +0000 Subject: [PATCH] Debug flag support to override revisionId in ocloc Signed-off-by: Bartosz Dunajski --- .../offline_compiler_tests.cpp | 22 +++++++++++++++++++ .../source/offline_compiler.cpp | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp b/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp index 35f035649e..5659a60eb1 100644 --- a/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp +++ b/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp @@ -1440,6 +1440,28 @@ TEST(OfflineCompilerTest, givenHexadecimalRevisionIdWhenCompilerIsInitializedThe EXPECT_EQ(mockOfflineCompiler->hwInfo.platform.usRevId, 17); } +TEST(OfflineCompilerTest, givenDebugVariableSetWhenInitializingThenOverrideRevision) { + DebugManagerStateRestore stateRestore; + DebugManager.flags.OverrideRevision.set(123); + + auto mockOfflineCompiler = std::unique_ptr(new MockOfflineCompiler()); + ASSERT_NE(nullptr, mockOfflineCompiler); + + std::vector argv = { + "ocloc", + "-q", + "-file", + "test_files/copybuffer.cl", + "-device", + gEnvironment->devicePrefix.c_str(), + "-revision_id", + "0x11"}; + + int retVal = mockOfflineCompiler->initialize(argv.size(), argv); + EXPECT_EQ(OfflineCompiler::ErrorCode::SUCCESS, retVal); + EXPECT_EQ(mockOfflineCompiler->hwInfo.platform.usRevId, 123); +} + TEST(OfflineCompilerTest, givenDecimalRevisionIdWhenCompilerIsInitializedThenPassItToHwInfo) { auto mockOfflineCompiler = std::unique_ptr(new MockOfflineCompiler()); ASSERT_NE(nullptr, mockOfflineCompiler); diff --git a/shared/offline_compiler/source/offline_compiler.cpp b/shared/offline_compiler/source/offline_compiler.cpp index 1d1451edf4..c89eef25b3 100644 --- a/shared/offline_compiler/source/offline_compiler.cpp +++ b/shared/offline_compiler/source/offline_compiler.cpp @@ -674,6 +674,10 @@ int OfflineCompiler::parseCommandLine(size_t numArgs, const std::vector(DebugManager.flags.OverrideRevision.get()); + } + if (retVal == SUCCESS) { if (compile32 && compile64) { argHelper->printf("Error: Cannot compile for 32-bit and 64-bit, please choose one.\n");