]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/lib/test.qc
Merge branch 'master' into Mario/hagar_notfixed
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / test.qc
index 23907fe5f15ed4106c69fae466807abd79fe2911..0997e53a4964fe1657c045ce01f4f698f1a7259b 100644 (file)
@@ -1,57 +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;
-       }
-       if(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));
-       if(TEST_failed > 0)
+       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)
+       else if (!TEST_ok)
        {
                LOG_INFOF("%s: did not complete.\n", s);
-               return 0;
+               return false;
        }
-       return 1;
+       return true;
 }