compute-runtime/unit_tests/os_interface/hw_info_config_tests.cpp

98 lines
3.2 KiB
C++

/*
* Copyright (C) 2017-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "unit_tests/os_interface/hw_info_config_tests.h"
#include "core/helpers/hw_helper.h"
using namespace NEO;
using namespace std;
void HwInfoConfigTest::SetUp() {
PlatformFixture::SetUp();
pInHwInfo = pPlatform->getDevice(0)->getHardwareInfo();
testPlatform = &pInHwInfo.platform;
testSkuTable = &pInHwInfo.featureTable;
testWaTable = &pInHwInfo.workaroundTable;
testSysInfo = &pInHwInfo.gtSystemInfo;
outHwInfo = {};
}
void HwInfoConfigTest::TearDown() {
PlatformFixture::TearDown();
}
TEST_F(HwInfoConfigTest, givenHwInfoConfigSetHwInfoValuesFromConfigStringReturnsSetsProperValues) {
uint64_t hwInfoConfig = 0x0;
bool success = parseHwInfoConfigString("1x1x1", hwInfoConfig);
EXPECT_TRUE(success);
EXPECT_EQ(hwInfoConfig, 0x100010001u);
setHwInfoValuesFromConfig(hwInfoConfig, outHwInfo);
EXPECT_EQ(outHwInfo.gtSystemInfo.SliceCount, 1u);
EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 1u);
EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 1u);
success = parseHwInfoConfigString("7x1x1", hwInfoConfig);
EXPECT_TRUE(success);
EXPECT_EQ(hwInfoConfig, 0x700010001u);
setHwInfoValuesFromConfig(hwInfoConfig, outHwInfo);
EXPECT_EQ(outHwInfo.gtSystemInfo.SliceCount, 7u);
EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 7u);
EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 7u);
success = parseHwInfoConfigString("1x7x1", hwInfoConfig);
EXPECT_TRUE(success);
EXPECT_EQ(hwInfoConfig, 0x100070001u);
setHwInfoValuesFromConfig(hwInfoConfig, outHwInfo);
EXPECT_EQ(outHwInfo.gtSystemInfo.SliceCount, 1u);
EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 7u);
EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 7u);
success = parseHwInfoConfigString("1x1x7", hwInfoConfig);
EXPECT_TRUE(success);
EXPECT_EQ(hwInfoConfig, 0x100010007u);
setHwInfoValuesFromConfig(hwInfoConfig, outHwInfo);
EXPECT_EQ(outHwInfo.gtSystemInfo.SliceCount, 1u);
EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 1u);
EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 7u);
success = parseHwInfoConfigString("2x4x16", hwInfoConfig);
EXPECT_TRUE(success);
setHwInfoValuesFromConfig(hwInfoConfig, outHwInfo);
EXPECT_EQ(outHwInfo.gtSystemInfo.SliceCount, 2u);
EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 8u);
EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 128u);
}
TEST_F(HwInfoConfigTest, givenInvalidHwInfoSetHwInfoValuesFromConfigString) {
uint64_t hwInfoConfig = 0x0;
bool success = parseHwInfoConfigString("1", hwInfoConfig);
EXPECT_FALSE(success);
success = parseHwInfoConfigString("1x3", hwInfoConfig);
EXPECT_FALSE(success);
success = parseHwInfoConfigString("65536x3x8", hwInfoConfig);
EXPECT_FALSE(success);
success = parseHwInfoConfigString("1x65536x8", hwInfoConfig);
EXPECT_FALSE(success);
success = parseHwInfoConfigString("1x3x65536", hwInfoConfig);
EXPECT_FALSE(success);
success = parseHwInfoConfigString("65535x65535x8", hwInfoConfig);
EXPECT_FALSE(success);
success = parseHwInfoConfigString("1x65535x65535", hwInfoConfig);
EXPECT_FALSE(success);
}