OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
Mads Ager (google)
2011/10/27 07:07:47
This file should be moved to tests/standalone/Test
William Hesse
2011/10/27 15:04:35
Done.
| |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 #import("status_expressions_lib.dart"); | |
6 | |
7 main() { | |
Mads Ager (google)
2011/10/27 07:07:47
I would move main to the bottom of the file. I bel
William Hesse
2011/10/27 15:04:35
Done.
| |
8 TestStatusExpressions.doTests(); | |
9 } | |
10 | |
11 class TestStatusExpressions { | |
12 static void doTests() { | |
13 test_1(); | |
kasperl
2011/10/27 10:43:31
camelCase -- no underscores
| |
14 test_2(); | |
15 test_3(); | |
16 test_4(); | |
17 test_5(); | |
18 test_6(); | |
19 } | |
20 | |
21 static void test_1() { | |
22 Tokenizer tokenizer = new Tokenizer( | |
23 @" $mode == debug && ($arch == chromium || $arch == dartc) "); | |
24 tokenizer.tokenize(); | |
25 Expect.listEquals(tokenizer.tokens, | |
26 ["\$", "mode", "==", "debug", "&&", "(", "\$", "arch", "==", | |
27 "chromium", "||", "\$", "arch", "==", "dartc", ")"]); | |
28 ExpressionParser parser = | |
29 new ExpressionParser(new Scanner(tokenizer.tokens)); | |
30 BooleanExpression ast = parser.parseBooleanExpression(); | |
31 Expect.equals( | |
32 @"(($mode == debug) && (($arch == chromium) || ($arch == dartc)))", | |
33 ast.toString()); | |
Mads Ager (google)
2011/10/27 07:07:47
For all of the ASTs that we generate we should cal
William Hesse
2011/10/27 15:04:35
Done.
| |
34 } | |
35 | |
36 static void test_2() { | |
37 Tokenizer tokenizer = new Tokenizer( | |
38 @"($arch == dartc || $arch == chromium) && $mode == release"); | |
39 tokenizer.tokenize(); | |
40 Expect.listEquals(tokenizer.tokens, | |
41 ["(", "\$", "arch", "==", "dartc", "||", "\$", "arch", "==", "chromium", | |
42 ")", "&&", "\$", "mode", "==", "release"]); | |
43 } | |
44 | |
45 static void test_3() { | |
46 var thrown; | |
47 Tokenizer tokenizer = new Tokenizer( | |
48 @" $mode == debug && ($arch == chromium || *$arch == dartc) "); | |
Mads Ager (google)
2011/10/27 07:07:47
Extract this string into a variable and use it in
William Hesse
2011/10/27 15:04:35
Done.
| |
49 try { | |
50 tokenizer.tokenize(); | |
51 } catch (Exception e) { | |
52 thrown = e; | |
53 } | |
54 Expect.equals( | |
55 @"Syntax error in ' $mode == debug && ($arch == chromium || *$arch == " + | |
56 @"dartc) '", | |
57 thrown.toString()); | |
58 } | |
59 | |
60 static void test_4() { | |
61 var thrown; | |
62 Tokenizer tokenizer = new Tokenizer( | |
63 @"($arch == (-dartc || $arch == chromium) && $mode == release"); | |
Mads Ager (google)
2011/10/27 07:07:47
Same here.
William Hesse
2011/10/27 15:04:35
Done.
| |
64 try { | |
65 tokenizer.tokenize(); | |
66 } catch (Exception e) { | |
67 thrown = e; | |
68 } | |
69 Expect.equals( | |
70 @"Syntax error in '($arch == (-dartc || $arch == chromium) && " + | |
71 @"$mode == release'", | |
72 thrown.toString()); | |
73 } | |
74 | |
75 static void test_5() { | |
76 Tokenizer tokenizer = new Tokenizer( | |
77 @"Skip , Pass if $arch == dartc, Fail || Timeout if " + | |
78 @"$arch == chromium && $mode == release"); | |
79 tokenizer.tokenize(); | |
80 ExpressionParser parser = | |
81 new ExpressionParser(new Scanner(tokenizer.tokens)); | |
82 SetExpression ast = parser.parseSetExpression(); | |
83 Expect.equals( | |
84 @"((Skip || (Pass if ($arch == dartc))) || ((Fail || Timeout) " + | |
85 @"if (($arch == chromium) && ($mode == release))))", | |
86 ast.toString()); | |
87 } | |
88 | |
89 static void test_6() { | |
90 Tokenizer tokenizer = new Tokenizer( | |
91 @" $arch == ia32 && $checked || $mode == release "); | |
92 tokenizer.tokenize(); | |
93 ExpressionParser parser = | |
94 new ExpressionParser(new Scanner(tokenizer.tokens)); | |
95 BooleanExpression ast = parser.parseBooleanExpression(); | |
96 Expect.equals( | |
97 @"((($arch == ia32) && (bool $checked)) || ($mode == release))", | |
98 ast.toString()); | |
99 } | |
100 } | |
OLD | NEW |