From: Wolfgang Bumiller Date: Fri, 18 Jan 2013 14:22:53 +0000 (+0100) Subject: adding testcase for various parentheses and ternary combinations which to test the... X-Git-Tag: before-library~226 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=62af1659ebf09732d6cadd7a2624a82303477046;p=xonotic%2Fgmqcc.git adding testcase for various parentheses and ternary combinations which to test the newly refactored code; includes some cases not hit by xonotic --- diff --git a/tests/parens.qc b/tests/parens.qc new file mode 100644 index 0000000..1ae09a0 --- /dev/null +++ b/tests/parens.qc @@ -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")); +} diff --git a/tests/parens.tmpl b/tests/parens.tmpl new file mode 100644 index 0000000..504082f --- /dev/null +++ b/tests/parens.tmpl @@ -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?