mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2024-11-23 20:33:05 +00:00
Fix testsuite. Also added an additional test to the ternary stuff
This commit is contained in:
parent
c198c23df1
commit
60807b677c
5 changed files with 66 additions and 29 deletions
28
test.c
28
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);
|
||||
|
|
|
@ -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");
|
||||
|
||||
};
|
||||
|
|
|
@ -11,3 +11,5 @@ M: 0
|
|||
M: 5
|
||||
M: 9
|
||||
M: 10
|
||||
M: select_a: 1
|
||||
M: select_b: 0
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -17,3 +17,5 @@ M: 0 not met
|
|||
M: 5
|
||||
M: 9
|
||||
M: 10
|
||||
M: select_a: 1
|
||||
M: select_b: 0
|
||||
|
|
Loading…
Reference in a new issue