Browse Source

Add tests for levels with quest sets using dummy maps

Banner1.DUN, Banner2.DUN, SKngDO.DUN, Blind1.DUN are custom maps made to
facilitate the tests that load map files as elements for generated
levels.
pull/4673/head
Anders Jenbo 4 years ago
parent
commit
9181ba412b
  1. 16
      test/Fixtures.cmake
  2. 36
      test/drlg_l1_test.cpp
  3. 16
      test/drlg_l2_test.cpp
  4. 13
      test/drlg_l3_test.cpp
  5. 8
      test/drlg_l4_test.cpp
  6. 4
      test/drlg_test.hpp
  7. BIN
      test/fixtures/Levels/L1Data/Banner1.DUN
  8. BIN
      test/fixtures/Levels/L1Data/Banner2.DUN
  9. BIN
      test/fixtures/Levels/L1Data/SKngDO.DUN
  10. BIN
      test/fixtures/Levels/L2Data/Blind1.DUN
  11. BIN
      test/fixtures/Levels/L4Data/diab1.DUN
  12. BIN
      test/fixtures/Levels/L4Data/diab2a.DUN
  13. BIN
      test/fixtures/Levels/L4Data/diab2b.DUN
  14. BIN
      test/fixtures/Levels/L4Data/diab3a.DUN
  15. BIN
      test/fixtures/Levels/L4Data/diab3b.DUN
  16. BIN
      test/fixtures/Levels/L4Data/diab4a.DUN
  17. BIN
      test/fixtures/Levels/L4Data/diab4b.DUN
  18. BIN
      test/fixtures/diablo/10-879635115.dun
  19. BIN
      test/fixtures/diablo/16-741281013.dun
  20. BIN
      test/fixtures/diablo/7-1607627156.dun
  21. BIN
      test/fixtures/hellfire/3-1512491184.dun
  22. BIN
      test/fixtures/hellfire/4-1924296259.dun

16
test/Fixtures.cmake

