Files
UnrealEngineUWP/Engine/Plugins/Runtime/ReplicationSystemTestPlugin/Source/Private/NetworkAutomationTestMacros.cpp
ryan gerleve 77e3a73de8 Make the tests in ReplicationSystemTestPlugin compatible with the LowLevelTests framework.
Original ReplicationSystemTest program using the automation framework still works too.

#jira UE-166991
#preflight 63ea833dec50523134e8aee1
#rb peter.engstrom

[CL 24197467 by ryan gerleve in ue5-main branch]
2023-02-13 20:09:19 -05:00

91 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "NetworkAutomationTestMacros.h"
#include "ReplicationSystemTestPlugin/NetworkAutomationTest.h"
#include "NetworkAutomationTest.h"
DEFINE_LOG_CATEGORY(LogNetworkAutomationTest);
namespace UE::Net
{
FTestResult::FTestResult()
: TestResult(ETestResult_Success)
{
}
class FTestResultSuccess final : public FTestResult
{
public:
FTestResultSuccess() { TestResult = ETestResult_Success; }
};
class FTestResultFailure final : public FTestResult
{
public:
FTestResultFailure() { TestResult = ETestResult_FatalError; }
};
FTestResult
CreateTestSuccess()
{
return FTestResultSuccess();
}
FTestResult
CreateTestFailure()
{
return FTestResultFailure();
}
FTestMessageLog::FTestMessageLog(FNetworkAutomationTestSuiteFixture& InTest, ELogVerbosity::Type InLogVerbosity)
: Test(InTest)
, LogVerbosity(InLogVerbosity)
{
}
#define UE_TEST_MESSAGE_LOG_(Verbosity) UE_LOG(LogNetworkAutomationTest, Verbosity, TEXT("TestCase %ls: %ls"), Test.GetName(), Message.C_Str())
FTestMessageLog::~FTestMessageLog()
{
// UE_LOG requires a ELogVerbosity literal, without the namespace. Since we don't want a separate class per log verbosity we switch on the verbosity instead.
switch (LogVerbosity)
{
case ELogVerbosity::Fatal:
UE_TEST_MESSAGE_LOG_(Fatal);
break;
case ELogVerbosity::Error:
UE_TEST_MESSAGE_LOG_(Error);
UE_DEBUG_BREAK();
break;
case ELogVerbosity::Warning:
UE_TEST_MESSAGE_LOG_(Warning);
break;
case ELogVerbosity::Display:
UE_TEST_MESSAGE_LOG_(Display);
break;
case ELogVerbosity::Log:
UE_TEST_MESSAGE_LOG_(Log);
break;
case ELogVerbosity::Verbose:
UE_TEST_MESSAGE_LOG_(Verbose);
break;
case ELogVerbosity::VeryVerbose:
UE_TEST_MESSAGE_LOG_(VeryVerbose);
break;
default:
break;
}
}
#undef UE_TEST_MESSAGE_LOG_
void
FTestMessageLog::operator=(const FTestMessage& InMessage)
{
Message << InMessage;
}
}