Files
louisphilippe seguin 732be4e0aa ReplicationSystemTest
* Break on failed line instead of inside the FMessageLog

#rb Ryan.Gerleve
#rnx

[CL 25191980 by louisphilippe seguin in ue5-main branch]
2023-04-25 19:19:03 -04:00

90 lines
1.8 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);
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;
}
}