/* * 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); }