Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1144)

Side by Side Diff: tests/standalone/status_expression_test.dart

Issue 2913963002: Add negation to single-identifier tests in status files. (Closed)
Patch Set: Document the isIdentifier optimization. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 import "package:expect/expect.dart"; 5 import "package:expect/expect.dart";
6 6
7 import "../../tools/testing/dart/environment.dart"; 7 import "../../tools/testing/dart/environment.dart";
8 import "../../tools/testing/dart/status_expression.dart"; 8 import "../../tools/testing/dart/status_expression.dart";
9 9
10 class TestEnvironment implements Environment { 10 class TestEnvironment implements Environment {
11 final Map<String, String> _values; 11 final Map<String, String> _values;
12 12
13 TestEnvironment(this._values); 13 TestEnvironment(this._values);
14 14
15 /// Looks up the value of the variable with [name]. 15 /// Looks up the value of the variable with [name].
16 String lookUp(String name) => _values[name]; 16 String lookUp(String name) => _values[name];
17 17
18 operator []=(String key, String value) => _values[key] = value; 18 operator []=(String key, String value) => _values[key] = value;
19 } 19 }
20 20
21 main() { 21 main() {
22 testExpression(); 22 testExpression();
23 testSyntaxError(); 23 testSyntaxError();
24 testBoolean(); 24 testBoolean();
25 testNotBoolean();
25 testNotEqual(); 26 testNotEqual();
26 } 27 }
27 28
28 void testExpression() { 29 void testExpression() {
29 var expression = Expression 30 var expression = Expression
30 .parse(r" $mode == debug && ($arch == chromium || $arch == dartc) "); 31 .parse(r" $mode == debug && ($arch == chromium || $arch == dartc) ");
31 Expect.equals( 32 Expect.equals(
32 r"(($mode == debug) && (($arch == chromium) || ($arch == dartc)))", 33 r"(($mode == debug) && (($arch == chromium) || ($arch == dartc)))",
33 expression.toString()); 34 expression.toString());
34 35
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 environment["checked"] = "false"; 70 environment["checked"] = "false";
70 Expect.isTrue(expression.evaluate(environment)); 71 Expect.isTrue(expression.evaluate(environment));
71 environment["mode"] = "debug"; 72 environment["mode"] = "debug";
72 Expect.isFalse(expression.evaluate(environment)); 73 Expect.isFalse(expression.evaluate(environment));
73 environment["arch"] = "arm"; 74 environment["arch"] = "arm";
74 Expect.isFalse(expression.evaluate(environment)); 75 Expect.isFalse(expression.evaluate(environment));
75 environment["checked"] = "true"; 76 environment["checked"] = "true";
76 Expect.isFalse(expression.evaluate(environment)); 77 Expect.isFalse(expression.evaluate(environment));
77 } 78 }
78 79
80 void testNotBoolean() {
81 var expression =
82 Expression.parse(r" $arch == ia32 && ! $unchecked || $mode == release ");
83 Expect.equals(
84 r"((($arch == ia32) && (bool ! $unchecked)) || ($mode == release))",
85 expression.toString());
86
87 var environment = <String, dynamic>{
Bob Nystrom 2017/06/01 23:07:46 This map needs to be wrapped in new TestEnvironmen
Lasse Reichstein Nielsen 2017/06/07 08:51:48 Done.
88 "arch": "ia32",
89 "unchecked": false,
Bob Nystrom 2017/06/01 23:07:45 Nit: Would you mind using "checked" for this? It
Lasse Reichstein Nielsen 2017/06/07 08:51:48 Sure. This was just the "minimal diff" from the te
90 "mode": "debug"
91 };
92
93 Expect.isTrue(expression.evaluate(environment));
94 environment["mode"] = "release";
95 Expect.isTrue(expression.evaluate(environment));
96 environment["unchecked"] = true;
Bob Nystrom 2017/06/01 23:07:45 "true" and "false" need to be explicitly stringifi
Lasse Reichstein Nielsen 2017/06/07 08:51:48 Done.
97 Expect.isTrue(expression.evaluate(environment));
98 environment["mode"] = "debug";
99 Expect.isFalse(expression.evaluate(environment));
100 environment["arch"] = "arm";
101 Expect.isFalse(expression.evaluate(environment));
102 environment["unchecked"] = false;
103 Expect.isFalse(expression.evaluate(environment));
104 }
105
79 void testNotEqual() { 106 void testNotEqual() {
80 // Test the != operator. 107 // Test the != operator.
81 var expression = Expression.parse(r"$compiler == dart2js && $runtime != ie9"); 108 var expression = Expression.parse(r"$compiler == dart2js && $runtime != ie9");
82 Expect.equals( 109 Expect.equals(
83 r"(($compiler == dart2js) && ($runtime != ie9))", expression.toString()); 110 r"(($compiler == dart2js) && ($runtime != ie9))", expression.toString());
84 111
85 // Test BooleanExpression.evaluate(). 112 // Test BooleanExpression.evaluate().
86 var environment = new TestEnvironment({ 113 var environment = new TestEnvironment({
87 "compiler": "none", 114 "compiler": "none",
88 "runtime": "ie9", 115 "runtime": "ie9",
89 }); 116 });
90 117
91 Expect.isFalse(expression.evaluate(environment)); 118 Expect.isFalse(expression.evaluate(environment));
92 environment["runtime"] = "chrome"; 119 environment["runtime"] = "chrome";
93 Expect.isFalse(expression.evaluate(environment)); 120 Expect.isFalse(expression.evaluate(environment));
94 121
95 environment["compiler"] = "dart2js"; 122 environment["compiler"] = "dart2js";
96 environment["runtime"] = "ie9"; 123 environment["runtime"] = "ie9";
97 Expect.isFalse(expression.evaluate(environment)); 124 Expect.isFalse(expression.evaluate(environment));
98 environment["runtime"] = "chrome"; 125 environment["runtime"] = "chrome";
99 Expect.isTrue(expression.evaluate(environment)); 126 Expect.isTrue(expression.evaluate(environment));
100 } 127 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698