X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Ftest.qc;h=0997e53a4964fe1657c045ce01f4f698f1a7259b;hb=f197e605a3569ee2f9ecffcdbbca0a674197524f;hp=3929bf1c3893cbd48433b6df03821dc4bbd4d7f1;hpb=d3e642e032c1e9e62fc5400c14627c54e37e4ae0;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/test.qc b/qcsrc/lib/test.qc index 3929bf1c3..0997e53a4 100644 --- a/qcsrc/lib/test.qc +++ b/qcsrc/lib/test.qc @@ -1,56 +1,38 @@ #include "test.qh" -float TEST_failed; -float TEST_ok; - -void TEST_Fail(string cond) +int TEST_RunAll_accumulated(int init); +bool RUN_ALL_TESTS() { - LOG_INFOF("Assertion failed: ", cond); - // backtrace(); - ++TEST_failed; -} - -void TEST_OK() -{ - TEST_ok = true; -} - -float TEST_RunAll() -{ - int f = 0; - float n = numentityfields(); - for (int i = 0; i < n; ++i) - { - string name = entityfieldname(i); - if (substring(name, 0, 6) == "_TEST_") - if (!TEST_Run(substring(name, 6, -1))) ++f; - } + int f = TEST_RunAll_accumulated(0); if (f) { LOG_INFOF("%d tests failed\n", f); - return 1; + return true; } else { - LOG_INFOF("All tests OK\n", f); - return 0; + LOG_INFO("All tests OK\n"); + return false; } } -float TEST_Run(string s) +bool TEST_Run(string s) { LOG_INFOF("%s: testing...\n", s); - TEST_failed = TEST_ok = 0; - callfunction(strcat("_TEST_", s)); + TEST_failed = 0; + TEST_fatal = 0; + TEST_ok = false; + string fn = strcat("_TEST_", s); + if (isfunction(fn)) callfunction(fn); if (TEST_failed > 0) { LOG_INFOF("%s: %d items failed.\n", s, TEST_failed); - return 0; + return false; } else if (!TEST_ok) { LOG_INFOF("%s: did not complete.\n", s); - return 0; + return false; } - return 1; + return true; }