98 lines
3.2 KiB
C++
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);
|
|
}
|