Files
UnrealEngine/Engine/Source/Runtime/Online/BuildPatchServices/Private/Tests/Mock/CyclesProvider.mock.h
2025-05-18 13:04:45 +08:00

51 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Common/StatsCollector.h"
#if WITH_DEV_AUTOMATION_TESTS
namespace BuildPatchServices
{
class FMockCyclesProvider
{
public:
typedef TTuple<double, uint64> FGetCycles;
typedef TTuple<double, double, uint64> FCyclesToSeconds;
public:
static uint64 GetCycles()
{
RxGetCycles.Emplace(FStatsCollector::GetSeconds(), CurrentCycles);
return CurrentCycles;
}
static double CyclesToSeconds(uint64 Cycles)
{
double Seconds = double(Cycles) * SecondsPerCycle;
RxCyclesToSeconds.Emplace(FStatsCollector::GetSeconds(), Seconds, Cycles);
return Seconds;
}
static void Reset()
{
RxGetCycles.Reset();
RxCyclesToSeconds.Reset();
CurrentCycles = 0;
SecondsPerCycle = 1.0 / 100.0;
}
public:
static TArray<FGetCycles> RxGetCycles;
static TArray<FCyclesToSeconds> RxCyclesToSeconds;
static uint64 CurrentCycles;
static double SecondsPerCycle;
};
TArray<FMockCyclesProvider::FGetCycles> FMockCyclesProvider::RxGetCycles;
TArray<FMockCyclesProvider::FCyclesToSeconds> FMockCyclesProvider::RxCyclesToSeconds;
uint64 FMockCyclesProvider::CurrentCycles;
double FMockCyclesProvider::SecondsPerCycle;
}
#endif //WITH_DEV_AUTOMATION_TESTS