Create AubManager with product family in parameter

Change-Id: I3d5a2b04278d3dcec75eb2a787ec98d1ca2304ea
This commit is contained in:
Milczarek, Slawomir
2019-02-11 18:46:29 +01:00
committed by sys_ocldev
parent f014f27370
commit e318156d9d
5 changed files with 40 additions and 5 deletions

View File

@@ -5,11 +5,13 @@
*
*/
#include "runtime/helpers/basic_math.h"
#include "runtime/helpers/hw_info.h"
#include "runtime/helpers/options.h"
#include "runtime/os_interface/debug_settings_manager.h"
#include "unit_tests/helpers/debug_manager_state_restore.h"
#include "unit_tests/mocks/mock_aub_center.h"
#include "unit_tests/mocks/mock_aub_manager.h"
#include "third_party/aub_stream/headers/modes.h"
@@ -24,6 +26,22 @@ TEST(AubCenter, GivenUseAubStreamDebugVariableNotSetWhenAubCenterIsCreatedThenAu
EXPECT_EQ(nullptr, aubCenter.aubManager.get());
}
TEST(AubCenter, GivenUseAubStreamDebugVariableSetWhenAubCenterIsCreatedThenCreateAubManagerWithCorrectParameters) {
DebugManagerStateRestore restorer;
DebugManager.flags.UseAubStream.set(false);
MockAubManager *mockAubManager = new MockAubManager(platformDevices[0]->pPlatform->eProductFamily, 4, 8 * MB, true, "aub_file.aub", aub_stream::mode::aubFile);
MockAubCenter mockAubCenter(platformDevices[0], false, "");
mockAubCenter.aubManager = std::unique_ptr<MockAubManager>(mockAubManager);
EXPECT_EQ(platformDevices[0]->pPlatform->eProductFamily, mockAubManager->mockAubManagerParams.productFamily);
EXPECT_EQ(4, mockAubManager->mockAubManagerParams.devicesCount);
EXPECT_EQ(8 * MB, mockAubManager->mockAubManagerParams.memoryBankSize);
EXPECT_EQ(true, mockAubManager->mockAubManagerParams.localMemorySupported);
EXPECT_STREQ("aub_file.aub", mockAubManager->mockAubManagerParams.aubFileName.c_str());
EXPECT_EQ(aub_stream::mode::aubFile, mockAubManager->mockAubManagerParams.streamMode);
}
TEST(AubCenter, GivenDefaultSetCommandStreamReceiverFlagAndAubFileNameWhenGettingAubStreamModeThenModeAubFileIsReturned) {
DebugManagerStateRestore restorer;
DebugManager.flags.UseAubStream.set(true);

View File

@@ -8,7 +8,7 @@
#include "unit_tests/mocks/mock_aub_manager.h"
namespace OCLRT {
aub_stream::AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode) {
return new MockAubManager();
aub_stream::AubManager *createAubManager(uint32_t productFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode) {
return new MockAubManager(productFamily, devicesCount, memoryBankSize, localMemorySupported, aubFileName, streamMode);
}
} // namespace OCLRT

View File

@@ -40,6 +40,14 @@ class MockAubManager : public aub_stream::AubManager {
public:
MockAubManager(){};
MockAubManager(uint32_t productFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode) {
mockAubManagerParams.productFamily = productFamily;
mockAubManagerParams.devicesCount = devicesCount;
mockAubManagerParams.memoryBankSize = memoryBankSize;
mockAubManagerParams.localMemorySupported = localMemorySupported;
mockAubManagerParams.aubFileName.assign(aubFileName);
mockAubManagerParams.streamMode = streamMode;
}
~MockAubManager() override {}
HardwareContext *createHardwareContext(uint32_t device, uint32_t engine) { return createHardwareContext(device, engine, 0); }
@@ -52,6 +60,15 @@ class MockAubManager : public aub_stream::AubManager {
bool writeMemoryCalled = false;
uint32_t contextFlags = 0;
struct MockAubManagerParams {
uint32_t productFamily = 0;
int32_t devicesCount = 0;
uint64_t memoryBankSize = 0;
bool localMemorySupported = false;
std::string aubFileName = "";
uint32_t streamMode = 0xFFFFFFFF;
} mockAubManagerParams;
protected:
HardwareContext *hardwareContext = nullptr;
};