102 lines
2.1 KiB
C++
102 lines
2.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "NetworkAutomationTestMacros.h"
|
|
#include "NetworkAutomationTest.h"
|
|
#include "Misc/AssertionMacros.h"
|
|
#include "ReplicationSystemTestPlugin/NetworkAutomationTest.h"
|
|
|
|
DEFINE_LOG_CATEGORY(LogNetworkAutomationTest);
|
|
|
|
namespace UE::Net
|
|
{
|
|
|
|
FTestEnsureScope::FTestEnsureScope()
|
|
: FEnsureScope(
|
|
[](const FEnsureHandlerArgs& Args)
|
|
{
|
|
UE_LOG(LogNetworkAutomationTest, Display, TEXT("Ensure condition failed: %hs\n%s\n"), Args.Expression, Args.Message);
|
|
return true;
|
|
}
|
|
)
|
|
{
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
}
|