| 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 |