Update catch2 version

This commit is contained in:
Jan 2023-06-18 13:39:40 +02:00
parent 34cdd46b42
commit 6c164eee61
31 changed files with 128 additions and 46 deletions

View File

@ -44,7 +44,8 @@ public:
LINE("// Any changes will be discarded when regenerating.") LINE("// Any changes will be discarded when regenerating.")
LINE("// ====================================================================") LINE("// ====================================================================")
LINE("") LINE("")
LINE("#include <catch2/catch.hpp>") LINE("#include <catch2/catch_test_macros.hpp>")
LINE("#include <catch2/generators/catch_generators.hpp>")
LINE("#include <cstddef>") LINE("#include <cstddef>")
LINE("#include \"Game/" << m_env.m_game << "/" << m_env.m_game << ".h\"") LINE("#include \"Game/" << m_env.m_game << "/" << m_env.m_game << ".h\"")
LINE("") LINE("")

View File

@ -48,5 +48,6 @@ function ObjCommonTests:project()
catch2:include(includes) catch2:include(includes)
links:linkto(ObjCommon) links:linkto(ObjCommon)
links:linkto(catch2)
links:linkall() links:linkall()
end end

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include <type_traits> #include <type_traits>

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include <sstream> #include <sstream>

View File

@ -1,2 +0,0 @@
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>

View File

@ -49,5 +49,6 @@ function ObjLoadingTests:project()
links:linkto(ParserTestUtils) links:linkto(ParserTestUtils)
links:linkto(ObjLoading) links:linkto(ObjLoading)
links:linkto(catch2)
links:linkall() links:linkall()
end end

View File