@ -10,8 +10,10 @@ set(devilutionx_fixtures
diablo/5-1677631846.dun
diablo/6-2034738122.dun
diablo/7-680552750.dun
diablo/7-1607627156.dun
diablo/8-1999936419.dun
diablo/9-262005438.dun
diablo/10-879635115.dun
diablo/10-1630062353.dun
diablo/11-384626536.dun
diablo/12-2104541047.dun
@ -19,10 +21,13 @@ set(devilutionx_fixtures
diablo/14-717625719.dun
diablo/15-1583642716-changed.dun
diablo/15-1583642716.dun
diablo/16-741281013.dun
hellfire/1-401921334.dun
hellfire/2-128964898.dun
hellfire/3-1512491184.dun
hellfire/3-1799396623.dun
hellfire/4-1190318991.dun
hellfire/4-1924296259.dun
hellfire/17-19770182.dun
hellfire/18-1522546307.dun
hellfire/19-125121312.dun
@ -31,6 +36,17 @@ set(devilutionx_fixtures
hellfire/22-1191662129.dun
hellfire/23-97055268.dun
hellfire/24-1324803725.dun
Levels/L1Data/Banner1.DUN
Levels/L1Data/Banner2.DUN
Levels/L1Data/SKngDO.DUN
Levels/L2Data/Blind1.DUN
Levels/L4Data/diab1.DUN
Levels/L4Data/diab2a.DUN
Levels/L4Data/diab2b.DUN
Levels/L4Data/diab3a.DUN
Levels/L4Data/diab3b.DUN
Levels/L4Data/diab4a.DUN
Levels/L4Data/diab4b.DUN
)
foreach(fixture ${devilutionx_fixtures})

36
test/drlg_l1_test.cpp

@ -44,6 +44,7 @@ TEST(Drlg_l1, CreateL5Dungeon_diablo_2_1383137027)
Quests[Q_PWATER]._qlevel = 2;
Quests[Q_PWATER]._qactive = QUEST_INIT;
Quests[Q_BUTCHER]._qactive = QUEST_NOTAVAIL;
TestCreateDungeon(2, 1383137027, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(57, 74));
@ -56,6 +57,7 @@ TEST(Drlg_l1, CreateL5Dungeon_diablo_3_844660068)
LoadExpectedLevelData("diablo/3-844660068.dun");
MyPlayer->pOriginalCathedral = true;
Quests[Q_SKELKING]._qactive = QUEST_NOTAVAIL;
TestCreateDungeon(3, 844660068, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(67, 52));
@ -68,6 +70,7 @@ TEST(Drlg_l1, CreateL5Dungeon_diablo_4_609325643)
LoadExpectedLevelData("diablo/4-609325643.dun");
MyPlayer->pOriginalCathedral = true;
Quests[Q_LTBANNER]._qactive = QUEST_NOTAVAIL;
TestCreateDungeon(4, 609325643, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(85, 78));
@ -93,6 +96,7 @@ TEST(Drlg_l1, CreateL5Dungeon_hellfire_2_128964898)
MyPlayer->pOriginalCathedral = false;
Quests[Q_PWATER]._qactive = QUEST_NOTAVAIL;
Quests[Q_BUTCHER]._qactive = QUEST_NOTAVAIL;
TestCreateDungeon(2, 128964898, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(55, 68));
@ -105,6 +109,7 @@ TEST(Drlg_l1, CreateL5Dungeon_hellfire_3_1799396623)
LoadExpectedLevelData("hellfire/3-1799396623.dun");
MyPlayer->pOriginalCathedral = false;
Quests[Q_SKELKING]._qactive = QUEST_NOTAVAIL;
TestCreateDungeon(3, 1799396623, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(59, 68));
@ -112,11 +117,26 @@ TEST(Drlg_l1, CreateL5Dungeon_hellfire_3_1799396623)
EXPECT_EQ(ViewPosition, Point(47, 55));
}
TEST(Drlg_l1, CreateL5Dungeon_hellfire_3_1512491184)
{
LoadExpectedLevelData("hellfire/3-1512491184.dun");
MyPlayer->pOriginalCathedral = false;
Quests[Q_SKELKING]._qlevel = 3;
Quests[Q_SKELKING]._qactive = QUEST_INIT;
TestCreateDungeon(3, 1512491184, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(47, 72));
TestCreateDungeon(3, 1512491184, ENTRY_PREV);
EXPECT_EQ(ViewPosition, Point(79, 45));
}
TEST(Drlg_l1, CreateL5Dungeon_hellfire_4_1190318991)
{
LoadExpectedLevelData("hellfire/4-1190318991.dun");
MyPlayer->pOriginalCathedral = false;
Quests[Q_LTBANNER]._qactive = QUEST_NOTAVAIL;
TestCreateDungeon(4, 1190318991, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(67, 80));
@ -124,6 +144,20 @@ TEST(Drlg_l1, CreateL5Dungeon_hellfire_4_1190318991)
EXPECT_EQ(ViewPosition, Point(77, 45));
}
TEST(Drlg_l1, CreateL5Dungeon_hellfire_4_1924296259)
{
LoadExpectedLevelData("hellfire/4-1924296259.dun");
MyPlayer->pOriginalCathedral = false;
Quests[Q_LTBANNER]._qlevel = 4;
Quests[Q_LTBANNER]._qactive = QUEST_INIT;
TestCreateDungeon(4, 1924296259, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(83, 54));
TestCreateDungeon(4, 1924296259, ENTRY_PREV);
EXPECT_EQ(ViewPosition, Point(52, 88));
}
TEST(Drlg_l1, CreateL5Dungeon_crypt_1_2122696790)
{
LoadExpectedLevelData("hellfire/21-2122696790.dun");
@ -138,8 +172,6 @@ TEST(Drlg_l1, CreateL5Dungeon_crypt_2_1191662129)
{
LoadExpectedLevelData("hellfire/22-1191662129.dun");
Quests[Q_PWATER]._qactive = QUEST_NOTAVAIL;
TestCreateDungeon(22, 1191662129, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(71, 47));
TestCreateDungeon(22, 1191662129, ENTRY_PREV);

16
test/drlg_l2_test.cpp

@ -3,6 +3,7 @@
#include "drlg_test.hpp"
#include "gendung.h"
#include "quests.h"
using namespace devilution;
@ -32,12 +33,27 @@ TEST(Drlg_l2, CreateL2Dungeon_diablo_7_680552750)
{
LoadExpectedLevelData("diablo/7-680552750.dun");
Quests[Q_BLIND]._qactive = QUEST_NOTAVAIL;
TestCreateDungeon(7, 680552750, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(27, 26));
TestCreateDungeon(7, 680552750, ENTRY_PREV);
EXPECT_EQ(ViewPosition, Point(78, 52));
}
TEST(Drlg_l2, CreateL2Dungeon_diablo_7_1607627156)
{
LoadExpectedLevelData("diablo/7-1607627156.dun");
Quests[Q_BLIND]._qlevel = 7;
Quests[Q_BLIND]._qactive = QUEST_INIT;
TestCreateDungeon(7, 1607627156, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(53, 26));
TestCreateDungeon(7, 1607627156, ENTRY_PREV);
EXPECT_EQ(ViewPosition, Point(50, 88));
}
TEST(Drlg_l2, CreateL2Dungeon_diablo_8_1999936419)
{
LoadExpectedLevelData("diablo/8-1999936419.dun");

13
test/drlg_l3_test.cpp

@ -31,6 +31,19 @@ TEST(Drlg_l3, CreateL3Dungeon_diablo_10_1630062353)
EXPECT_EQ(ViewPosition, Point(19, 47));
}
TEST(Drlg_l3, CreateL3Dungeon_diablo_10_879635115)
{
LoadExpectedLevelData("diablo/10-879635115.dun");
Quests[Q_ANVIL]._qlevel = 10;
Quests[Q_ANVIL]._qactive = QUEST_INIT;
TestCreateDungeon(10, 879635115, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(75, 41));
TestCreateDungeon(10, 879635115, ENTRY_PREV);
EXPECT_EQ(ViewPosition, Point(27, 45));
}
TEST(Drlg_l3, CreateL3Dungeon_diablo_11_384626536)
{
LoadExpectedLevelData("diablo/11-384626536.dun");

8
test/drlg_l4_test.cpp

@ -50,4 +50,12 @@ TEST(Drlg_l4, CreateL4Dungeon_diablo_15_1583642716)
EXPECT_EQ(ViewPosition, Point(87, 69));
}
TEST(Drlg_l4, CreateL4Dungeon_diablo_16_741281013)
{
LoadExpectedLevelData("diablo/16-741281013.dun");
TestCreateDungeon(16, 741281013, ENTRY_MAIN);
EXPECT_EQ(ViewPosition, Point(58, 42));
}
} // namespace

4
test/drlg_test.hpp

@ -36,9 +36,11 @@ std::unique_ptr<uint16_t[]> DunData;
void LoadExpectedLevelData(const char *fixture)
{
std::string dunPath = "test/fixtures/";
paths::SetPrefPath(paths::BasePath());
paths::SetAssetsPath(paths::BasePath() + "/" + dunPath);
std::string dunPath = "test/fixtures/";
dunPath.append(fixture);
DunData = LoadFileInMem<uint16_t>(dunPath.c_str());
ASSERT_NE(DunData, nullptr) << "Unable to load test fixture " << dunPath;

BIN
test/fixtures/Levels/L1Data/Banner1.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L1Data/Banner2.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L1Data/SKngDO.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L2Data/Blind1.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L4Data/diab1.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L4Data/diab2a.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L4Data/diab2b.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L4Data/diab3a.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L4Data/diab3b.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L4Data/diab4a.DUN vendored

Binary file not shown.

BIN
test/fixtures/Levels/L4Data/diab4b.DUN vendored

Binary file not shown.

BIN
test/fixtures/diablo/10-879635115.dun vendored

Binary file not shown.

BIN
test/fixtures/diablo/16-741281013.dun vendored

Binary file not shown.

BIN
test/fixtures/diablo/7-1607627156.dun vendored

Binary file not shown.

BIN
test/fixtures/hellfire/3-1512491184.dun vendored

Binary file not shown.

BIN
test/fixtures/hellfire/4-1924296259.dun vendored

Binary file not shown.
Loading…
Cancel
Save