Skip to content

Commit 5c6db98

Browse files
FlamefireFlow86
authored andcommitted
Test error case of loading game data
1 parent 27e35ea commit 5c6db98

1 file changed

Lines changed: 26 additions & 1 deletion

File tree

tests/libGameData/testGameData.cpp

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
// Copyright (C) 2005 - 2024 Settlers Freaks (sf-team at siedler25.org)
1+
// Copyright (C) 2005 - 2025 Settlers Freaks (sf-team at siedler25.org)
22
//
33
// SPDX-License-Identifier: GPL-2.0-or-later
44

55
#include "PointOutput.h"
66
#include "TerrainBQOutput.h"
7+
#include "files.h"
78
#include "helpers/Range.h"
89
#include "helpers/containerUtils.h"
910
#include "legacy/TerrainData.h"
1011
#include "lua/GameDataLoader.h"
1112
#include "gameData/EdgeDesc.h"
1213
#include "gameData/TerrainDesc.h"
1314
#include "gameData/WorldDescription.h"
15+
#include "rttr/test/ConfigOverride.hpp"
1416
#include "rttr/test/LogAccessor.hpp"
1517
#include "rttr/test/TmpFolder.hpp"
1618
#include <boost/filesystem.hpp>
@@ -113,6 +115,29 @@ BOOST_AUTO_TEST_CASE(LoadGameData)
113115
// TerrainData::PrintEdgePrios();
114116
}
115117

118+
BOOST_AUTO_TEST_CASE(DetectError)
119+
{
120+
rttr::test::TmpFolder tmp;
121+
rttr::test::ConfigOverride _("RTTR", tmp);
122+
auto worldPath = RTTRCONFIG.ExpandPath(s25::folders::gamedata) / "world";
123+
create_directories(worldPath);
124+
{
125+
bnw::ofstream file(worldPath / "default.lua");
126+
BOOST_TEST_REQUIRE(!!(file << "empty = true"));
127+
}
128+
WorldDescription desc;
129+
BOOST_REQUIRE_NO_THROW(loadGameData(desc));
130+
131+
{
132+
bnw::ofstream file(worldPath / "default.lua");
133+
BOOST_TEST_REQUIRE(!!(file << "syntax{-error"));
134+
}
135+
GameDataLoader loader(desc, tmp);
136+
rttr::test::LogAccessor logAcc;
137+
BOOST_TEST(!loader.Load());
138+
BOOST_CHECK_THROW(loadGameData(desc), std::runtime_error);
139+
}
140+
116141
BOOST_AUTO_TEST_CASE(DetectRecursion)
117142
{
118143
rttr::test::TmpFolder tmp;

0 commit comments

Comments
 (0)