first commit

This commit is contained in:
2026-09-13 22:23:14 +01:00
commit 6ccc800045
337 changed files with 63275 additions and 0 deletions
+309
View File
@@ -0,0 +1,309 @@
stock bool Test_SetFilename(StringMap hTest, const char[] value) {
return hTest.SetString("filename", value);
}
stock bool Test_GetFilename(StringMap hTest, char[] value, int max_size) {
return hTest.GetString("filename", value, max_size);
}
stock bool Test_SetFails(StringMap hTest, int value) {
return hTest.SetValue("fails", value);
}
stock bool Test_GetFails(StringMap hTest, int &value) {
return hTest.GetValue("fails", value);
}
stock bool Test_SetTests(StringMap hTest, int value) {
return hTest.SetValue("tests", value);
}
stock bool Test_GetTests(StringMap hTest, int &value) {
return hTest.GetValue("tests", value);
}
stock bool Test_SetFile(StringMap hTest, Handle value) {
return hTest.SetValue("file", value);
}
stock bool Test_GetFile(StringMap hTest, Handle &value) {
return hTest.GetValue("file", value);
}
stock bool Test_SetProcessed(StringMap hTest, int value) {
return hTest.SetValue("processed", value);
}
stock bool Test_GetProcessed(StringMap hTest, int &value) {
return hTest.GetValue("processed", value);
}
stock void Test_Inherit(StringMap hObj, int count) {
int tests;
Test_GetTests(hObj, tests);
File file;
Test_GetFile(hObj, file);
tests = count;
file = null;
Test_SetTests(hObj, tests);
Test_SetFile(hObj, file);
}
stock StringMap Test_New(int count) {
StringMap hObj = new StringMap();
Test_Inherit(hObj, count);
return hObj;
}
stock void Test_Deherit(StringMap hObj) {
}
stock void Test_Destroy(StringMap hObj) {
Test_Deherit(hObj);
delete hObj;
}
stock void Test_Pass(StringMap hTest, const char[] sTest) {
int processed;
Test_GetProcessed(hTest, processed);
Test_LogThis(hTest, "ok %i - %s", processed, sTest);
processed++;
Test_SetProcessed(hTest, processed);
}
stock void Test_Fail(StringMap hTest, const char[] sTest) {
int fails;
Test_GetFails(hTest, fails);
int processed;
Test_GetProcessed(hTest, processed);
Test_LogThis(hTest, "not ok %i - %s", processed, sTest);
Test_LogThis(hTest, "# Failed test '%s'", sTest);
fails++;
processed++;
Test_SetFails(hTest, fails);
Test_SetProcessed(hTest, processed);
}
stock void Test_Is_String(StringMap hTest, const char[] got, const char[] expected, const char[] sTest) {
int fails;
Test_GetFails(hTest, fails);
int processed;
Test_GetProcessed(hTest, processed);
if (StrEqual(got, expected)) {
Test_LogThis(hTest, "ok %i - %s", processed, sTest);
}
else {
Test_LogThis(hTest, "not ok %i - %s", processed, sTest);
Test_LogThis(hTest, "# Failed test '%s'", sTest);
Test_LogThis(hTest, "# got: '%s'", got);
Test_LogThis(hTest, "# expected: '%s'", expected);
fails++;
}
processed++;
Test_SetFails(hTest, fails);
Test_SetProcessed(hTest, processed);
}
stock void Test_Is(StringMap hTest, any got, any expected, const char[] sTest) {
int fails;
Test_GetFails(hTest, fails);
int processed;
Test_GetProcessed(hTest, processed);
if (got == expected) {
Test_LogThis(hTest, "ok %i - %s", processed, sTest);
}
else {
Test_LogThis(hTest, "not ok %i - %s", processed, sTest);
Test_LogThis(hTest, "# Failed test '%s'", sTest);
Test_LogThis(hTest, "# got: '%i'", got);
Test_LogThis(hTest, "# expected: '%i'", expected);
fails++;
}
processed++;
Test_SetFails(hTest, fails);
Test_SetProcessed(hTest, processed);
}
stock void Test_IsNot(StringMap hTest, any got, any expected, const char[] sTest) {
int fails;
Test_GetFails(hTest, fails);
int processed;
Test_GetProcessed(hTest, processed);
if (got != expected) {
Test_LogThis(hTest, "ok %i - %s", processed, sTest);
}
else {
Test_LogThis(hTest, "not ok %i - %s", processed, sTest);
Test_LogThis(hTest, "# Failed test '%s'", sTest);
Test_LogThis(hTest, "# got: '%i'", got);
Test_LogThis(hTest, "# expected: '%i'", expected);
fails++;
}
processed++;
Test_SetFails(hTest, fails);
Test_SetProcessed(hTest, processed);
}
stock void Test_End(StringMap hTest) {
int tests;
Test_GetTests(hTest, tests);
int fails;
Test_GetFails(hTest, fails);
int processed;
Test_GetProcessed(hTest, processed);
File file;
Test_GetFile(hTest, file);
if (tests > processed) {
Test_LogThis(hTest, "# Looks like you planned to run %i tests, but only ran %i.", tests, processed);
}
if (tests < processed) {
Test_LogThis(hTest, "# Looks like you ran %i more tests than you originally planned.", processed - tests);
}
Test_LogThis(hTest, "# You ran %i of %i tests, %i failed, %i passed", processed, tests, fails, processed - fails);
if (file != null) {
delete file;
}
}
stock void Test_Ok(StringMap hTest, bool bOk, const char[] sTest) {
int fails;
Test_GetFails(hTest, fails);
int processed;
Test_GetProcessed(hTest, processed);
if (bOk) {
Test_LogThis(hTest, "ok %i - %s", processed, sTest);
}
else {
Test_LogThis(hTest, "not ok %i - %s", processed, sTest);
Test_LogThis(hTest, "# Failed test '%s'", sTest);
fails++;
}
processed++;
Test_SetFails(hTest, fails);
Test_SetProcessed(hTest, processed);
}
stock void Test_OkNot(StringMap hTest, bool bOkNot, const char[] sTest) {
int fails;
Test_GetFails(hTest, fails);
int processed;
Test_GetProcessed(hTest, processed);
if (!bOkNot) {
Test_LogThis(hTest, "ok %i - %s", processed, sTest);
}
else {
Test_LogThis(hTest, "not ok %i - %s", processed, sTest);
Test_LogThis(hTest, "# Failed test '%s'", sTest);
fails++;
}
processed++;
Test_SetFails(hTest, fails);
Test_SetProcessed(hTest, processed);
}
stock void Test_Is_Float(StringMap hTest, float got, float expected, const char[] sTest) {
int fails;
Test_GetFails(hTest, fails);
int processed;
Test_GetProcessed(hTest, processed);
if (got == expected) {
Test_LogThis(hTest, "ok %i - %s", processed, sTest);
}
else {
Test_LogThis(hTest, "not ok %i - %s", processed, sTest);
Test_LogThis(hTest, "# Failed test '%s'", sTest);
Test_LogThis(hTest, "# got: '%f'", got);
Test_LogThis(hTest, "# expected: '%f'", expected);
fails++;
}
processed++;
Test_SetFails(hTest, fails);
Test_SetProcessed(hTest, processed);
}
stock void Test_Like(StringMap hTest, const char[] got, const char[] pattern, const char[] sTest) {
int fails;
Test_GetFails(hTest, fails);
int processed;
Test_GetProcessed(hTest, processed);
Regex hRegEx = new Regex(pattern);
if (hRegEx.Match(got) > 0) {
Test_LogThis(hTest, "ok %i - %s", processed, sTest);
}
else {
Test_LogThis(hTest, "not ok %i - %s", processed, sTest);
Test_LogThis(hTest, "# Failed test '%s'", sTest);
Test_LogThis(hTest, "# got: '%s'", got);
Test_LogThis(hTest, "# pattern: '%s'", pattern);
fails++;
}
delete hRegEx;
processed++;
Test_SetFails(hTest, fails);
Test_SetProcessed(hTest, processed);
}
stock void Test_LogThis(StringMap hTest, const char[] format, any ...) {
char filename[PLATFORM_MAX_PATH];
Test_GetFilename(hTest, filename, PLATFORM_MAX_PATH);
File file;
Test_GetFile(hTest, file);
char sMessage[255];
VFormat(sMessage, sizeof(sMessage), format, 3);
if (StrEqual(filename, "")) {
PrintToServer(sMessage);
}
else {
if (file == null) {
file = OpenFile(filename, "a");
}
file.WriteLine(sMessage);
}
Test_SetFile(hTest, file);
}