]> git.xonotic.org Git - xonotic/gmqcc.git/commitdiff
Fix testsuite. Also added an additional test to the ternary stuff
authorDale Weiler <killfieldengine@gmail.com>
Sun, 16 Dec 2012 22:07:33 +0000 (22:07 +0000)
committerDale Weiler <killfieldengine@gmail.com>
Sun, 16 Dec 2012 22:07:33 +0000 (22:07 +0000)
test.c
tests/calls.qc
tests/ternary-fte.tmpl
tests/ternary.qc
tests/ternary.tmpl

diff --git a/test.c b/test.c
index 54fb2aaf3794d2fef6598b799ba6f933039fe5f6..9694161b81567c7509c393b4426bdb742f414c7d 100644 (file)
--- a/test.c
+++ b/test.c
@@ -860,8 +860,12 @@ bool task_execute(task_template_t *template, char ***line) {
             if  (strrchr(data, '\n'))
                 *strrchr(data, '\n') = '\0';
 
-            if (strcmp(data, template->comparematch[compare++]))
-                success = false;
+            if (vec_size(template->comparematch) > compare) {
+                if (strcmp(data, template->comparematch[compare++]))
+                    success = false;
+            } else {
+                    success = false;
+            }
 
             /*
              * Copy to output vector for diagnostics if execution match
@@ -980,7 +984,10 @@ void task_schedualize() {
              * handler for the all the given matches in the template file and
              * what was actually returned from executing.
              */
-            con_err("    Expected From %u Matches:\n", vec_size(task_tasks[i].template->comparematch));
+            con_err("    Expected From %u Matches: (got %u Matches)\n",
+                vec_size(task_tasks[i].template->comparematch),
+                vec_size(match)
+            );
             for (; d < vec_size(task_tasks[i].template->comparematch); d++) {
                 char  *select = task_tasks[i].template->comparematch[d];
                 size_t length = 40 - strlen(select);
@@ -990,6 +997,21 @@ void task_schedualize() {
                     con_err(" ");
                 con_err("| Got: \"%s\"\n", (d >= vec_size(match)) ? "<<nothing else to compare>>" : match[d]);
             }
+
+            /*
+             * Print the non-expected out (since we are simply not expecting it)
+             * This will help track down bugs in template files that fail to match
+             * something.
+             */  
+            if (vec_size(match) > vec_size(task_tasks[i].template->comparematch)) {
+                for (d = 0; d < vec_size(match) - vec_size(task_tasks[i].template->comparematch); d++) {
+                    con_err("        Expected: Nothing                                   | Got: \"%s\"\n",
+                        match[d + vec_size(task_tasks[i].template->comparematch)]
+                    );
+                }
+            }
+                    
+
             for (j = 0; j < vec_size(match); j++)
                 mem_d(match[j]);
             vec_free(match);
index d55598ed300ff7cbc2b49c8a0a774c879f7e4d12..e230dc46adfaffe7fede589f9393c169deae7a38 100644 (file)
@@ -11,4 +11,5 @@ void(float a, float b, float c) main = {
             sum(sum(sum(a, b, c), b, sum(a, b, c)), b, sum(a, b, sum(a, b, c))),
             sum(sum(a, b, c), b, c));
     print(ftos(f), "\n");
+    
 };
index 5a21eb25b0a0f6acdb3d0216f13bf796b99f8e48..3d4bdcb1f4a67910d6e091576874567729ec1064 100644 (file)
@@ -11,3 +11,5 @@ M: 0
 M: 5
 M: 9
 M: 10
+M: select_a: 1
+M: select_b: 0
index a8e0bd73b5d037adabc8664a4405a9fd180b42a2..242a2404d54f3668a0f707f16cf7f71895250dc0 100644 (file)
@@ -2,35 +2,45 @@ void     print(...)   = #1;
 string   ftos (float) = #2;
 
 void test(float cond, float v1, float v2, float a) {
-       print(ftos(cond ? v1 : v2), " ");
-       print( (cond ? v1 : v2) ? ( (a == 1) ? "a=1"
-                                 : (a == 2) ? "a=2"
-                                 : "a=other"
-                                 )
-                               : "not met",
-             "\n");
+    print(ftos(cond ? v1 : v2), " ");
+    print( (cond ? v1 : v2) ? ( (a == 1) ? "a=1"
+                              : (a == 2) ? "a=2"
+                              : "a=other"
+                              )
+                            : "not met",
+          "\n");
+}
+
+void select_a(float x) {
+    print("select_a: ", ftos(x), "\n");
+}
+void select_b(float x) {
+    print("select_b: ", ftos(x), "\n");
 }
 
 void main() {
     float a, b;
-       test(0, -99, 1, 1);
-       test(0, -99, 1, 2);
-       test(0, -99, 1, 3);
-       test(0, -99, 0, 1);
-       test(0, -99, 0, 2);
-       test(0, -99, 0, 3);
-       test(1, 1, -99, 1);
-       test(1, 1, -99, 2);
-       test(1, 1, -99, 3);
-       test(1, 0, -99, 1);
-       test(1, 0, -99, 2);
-       test(1, 0, -99, 3);
+    test(0, -99, 1, 1);
+    test(0, -99, 1, 2);
+    test(0, -99, 1, 3);
+    test(0, -99, 0, 1);
+    test(0, -99, 0, 2);
+    test(0, -99, 0, 3);
+    test(1, 1, -99, 1);
+    test(1, 1, -99, 2);
+    test(1, 1, -99, 3);
+    test(1, 0, -99, 1);
+    test(1, 0, -99, 2);
+    test(1, 0, -99, 3);
+
+    b = 5;
+    a = b ? 5 : 6;
+    print(ftos(a), "\n");
+    b ? a = 9 : a = 10;
+    print(ftos(a), "\n");
+    !b ? a = 9 : a = 10;
+    print(ftos(a), "\n");
 
-       b = 5;
-       a = b ? 5 : 6;
-       print(ftos(a), "\n");
-       b ? a = 9 : a = 10;
-       print(ftos(a), "\n");
-       !b ? a = 9 : a = 10;
-       print(ftos(a), "\n");
+    ((1) ? select_a : select_b) (1);
+    ((0) ? select_a : select_b) (0);
 }
index cd8f330543fb15e919954cdcea0835a63b9592a4..ae88aaaf3291287b3a4a96059309892c7932a5a5 100644 (file)
@@ -17,3 +17,5 @@ M: 0 not met
 M: 5
 M: 9
 M: 10
+M: select_a: 1
+M: select_b: 0