mirror of
https://github.com/EQEmu/Server.git
synced 2026-08-27 06:38:05 +00:00
Hopefully completely merged from master in what is the biggest merge ever
This commit is contained in:
@@ -7,18 +7,23 @@ SET(tests_sources
|
||||
)
|
||||
|
||||
SET(tests_headers
|
||||
atobool_test.h
|
||||
data_verification_test.h
|
||||
fixed_memory_test.h
|
||||
fixed_memory_variable_test.h
|
||||
hextoi_32_64_test.h
|
||||
ipc_mutex_test.h
|
||||
memory_mapped_file_test.h
|
||||
atobool_test.h
|
||||
hextoi_32_64_test.h
|
||||
string_util_test.h
|
||||
skills_util_test.h
|
||||
)
|
||||
|
||||
ADD_EXECUTABLE(tests ${tests_sources} ${tests_headers})
|
||||
|
||||
TARGET_LINK_LIBRARIES(tests common cppunit)
|
||||
|
||||
INSTALL(TARGETS tests RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
IF(MSVC)
|
||||
SET_TARGET_PROPERTIES(tests PROPERTIES LINK_FLAGS_RELEASE "/OPT:REF /OPT:ICF")
|
||||
TARGET_LINK_LIBRARIES(tests "Ws2_32.lib")
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#define __EQEMU_TESTS_ATOBOOL_H
|
||||
|
||||
#include "cppunit/cpptest.h"
|
||||
#include "../common/StringUtil.h"
|
||||
#include "../common/string_util.h"
|
||||
|
||||
class atoboolTest : public Test::Suite {
|
||||
typedef void(atoboolTest::*TestFunction)(void);
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
/* EQEMu: Everquest Server Emulator
|
||||
Copyright (C) 2001-2014 EQEMu Development Team (http://eqemulator.net)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY except by those people which sell it, which
|
||||
are required to give you total support for your newly bought product;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __EQEMU_TESTS_DATA_VERIFICATION_H
|
||||
#define __EQEMU_TESTS_DATA_VERIFICATION_H
|
||||
|
||||
#include "cppunit/cpptest.h"
|
||||
#include "../common/data_verification.h"
|
||||
|
||||
class DataVerificationTest : public Test::Suite {
|
||||
typedef void(DataVerificationTest::*TestFunction)(void);
|
||||
public:
|
||||
DataVerificationTest() {
|
||||
TEST_ADD(DataVerificationTest::Clamp);
|
||||
TEST_ADD(DataVerificationTest::ClampUpper);
|
||||
TEST_ADD(DataVerificationTest::ClampLower);
|
||||
TEST_ADD(DataVerificationTest::ValueWithin);
|
||||
}
|
||||
|
||||
~DataVerificationTest() {
|
||||
}
|
||||
|
||||
private:
|
||||
void Clamp() {
|
||||
float value_f = 500.0f;
|
||||
int value_i = 500;
|
||||
|
||||
float vf1 = EQEmu::Clamp(value_f, 0.0f, 1000.0f);
|
||||
float vf2 = EQEmu::Clamp(value_f, 0.0f, 250.0f);
|
||||
float vf3 = EQEmu::Clamp(value_f, 750.0f, 1000.0f);
|
||||
|
||||
int vi1 = EQEmu::Clamp(value_i, 0, 1000);
|
||||
int vi2 = EQEmu::Clamp(value_i, 0, 250);
|
||||
int vi3 = EQEmu::Clamp(value_i, 750, 1000);
|
||||
|
||||
TEST_ASSERT_EQUALS(vf1, 500.0f);
|
||||
TEST_ASSERT_EQUALS(vf2, 250.0f);
|
||||
TEST_ASSERT_EQUALS(vf3, 750.0f);
|
||||
|
||||
TEST_ASSERT_EQUALS(vi1, 500);
|
||||
TEST_ASSERT_EQUALS(vi2, 250);
|
||||
TEST_ASSERT_EQUALS(vi3, 750);
|
||||
}
|
||||
|
||||
void ClampUpper() {
|
||||
float value_f = 500.0f;
|
||||
int value_i = 500;
|
||||
|
||||
float vf1 = EQEmu::ClampUpper(value_f, 1000.0f);
|
||||
float vf2 = EQEmu::ClampUpper(value_f, 250.0f);
|
||||
|
||||
int vi1 = EQEmu::ClampUpper(value_i, 1000);
|
||||
int vi2 = EQEmu::ClampUpper(value_i, 250);
|
||||
|
||||
TEST_ASSERT_EQUALS(vf1, 500.0f);
|
||||
TEST_ASSERT_EQUALS(vf2, 250.0f);
|
||||
|
||||
TEST_ASSERT_EQUALS(vi1, 500);
|
||||
TEST_ASSERT_EQUALS(vi2, 250);
|
||||
}
|
||||
|
||||
void ClampLower() {
|
||||
float value_f = 500.0f;
|
||||
int value_i = 500;
|
||||
|
||||
float vf1 = EQEmu::ClampLower(value_f, 0.0f);
|
||||
float vf2 = EQEmu::ClampLower(value_f, 750.0f);
|
||||
|
||||
int vi1 = EQEmu::ClampLower(value_i, 0);
|
||||
int vi2 = EQEmu::ClampLower(value_i, 750);
|
||||
|
||||
TEST_ASSERT_EQUALS(vf1, 500.0f);
|
||||
TEST_ASSERT_EQUALS(vf2, 750.0f);
|
||||
|
||||
TEST_ASSERT_EQUALS(vi1, 500);
|
||||
TEST_ASSERT_EQUALS(vi2, 750);
|
||||
}
|
||||
|
||||
void ValueWithin() {
|
||||
float value_f = 500.0f;
|
||||
int value_i = 500;
|
||||
|
||||
TEST_ASSERT(EQEmu::ValueWithin(value_f, 0.0f, 1000.0f));
|
||||
TEST_ASSERT(!EQEmu::ValueWithin(value_f, 0.0f, 400.0f));
|
||||
TEST_ASSERT(!EQEmu::ValueWithin(value_f, 600.0f, 900.0f));
|
||||
|
||||
TEST_ASSERT(EQEmu::ValueWithin(value_i, 0, 1000));
|
||||
TEST_ASSERT(!EQEmu::ValueWithin(value_i, 0, 400));
|
||||
TEST_ASSERT(!EQEmu::ValueWithin(value_i, 600, 900));
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include "cppunit/cpptest.h"
|
||||
#include "../common/fixed_memory_hash_set.h"
|
||||
#include "../common/Item.h"
|
||||
#include "../common/item.h"
|
||||
|
||||
class FixedMemoryHashTest : public Test::Suite {
|
||||
typedef void(FixedMemoryHashTest::*TestFunction)(void);
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#define __EQEMU_TESTS_HEXTOI_32_64_H
|
||||
|
||||
#include "cppunit/cpptest.h"
|
||||
#include "../common/StringUtil.h"
|
||||
#include "../common/string_util.h"
|
||||
|
||||
class hextoi_32_64_Test : public Test::Suite {
|
||||
typedef void(hextoi_32_64_Test::*TestFunction)(void);
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
#include "fixed_memory_variable_test.h"
|
||||
#include "atobool_test.h"
|
||||
#include "hextoi_32_64_test.h"
|
||||
#include "string_util_test.h"
|
||||
#include "data_verification_test.h"
|
||||
#include "skills_util_test.h"
|
||||
|
||||
int main() {
|
||||
try {
|
||||
@@ -38,6 +41,9 @@ int main() {
|
||||
tests.add(new FixedMemoryVariableHashTest());
|
||||
tests.add(new atoboolTest());
|
||||
tests.add(new hextoi_32_64_Test());
|
||||
tests.add(new StringUtilTest());
|
||||
tests.add(new DataVerificationTest());
|
||||
tests.add(new SkillsUtilsTest());
|
||||
tests.run(*output, true);
|
||||
} catch(...) {
|
||||
return -1;
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/* EQEMu: Everquest Server Emulator
|
||||
Copyright (C) 2001-2014 EQEMu Development Team (http://eqemulator.net)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY except by those people which sell it, which
|
||||
are required to give you total support for your newly bought product;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __EQEMU_TESTS_SKILLS_UTILS_H
|
||||
#define __EQEMU_TESTS_SKILLS_UTILS_H
|
||||
|
||||
#include "cppunit/cpptest.h"
|
||||
#include "../common/skills.h"
|
||||
|
||||
class SkillsUtilsTest: public Test::Suite {
|
||||
typedef void(SkillsUtilsTest::*TestFunction)(void);
|
||||
public:
|
||||
SkillsUtilsTest() {
|
||||
TEST_ADD(SkillsUtilsTest::IsTradeskill);
|
||||
TEST_ADD(SkillsUtilsTest::IsSpecializedSkill);
|
||||
}
|
||||
|
||||
~SkillsUtilsTest() {
|
||||
}
|
||||
|
||||
private:
|
||||
void IsTradeskill() {
|
||||
TEST_ASSERT(EQEmu::IsTradeskill(SkillPottery));
|
||||
TEST_ASSERT(!EQEmu::IsTradeskill(SkillParry));
|
||||
}
|
||||
|
||||
void IsSpecializedSkill() {
|
||||
TEST_ASSERT(EQEmu::IsSpecializedSkill(SkillSpecializeConjuration));
|
||||
TEST_ASSERT(!EQEmu::IsSpecializedSkill(SkillConjuration))
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,85 @@
|
||||
/* EQEMu: Everquest Server Emulator
|
||||
Copyright (C) 2001-2013 EQEMu Development Team (http://eqemulator.net)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY except by those people which sell it, which
|
||||
are required to give you total support for your newly bought product;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __EQEMU_TESTS_STRING_UTIL_H
|
||||
#define __EQEMU_TESTS_STRING_UTIL_H
|
||||
|
||||
#include "cppunit/cpptest.h"
|
||||
#include "../common/string_util.h"
|
||||
|
||||
class StringUtilTest : public Test::Suite {
|
||||
typedef void(StringUtilTest::*TestFunction)(void);
|
||||
public:
|
||||
StringUtilTest() {
|
||||
TEST_ADD(StringUtilTest::StringFormatTest);
|
||||
TEST_ADD(StringUtilTest::EscapeStringTest);
|
||||
TEST_ADD(StringUtilTest::EscapeStringMemoryTest);
|
||||
}
|
||||
|
||||
~StringUtilTest() {
|
||||
}
|
||||
|
||||
private:
|
||||
void StringFormatTest() {
|
||||
const char* fmt = "Test: %c %d %4.2f";
|
||||
char c = 'a';
|
||||
int i = 2014;
|
||||
float f = 3.1416;
|
||||
|
||||
auto s = StringFormat(fmt, c, i, f);
|
||||
TEST_ASSERT_EQUALS(s.length(), 17);
|
||||
TEST_ASSERT(s.compare("Test: a 2014 3.14") == 0);
|
||||
}
|
||||
|
||||
void EscapeStringTest() {
|
||||
std::string t;
|
||||
t.resize(10);
|
||||
t[0] = 'a';
|
||||
t[1] = 'b';
|
||||
t[2] = 'c';
|
||||
t[3] = '\x00';
|
||||
t[4] = '\n';
|
||||
t[5] = '\r';
|
||||
t[6] = '\\';
|
||||
t[7] = '\'';
|
||||
t[8] = '\"';
|
||||
t[9] = '\x1a';
|
||||
|
||||
auto s = EscapeString(t);
|
||||
TEST_ASSERT(s.compare("abc\\x00\\n\\r\\\\\\'\\\"\\x1a") == 0);
|
||||
}
|
||||
|
||||
void EscapeStringMemoryTest() {
|
||||
char t[10] = { 0 };
|
||||
t[0] = 'a';
|
||||
t[1] = 'b';
|
||||
t[2] = 'c';
|
||||
t[3] = '\x00';
|
||||
t[4] = '\n';
|
||||
t[5] = '\r';
|
||||
t[6] = '\\';
|
||||
t[7] = '\'';
|
||||
t[8] = '\"';
|
||||
t[9] = '\x1a';
|
||||
|
||||
auto s = EscapeString(t, 10);
|
||||
TEST_ASSERT(s.compare("abc\\x00\\n\\r\\\\\\'\\\"\\x1a") == 0);
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user