@ -1,4 +1,6 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/matchers/catch_matchers_floating_point.hpp>
#include <catch2/generators/catch_generators.hpp>
#include <string> #include <string>
@ -12,6 +14,7 @@
using namespace menu; using namespace menu;
using namespace IW4; using namespace IW4;
using namespace std::literals; using namespace std::literals;
using namespace Catch::Matchers;
namespace test::game::iw4::menu::parsing::it namespace test::game::iw4::menu::parsing::it
{ {
@ -184,10 +187,10 @@ namespace test::game::iw4::menu::parsing::it
REQUIRE(menu->fullScreen > 0); REQUIRE(menu->fullScreen > 0);
REQUIRE(menu->window.staticFlags & WINDOW_FLAG_SCREEN_SPACE); REQUIRE(menu->window.staticFlags & WINDOW_FLAG_SCREEN_SPACE);
REQUIRE(menu->window.staticFlags & WINDOW_FLAG_DECORATION); REQUIRE(menu->window.staticFlags & WINDOW_FLAG_DECORATION);
REQUIRE(menu->window.rect.x == Approx(420)); REQUIRE_THAT(menu->window.rect.x, WithinRel(420.0f));
REQUIRE(menu->window.rect.y == Approx(1337)); REQUIRE_THAT(menu->window.rect.y, WithinRel(1337.0f));
REQUIRE(menu->window.rect.w == Approx(12)); REQUIRE_THAT(menu->window.rect.w, WithinRel(12.0f));
REQUIRE(menu->window.rect.h == Approx(64)); REQUIRE_THAT(menu->window.rect.h, WithinRel(64.0f));
REQUIRE(menu->window.rect.horzAlign == 1); REQUIRE(menu->window.rect.horzAlign == 1);
REQUIRE(menu->window.rect.vertAlign == 2); REQUIRE(menu->window.rect.vertAlign == 2);
REQUIRE(menu->window.style == 5); REQUIRE(menu->window.style == 5);
@ -250,16 +253,16 @@ namespace test::game::iw4::menu::parsing::it
REQUIRE(menu->onESC->eventHandlers[0]->eventData.unconditionalScript == R"("setColor" "1" "0.5" "0.1" "1" ; )"s); REQUIRE(menu->onESC->eventHandlers[0]->eventData.unconditionalScript == R"("setColor" "1" "0.5" "0.1" "1" ; )"s);
REQUIRE(menu->window.border == 1); REQUIRE(menu->window.border == 1);
REQUIRE(menu->window.borderSize == Approx(1.25)); REQUIRE_THAT(menu->window.borderSize, WithinRel(1.25f));
REQUIRE(menu->window.borderSize == Approx(1.25)); REQUIRE_THAT(menu->window.borderSize, WithinRel(1.25));
REQUIRE(menu->window.backColor[0] == Approx(1)); REQUIRE_THAT(menu->window.backColor[0], WithinRel(1.0f));
REQUIRE(menu->window.backColor[1] == Approx(0.8)); REQUIRE_THAT(menu->window.backColor[1], WithinRel(0.8f));
REQUIRE(menu->window.backColor[2] == Approx(0.4)); REQUIRE_THAT(menu->window.backColor[2], WithinRel(0.4f));
REQUIRE(menu->window.backColor[3] == Approx(0.95)); REQUIRE_THAT(menu->window.backColor[3], WithinRel(0.95f));
REQUIRE(menu->window.foreColor[0] == Approx(0.7)); REQUIRE_THAT(menu->window.foreColor[0], WithinRel(0.7f));
REQUIRE(menu->window.foreColor[1] == Approx(0)); REQUIRE_THAT(menu->window.foreColor[1], WithinRel(0.0f));
REQUIRE(menu->window.foreColor[2] == Approx(0)); REQUIRE_THAT(menu->window.foreColor[2], WithinRel(0.0f));
REQUIRE(menu->window.foreColor[3] == Approx(0)); REQUIRE_THAT(menu->window.foreColor[3], WithinRel(0.0f));
REQUIRE(menu->window.background == funnyDogMaterial); REQUIRE(menu->window.background == funnyDogMaterial);
REQUIRE(menu->onKey != nullptr); REQUIRE(menu->onKey != nullptr);

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Parsing/Menu/Domain/EventHandler/CommonEventHandlerScript.h" #include "Parsing/Menu/Domain/EventHandler/CommonEventHandlerScript.h"
#include "Parsing/Menu/Domain/EventHandler/CommonEventHandlerSetLocalVar.h" #include "Parsing/Menu/Domain/EventHandler/CommonEventHandlerSetLocalVar.h"

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Utils/ClassUtils.h" #include "Utils/ClassUtils.h"
#include "Parsing/Menu/Sequence/ItemScopeSequences.h" #include "Parsing/Menu/Sequence/ItemScopeSequences.h"

View File

@ -1,2 +0,0 @@
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>

View File

@ -48,5 +48,6 @@ function ParserTestUtils:project()
catch2:include(includes) catch2:include(includes)
links:linkto(Parser) links:linkto(Parser)
links:linkto(catch2)
links:linkall() links:linkall()
end end

View File

@ -49,5 +49,6 @@ function ParserTests:project()
links:linkto(ParserTestUtils) links:linkto(ParserTestUtils)
links:linkto(Parser) links:linkto(Parser)
links:linkto(catch2)
links:linkall() links:linkall()
end end

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Parsing/Impl/CommentRemovingStreamProxy.h" #include "Parsing/Impl/CommentRemovingStreamProxy.h"
#include "Parsing/Mock/MockParserLineStream.h" #include "Parsing/Mock/MockParserLineStream.h"

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Parsing/Impl/DefinesStreamProxy.h" #include "Parsing/Impl/DefinesStreamProxy.h"
#include "Parsing/Mock/MockParserLineStream.h" #include "Parsing/Mock/MockParserLineStream.h"

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Parsing/Impl/IncludingStreamProxy.h" #include "Parsing/Impl/IncludingStreamProxy.h"
#include "Parsing/Mock/MockParserLineStream.h" #include "Parsing/Mock/MockParserLineStream.h"

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Parsing/Impl/PackDefinitionStreamProxy.h" #include "Parsing/Impl/PackDefinitionStreamProxy.h"
#include "Parsing/Mock/MockParserLineStream.h" #include "Parsing/Mock/MockParserLineStream.h"

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include <sstream> #include <sstream>

View File

@ -1,2 +0,0 @@
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>

View File

@ -49,5 +49,6 @@ function ZoneCodeGeneratorLibTests:project()
links:linkto(ZoneCodeGeneratorLib) links:linkto(ZoneCodeGeneratorLib)
links:linkto(ParserTestUtils) links:linkto(ParserTestUtils)
links:linkto(catch2)
links:linkall() links:linkall()
end end

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Parsing/Commands/Impl/CommandsLexer.h" #include "Parsing/Commands/Impl/CommandsLexer.h"
#include "Parsing/Mock/MockParserLineStream.h" #include "Parsing/Mock/MockParserLineStream.h"

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Utils/ClassUtils.h" #include "Utils/ClassUtils.h"
#include "Parsing/Commands/Sequence/SequenceAction.h" #include "Parsing/Commands/Sequence/SequenceAction.h"

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Utils/ClassUtils.h" #include "Utils/ClassUtils.h"
#include "Parsing/Commands/Sequence/SequenceArchitecture.h" #include "Parsing/Commands/Sequence/SequenceArchitecture.h"

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Utils/ClassUtils.h" #include "Utils/ClassUtils.h"
#include "Parsing/Commands/Sequence/SequenceGame.h" #include "Parsing/Commands/Sequence/SequenceGame.h"

View File

@ -1,8 +1,12 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/matchers/catch_matchers_floating_point.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Parsing/Header/Impl/HeaderLexer.h" #include "Parsing/Header/Impl/HeaderLexer.h"
#include "Parsing/Mock/MockParserLineStream.h" #include "Parsing/Mock/MockParserLineStream.h"
using namespace Catch::Matchers;
namespace test::parsing::header::impl::header_lexer namespace test::parsing::header::impl::header_lexer
{ {
void ExpectCharacterToken(HeaderLexer& lexer, char c) void ExpectCharacterToken(HeaderLexer& lexer, char c)
@ -22,7 +26,8 @@ namespace test::parsing::header::impl::header_lexer
void ExpectFloatingPointToken(HeaderLexer& lexer, double number) void ExpectFloatingPointToken(HeaderLexer& lexer, double number)
{ {
REQUIRE(lexer.GetToken(0).m_type == HeaderParserValueType::FLOATING_POINT); REQUIRE(lexer.GetToken(0).m_type == HeaderParserValueType::FLOATING_POINT);
REQUIRE(lexer.GetToken(0).FloatingPointValue() == Approx(number)); const auto a = lexer.GetToken(0).FloatingPointValue();
REQUIRE_THAT(lexer.GetToken(0).FloatingPointValue(), WithinRel(number));
lexer.PopTokens(1); lexer.PopTokens(1);
} }

View File

@ -1,4 +1,5 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include "Parsing/Header/Sequence/SequenceNamespace.h" #include "Parsing/Header/Sequence/SequenceNamespace.h"
#include "Parsing/Mock/MockLexer.h" #include "Parsing/Mock/MockLexer.h"

View File

@ -1,5 +1,7 @@
#include <catch2/catch.hpp> #include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include <algorithm>
#include <sstream> #include <sstream>
#include "Utils/ClassUtils.h" #include "Utils/ClassUtils.h"

View File

@ -1,2 +0,0 @@
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>

View File

@ -49,6 +49,7 @@ function ZoneCommonTests:project()
catch2:include(includes) catch2:include(includes)
links:linkto(ZoneCommon) links:linkto(ZoneCommon)
links:linkto(catch2)
links:linkall() links:linkall()
ZoneCode:use() ZoneCode:use()

View File

@ -1,2 +0,0 @@
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>

2
thirdparty/catch2 vendored

@ -1 +1 @@
Subproject commit de6fe184a9ac1a06895cdd1c9b437f0a0bdf14ad Subproject commit 3f0283de7a9c43200033da996ff9093be3ac84dc

65
thirdparty/catch2.lua vendored
View File

@ -3,12 +3,14 @@ catch2 = {}
function catch2:include(includes) function catch2:include(includes)
if includes:handle(self:name()) then if includes:handle(self:name()) then
includedirs { includedirs {
path.join(ThirdPartyFolder(), "catch2", "single_include") path.join(ThirdPartyFolder(), "catch2", "src"),
"%{wks.location}/thirdparty/catch2"
} }
end end
end end
function catch2:link() function catch2:link(links)
links:add(self:name())
end end
function catch2:use() function catch2:use()
@ -20,4 +22,63 @@ function catch2:name()
end end
function catch2:project() function catch2:project()
local folder = ThirdPartyFolder()
local includes = Includes:create()
self:writeUserConfig()
project(self:name())
targetdir(TargetDirectoryLib)
location "%{wks.location}/thirdparty/%{prj.name}"
kind "StaticLib"
language "C++"
files {
path.join(folder, "catch2/src/**.cpp"),
path.join(folder, "catch2/src/**.hpp"),
"%{wks.location}/thirdparty/%{prj.name}/**.cpp",
"%{wks.location}/thirdparty/%{prj.name}/**.hpp"
}
vpaths {
["*"] = {
path.join(folder, "catch2/src"),
"%{wks.location}/thirdparty/%{prj.name}"
}
}
defines {
"DO_NOT_USE_WMAIN",
"_CRT_SECURE_NO_WARNINGS"
}
self:include(includes)
-- Disable warnings. They do not have any value to us since it is not our code.
warnings "off"
end
function catch2:writeUserConfig()
local folder = ThirdPartyFolder()
local inputFileName = path.join(folder, "catch2/src/catch2/catch_user_config.hpp.in")
local outputFileName = path.getabsolute("build/thirdparty/catch2/catch2/catch_user_config.hpp")
local inputInfo = os.stat(inputFileName)
local outputInfo = os.stat(outputFileName)
if inputInfo == nil then
return
end
if outputInfo ~= nil and inputInfo.mtime <= outputInfo.mtime then
return
end
local fileData = io.readfile(inputFileName)
fileData = string.gsub(fileData, '#cmakedefine[^\n]*', '')
fileData = string.gsub(fileData, '@CATCH_CONFIG_CONSOLE_WIDTH@', '80')
fileData = string.gsub(fileData, '@CATCH_CONFIG_DEFAULT_REPORTER@', 'console')
os.mkdir(path.getdirectory(outputFileName))
os.writefile_ifnotequal(fileData, outputFileName)
end end