OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library StatusExpressionTest; | 5 library StatusExpressionTest; |
6 | 6 |
7 import "package:expect/expect.dart"; | 7 import "package:expect/expect.dart"; |
8 import "../../tools/testing/dart/status_expression.dart"; | 8 import "../../tools/testing/dart/status_expression.dart"; |
9 | 9 |
10 | 10 |
11 class StatusExpressionTest { | 11 class StatusExpressionTest { |
12 static void testMain() { | 12 static void testMain() { |
13 test1(); | 13 test1(); |
14 test2(); | 14 test2(); |
15 test3(); | 15 test3(); |
16 test4(); | 16 test4(); |
17 test5(); | 17 test5(); |
18 test6(); | 18 test6(); |
| 19 test7(); |
19 } | 20 } |
20 | 21 |
21 static void test1() { | 22 static void test1() { |
22 Tokenizer tokenizer = new Tokenizer( | 23 Tokenizer tokenizer = new Tokenizer( |
23 r" $mode == debug && ($arch == chromium || $arch == dartc) "); | 24 r" $mode == debug && ($arch == chromium || $arch == dartc) "); |
24 tokenizer.tokenize(); | 25 tokenizer.tokenize(); |
25 Expect.listEquals(tokenizer.tokens, | 26 Expect.listEquals(tokenizer.tokens, |
26 ["\$", "mode", "==", "debug", "&&", "(", "\$", "arch", "==", | 27 ["\$", "mode", "==", "debug", "&&", "(", "\$", "arch", "==", |
27 "chromium", "||", "\$", "arch", "==", "dartc", ")"]); | 28 "chromium", "||", "\$", "arch", "==", "dartc", ")"]); |
28 ExpressionParser parser = | 29 ExpressionParser parser = |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 Expect.isTrue(ast.evaluate(environment)); | 139 Expect.isTrue(ast.evaluate(environment)); |
139 environment["checked"] = false; | 140 environment["checked"] = false; |
140 Expect.isTrue(ast.evaluate(environment)); | 141 Expect.isTrue(ast.evaluate(environment)); |
141 environment["mode"] = "debug"; | 142 environment["mode"] = "debug"; |
142 Expect.isFalse(ast.evaluate(environment)); | 143 Expect.isFalse(ast.evaluate(environment)); |
143 environment["arch"] = "arm"; | 144 environment["arch"] = "arm"; |
144 Expect.isFalse(ast.evaluate(environment)); | 145 Expect.isFalse(ast.evaluate(environment)); |
145 environment["checked"] = true; | 146 environment["checked"] = true; |
146 Expect.isFalse(ast.evaluate(environment)); | 147 Expect.isFalse(ast.evaluate(environment)); |
147 } | 148 } |
| 149 |
| 150 static void test7() { |
| 151 // Test the != operator. |
| 152 Tokenizer tokenizer = |
| 153 new Tokenizer(r"$compiler == dart2js && $runtime != ie9"); |
| 154 tokenizer.tokenize(); |
| 155 ExpressionParser parser = |
| 156 new ExpressionParser(new Scanner(tokenizer.tokens)); |
| 157 BooleanExpression ast = parser.parseBooleanExpression(); |
| 158 Expect.equals(r"(($compiler == dart2js) && ($runtime != ie9))", |
| 159 ast.toString()); |
| 160 |
| 161 // Test BooleanExpression.evaluate(). |
| 162 Map environment = new Map(); |
| 163 |
| 164 environment["compiler"] = "none"; |
| 165 environment["runtime"] = "ie9"; |
| 166 Expect.isFalse(ast.evaluate(environment)); |
| 167 environment["runtime"] = "chrome"; |
| 168 Expect.isFalse(ast.evaluate(environment)); |
| 169 |
| 170 environment["compiler"] = "dart2js"; |
| 171 environment["runtime"] = "ie9"; |
| 172 Expect.isFalse(ast.evaluate(environment)); |
| 173 environment["runtime"] = "chrome"; |
| 174 Expect.isTrue(ast.evaluate(environment)); |
| 175 } |
148 } | 176 } |
149 | 177 |
150 main() { | 178 main() { |
151 StatusExpressionTest.testMain(); | 179 StatusExpressionTest.testMain(); |
152 } | 180 } |
OLD | NEW |