Test non-default root device in api fixture

Define max number of root devices in ults
Resolves: NEO-4000

Change-Id: Ia8da5c22a36dca3c493a9caf836fc1fb29207ef9
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski 2019-12-24 08:08:08 +01:00 committed by sys_ocldev
parent 8cc2a6c28e
commit 84f2185f7c
5 changed files with 31 additions and 6 deletions

View File

@ -15,11 +15,16 @@
#include "unit_tests/mocks/mock_memory_manager.h"
namespace NEO {
constexpr size_t ApiFixture::numRootDevices;
constexpr uint32_t ApiFixture::numRootDevices;
constexpr uint32_t ApiFixture::testedRootDeviceIndex;
ApiFixture::ApiFixture() = default;
ApiFixture::~ApiFixture() = default;
void ApiFixture::SetUp() {
numDevicesBackup = numRootDevices;
PlatformFixture::SetUp();
EXPECT_LT(0u, testedRootDeviceIndex);
rootDeviceEnvironmentBackup.swap(pPlatform->peekExecutionEnvironment()->rootDeviceEnvironments[0]);
auto pDevice = pPlatform->getDevice(testedRootDeviceIndex);
ASSERT_NE(nullptr, pDevice);
@ -40,7 +45,7 @@ void ApiFixture::TearDown() {
pCommandQueue->release();
pContext->release();
pProgram->release();
rootDeviceEnvironmentBackup.swap(pPlatform->peekExecutionEnvironment()->rootDeviceEnvironments[0]);
PlatformFixture::TearDown();
}

View File

@ -10,6 +10,7 @@
#include "runtime/tracing/tracing_api.h"
#include "test.h"
#include "unit_tests/fixtures/platform_fixture.h"
#include "unit_tests/helpers/ult_limits.h"
#include "unit_tests/helpers/variable_backup.h"
#include "gtest/gtest.h"
@ -26,7 +27,10 @@ class MockAlignedMallocManagerDevice;
struct RootDeviceEnvironment;
extern size_t numPlatformDevices;
struct ApiFixture : public PlatformFixture {
struct ApiFixture : PlatformFixture {
ApiFixture();
~ApiFixture();
virtual void SetUp();
virtual void TearDown();
@ -37,10 +41,11 @@ struct ApiFixture : public PlatformFixture {
Context *pContext = nullptr;
MockKernel *pKernel = nullptr;
MockProgram *pProgram = nullptr;
constexpr static size_t numRootDevices = 1u;
constexpr static uint32_t numRootDevices = maxRootDeviceCount;
constexpr static uint32_t testedRootDeviceIndex = 1u;
VariableBackup<size_t> numDevicesBackup{&numPlatformDevices};
const uint32_t testedRootDeviceIndex = 0u;
cl_device_id testedClDevice = nullptr;
std::unique_ptr<RootDeviceEnvironment> rootDeviceEnvironmentBackup;
};
struct api_tests : public ApiFixture,

View File

@ -48,6 +48,7 @@ set(IGDRCL_SRCS_tests_helpers
${CMAKE_CURRENT_SOURCE_DIR}/timestamp_packet_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/transfer_properties_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/uint16_sse4_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/ult_limits.h
${CMAKE_CURRENT_SOURCE_DIR}/unit_test_helper.h
${CMAKE_CURRENT_SOURCE_DIR}/unit_test_helper.inl
${CMAKE_CURRENT_SOURCE_DIR}/validator_tests.cpp

View File

@ -0,0 +1,13 @@
/*
* Copyright (C) 2019 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include <cstdint>
namespace NEO {
constexpr uint32_t maxRootDeviceCount = 3u;
} // namespace NEO

View File

@ -12,6 +12,7 @@
#include "runtime/context/context.h"
#include "runtime/program/create.inl"
#include "runtime/program/kernel_info.h"
#include "unit_tests/helpers/ult_limits.h"
#include "unit_tests/mocks/mock_compilers.h"
#include "unit_tests/mocks/mock_graphics_allocation.h"
@ -46,7 +47,7 @@ void GlobalMockSipProgram::initSipProgram() {
cl_int retVal = 0;
std::vector<char> binary = MockCompilerInterface::getDummyGenBinary();
executionEnvironment.setHwInfo(*platformDevices);
executionEnvironment.prepareRootDeviceEnvironments(1u);
executionEnvironment.prepareRootDeviceEnvironments(maxRootDeviceCount);
executionEnvironment.calculateMaxOsContextCount();
sipProgram = Program::createFromGenBinary<GlobalMockSipProgram>(executionEnvironment,
nullptr,