adding testcase for various parentheses and ternary combinations which to test the newly refactored code; includes some cases not hit by xonotic

This commit is contained in:
Wolfgang Bumiller 2013-01-18 15:22:53 +01:00
parent dca9dd56d1
commit 62af1659eb
2 changed files with 66 additions and 0 deletions

44
tests/parens.qc Normal file
View file

@ -0,0 +1,44 @@
void(string...) print = #1;
string(float) ftos = #2;
float arr[2];
string gets() { return "S\n"; }
void main(float x) {
string s;
s = gets(); // 0 params
print(s); // 1 param
print("A ", "B\n"); // 2 params
print("A ", "B ", "C\n"); // more params
print(gets()); // 0-param call in call
print(gets(), "next\n"); // 0-param call and another
print("-> ", gets()); // param + 0-param call
print(ftos(x), "\n"); // param-call + another
print(x ? "xA\n" : "xB\n"); // ternary in PAREN_FUNC
print(!x ? "xA\n" : "xB\n"); // ternary in PAREN_FUNC
// PAREN_INDEX
arr[0] = 10;
arr[1] = 11;
// PAREN_TERNARY + PAREN_INDEX
arr[x ? 0 : 1] += 100;
print(ftos(arr[0]), "\n");
print(ftos(arr[1]), "\n");
print(ftos(arr[x ? 0 : 1]), "\n");
print(ftos(arr[!x ? 0 : 1]), "\n");
// loops with comma operators
float i, j;
for (i = 0, j = 0; i < x; ++i)
print("-");
print("\n");
// if + PAREN_TERNARY2
if (x ? 1 : 0)
print("OK\n");
if (x ? 0 : 1)
print("NO\n");
// PAREN_FUNC in PAREN_EXPR
print(("Is this wrong ", "now?\n"));
}

22
tests/parens.tmpl Normal file
View file

@ -0,0 +1,22 @@
I: parens.qc
D: parentheses, SYA stuff
T: -execute
C: -std=fteqcc
E: -float 4
M: S
M: A B
M: A B C
M: S
M: S
M: next
M: -> S
M: 4
M: xA
M: xB
M: 110
M: 11
M: 110
M: 11
M: ----
M: OK
M: now?