Remove gmock usage from PMU

Signed-off-by: Bellekallu Rajkiran <bellekallu.rajkiran@intel.com>
This commit is contained in:
Bellekallu Rajkiran 2022-08-03 10:56:34 +00:00 committed by Compute-Runtime-Automation
parent eecde9114a
commit d1fb4011bd
2 changed files with 7 additions and 33 deletions

View File

@ -29,15 +29,8 @@ class MockPmuInterfaceImpForSysman : public PmuInterfaceImp {
template <> template <>
struct Mock<MockPmuInterfaceImpForSysman> : public MockPmuInterfaceImpForSysman { struct Mock<MockPmuInterfaceImpForSysman> : public MockPmuInterfaceImpForSysman {
Mock<MockPmuInterfaceImpForSysman>(LinuxSysmanImp *pLinuxSysmanImp) : MockPmuInterfaceImpForSysman(pLinuxSysmanImp) {} Mock<MockPmuInterfaceImpForSysman>(LinuxSysmanImp *pLinuxSysmanImp) : MockPmuInterfaceImpForSysman(pLinuxSysmanImp) {}
int64_t mockedPerfEventOpenAndSuccessReturn(perf_event_attr *attr, pid_t pid, int cpu, int groupFd, uint64_t flags) {
return mockPmuFd;
}
int64_t mockedPerfEventOpenAndFailureReturn(perf_event_attr *attr, pid_t pid, int cpu, int groupFd, uint64_t flags) { int pmuRead(int fd, uint64_t *data, ssize_t sizeOfdata) override {
return -1;
}
int mockedReadCountersForGroupSuccess(int fd, uint64_t *data, ssize_t sizeOfdata) {
data[0] = mockEventCount; data[0] = mockEventCount;
data[1] = mockTimeStamp; data[1] = mockTimeStamp;
data[2] = mockEvent1Val; data[2] = mockEvent1Val;
@ -45,23 +38,15 @@ struct Mock<MockPmuInterfaceImpForSysman> : public MockPmuInterfaceImpForSysman
return 0; return 0;
} }
int mockGetErrorNoSuccess() { ADDMETHOD_NOBASE(perfEventOpen, int64_t, mockPmuFd, (perf_event_attr * attr, pid_t pid, int cpu, int groupFd, uint64_t flags));
return EINVAL; ADDMETHOD_NOBASE(getErrorNo, int, EINVAL, ());
}
int mockGetErrorNoFailure() {
return EBADF;
}
MOCK_METHOD(int, pmuRead, (int fd, uint64_t *data, ssize_t sizeOfdata), (override));
MOCK_METHOD(int64_t, perfEventOpen, (perf_event_attr * attr, pid_t pid, int cpu, int groupFd, uint64_t flags), (override));
MOCK_METHOD(int, getErrorNo, (), (override));
}; };
class PmuFsAccess : public FsAccess {}; class PmuFsAccess : public FsAccess {};
template <> template <>
struct Mock<PmuFsAccess> : public PmuFsAccess { struct Mock<PmuFsAccess> : public PmuFsAccess {
MOCK_METHOD(ze_result_t, read, (const std::string file, uint32_t &val), (override)); ze_result_t read(const std::string file, uint32_t &val) override {
ze_result_t readValSuccess(const std::string file, uint32_t &val) {
val = 18; val = 18;
return ZE_RESULT_SUCCESS; return ZE_RESULT_SUCCESS;
} }

View File

@ -32,14 +32,6 @@ struct SysmanPmuFixture : public SysmanDeviceFixture {
pOriginalPmuInterface = pLinuxSysmanImp->pPmuInterface; pOriginalPmuInterface = pLinuxSysmanImp->pPmuInterface;
pPmuInterface = std::make_unique<NiceMock<Mock<MockPmuInterfaceImpForSysman>>>(pLinuxSysmanImp); pPmuInterface = std::make_unique<NiceMock<Mock<MockPmuInterfaceImpForSysman>>>(pLinuxSysmanImp);
pLinuxSysmanImp->pPmuInterface = pPmuInterface.get(); pLinuxSysmanImp->pPmuInterface = pPmuInterface.get();
ON_CALL(*pFsAccess.get(), read(_, _))
.WillByDefault(::testing::Invoke(pFsAccess.get(), &Mock<PmuFsAccess>::readValSuccess));
ON_CALL(*pPmuInterface.get(), perfEventOpen(_, _, _, _, _))
.WillByDefault(::testing::Invoke(pPmuInterface.get(), &Mock<MockPmuInterfaceImpForSysman>::mockedPerfEventOpenAndSuccessReturn));
ON_CALL(*pPmuInterface.get(), pmuRead(_, _, _))
.WillByDefault(::testing::Invoke(pPmuInterface.get(), &Mock<MockPmuInterfaceImpForSysman>::mockedReadCountersForGroupSuccess));
ON_CALL(*pPmuInterface.get(), getErrorNo())
.WillByDefault(::testing::Invoke(pPmuInterface.get(), &Mock<MockPmuInterfaceImpForSysman>::mockGetErrorNoSuccess));
} }
void TearDown() override { void TearDown() override {
if (!sysmanUltsEnable) { if (!sysmanUltsEnable) {
@ -115,17 +107,14 @@ TEST_F(SysmanPmuFixture, GivenValidPmuHandleWhenReadingGroupOfEventsUsingGroupFd
} }
TEST_F(SysmanPmuFixture, GivenValidPmuHandleWhenCallingPmuInterfaceOpenAndPerfEventOpenFailsThenFailureIsReturned) { TEST_F(SysmanPmuFixture, GivenValidPmuHandleWhenCallingPmuInterfaceOpenAndPerfEventOpenFailsThenFailureIsReturned) {
ON_CALL(*pPmuInterface.get(), perfEventOpen(_, _, _, _, _)) pPmuInterface->perfEventOpenResult = -1;
.WillByDefault(::testing::Invoke(pPmuInterface.get(), &Mock<MockPmuInterfaceImpForSysman>::mockedPerfEventOpenAndFailureReturn));
uint64_t config = 10; uint64_t config = 10;
EXPECT_EQ(-1, pLinuxSysmanImp->pPmuInterface->pmuInterfaceOpen(config, -1, PERF_FORMAT_TOTAL_TIME_ENABLED)); EXPECT_EQ(-1, pLinuxSysmanImp->pPmuInterface->pmuInterfaceOpen(config, -1, PERF_FORMAT_TOTAL_TIME_ENABLED));
} }
TEST_F(SysmanPmuFixture, GivenValidPmuHandleWhenCallingPmuInterfaceOpenAndPerfEventOpenFailsAndErrNoSetBySyscallIsNotInvalidArgumentThenFailureIsReturned) { TEST_F(SysmanPmuFixture, GivenValidPmuHandleWhenCallingPmuInterfaceOpenAndPerfEventOpenFailsAndErrNoSetBySyscallIsNotInvalidArgumentThenFailureIsReturned) {
ON_CALL(*pPmuInterface.get(), perfEventOpen(_, _, _, _, _)) pPmuInterface->perfEventOpenResult = -1;
.WillByDefault(::testing::Invoke(pPmuInterface.get(), &Mock<MockPmuInterfaceImpForSysman>::mockedPerfEventOpenAndFailureReturn)); pPmuInterface->getErrorNoResult = EBADF;
ON_CALL(*pPmuInterface.get(), getErrorNo())
.WillByDefault(::testing::Invoke(pPmuInterface.get(), &Mock<MockPmuInterfaceImpForSysman>::mockGetErrorNoFailure));
uint64_t config = 10; uint64_t config = 10;
EXPECT_EQ(-1, pLinuxSysmanImp->pPmuInterface->pmuInterfaceOpen(config, -1, PERF_FORMAT_TOTAL_TIME_ENABLED)); EXPECT_EQ(-1, pLinuxSysmanImp->pPmuInterface->pmuInterfaceOpen(config, -1, PERF_FORMAT_TOTAL_TIME_ENABLED));
} }