Add unit test for DebugCommands

This commit is contained in:
Wojtek Figat
2024-10-27 15:22:57 +01:00
parent d88c5f3063
commit 082d97248d
3 changed files with 68 additions and 0 deletions

View File

@@ -1,3 +1,5 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
namespace FlaxEngine
{
public partial class DirectionalLight

View File

@@ -0,0 +1,45 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
#include "TestScripting.h"
#include "Engine/Debug/DebugCommands.h"
#include <ThirdParty/catch2/catch.hpp>
namespace
{
bool PassExec = false;
}
bool TestDebugCommand1::Var = false;
float TestDebugCommand2::Var = 0.0f;
TestDebugCommand2::TestDebugCommand2(const SpawnParams& params)
: ScriptingObject(params)
{
}
void TestDebugCommand2::Exec()
{
PassExec = true;
}
TEST_CASE("DebugCommands")
{
SECTION("Test Commands")
{
// Test async cache flow
DebugCommands::InitAsync();
Platform::Sleep(1);
// Test commands invoking
CHECK(TestDebugCommand1::Var == false);
DebugCommands::Execute(TEXT("TestDebugCommand1.Var true"));
CHECK(TestDebugCommand1::Var == true);
CHECK(TestDebugCommand2::Var == 0.0f);
DebugCommands::Execute(TEXT("TestDebugCommand2.Var 1.5"));
DebugCommands::Execute(TEXT("TestDebugCommand2.Var"));
CHECK(TestDebugCommand2::Var == 1.5f);
CHECK(!PassExec);
DebugCommands::Execute(TEXT("TestDebugCommand2.Exec"));
CHECK(PassExec);
}
}

View File

@@ -177,3 +177,24 @@ public:
return str.Length();
}
};
// Test debug commands via static class.
API_CLASS(Static, Attributes="DebugCommand") class FLAXENGINE_API TestDebugCommand1
{
DECLARE_SCRIPTING_TYPE_NO_SPAWN(TestDebugCommand1);
// Static variable to test.
API_FIELD() static bool Var;
};
// Test debug commands inside a class.
API_CLASS() class FLAXENGINE_API TestDebugCommand2 : public ScriptingObject
{
DECLARE_SCRIPTING_TYPE(TestDebugCommand2);
// Static variable to test.
API_FIELD(Attributes="DebugCommand") static float Var;
// Static method to test.
API_FUNCTION(Attributes="DebugCommand") static void Exec();
};