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

Side by Side Diff: tests/kernel/unsorted/conditional_test.dart

Issue 2451623006: Reland "Merge more Kernel infrastructure from kernel_sdk SDK fork." (Closed)
Patch Set: Fix Created 4 years, 1 month 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
(Empty)
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
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 // Tests of conditional expressions and statements and negation.
6
7 import 'expect.dart';
8
9 mkTrue() => true;
10 mkFalse() => false;
11
12 check(b) {
13 Expect.isTrue(b);
14 return b;
15 }
16
17 main() {
18 // Check that ?: gets the right answer.
19 Expect.isTrue((mkTrue() ? 0 : 1) == 0);
20 Expect.isTrue((mkFalse() ? 0 : 1) == 1);
21 // Check that it doesn't evaluate all subexpressions.
22 mkTrue() ? Expect.isTrue(true) : Expect.isTrue(false);
23 mkFalse() ? Expect.isTrue(false) : Expect.isTrue(true);
24
25 // Check that && and || get the right answers.
26 Expect.isTrue(mkTrue() && mkTrue());
27 Expect.isTrue(!(mkTrue() && mkFalse()));
28 Expect.isTrue(!(mkFalse() && mkTrue()));
29 Expect.isTrue(!(mkFalse() && mkFalse()));
30 Expect.isTrue(mkTrue() || mkTrue());
31 Expect.isTrue(mkTrue() || mkFalse());
32 Expect.isTrue(mkFalse() || mkTrue());
33 Expect.isTrue(!(mkFalse() || mkFalse()));
34
35 // Check that they don't evaluate both subexpressions.
36 mkTrue() && check(true);
37 mkFalse() && check(false);
38 mkTrue() || check(true);
39 mkFalse() || check(true);
40
41 // Check that if works.
42 if (mkTrue()) {
43 Expect.isTrue(true);
44 } else {
45 Expect.isTrue(false);
46 }
47 if (mkFalse()) {
48 Expect.isTrue(false);
49 } else {
50 Expect.isTrue(true);
51 }
52 if (!mkTrue()) {
53 Expect.isTrue(false);
54 } else {
55 Expect.isTrue(true);
56 }
57 if (!mkFalse()) {
58 Expect.isTrue(true);
59 } else {
60 Expect.isTrue(false);
61 }
62
63 // Check that ?:, &&, and || work for control flow.
64 if (mkTrue() ? mkTrue() : mkFalse()) {
65 Expect.isTrue(true);
66 } else {
67 Expect.isTrue(false);
68 }
69 if (mkTrue() ? mkFalse() : mkTrue()) {
70 Expect.isTrue(false);
71 } else {
72 Expect.isTrue(true);
73 }
74 if (mkFalse() ? mkTrue() : mkFalse()) {
75 Expect.isTrue(false);
76 } else {
77 Expect.isTrue(true);
78 }
79 if (mkFalse() ? mkFalse() : mkTrue()) {
80 Expect.isTrue(true);
81 } else {
82 Expect.isTrue(false);
83 }
84 if (mkTrue() && mkTrue()) {
85 Expect.isTrue(true);
86 } else {
87 Expect.isTrue(false);
88 }
89 if (mkTrue() && mkFalse()) {
90 Expect.isTrue(false);
91 } else {
92 Expect.isTrue(true);
93 }
94 if (mkFalse() && mkTrue()) {
95 Expect.isTrue(false);
96 } else {
97 Expect.isTrue(true);
98 }
99 if (mkFalse() && mkFalse()) {
100 Expect.isTrue(false);
101 } else {
102 Expect.isTrue(true);
103 }
104 if (mkTrue() || mkTrue()) {
105 Expect.isTrue(true);
106 } else {
107 Expect.isTrue(false);
108 }
109 if (mkTrue() || mkFalse()) {
110 Expect.isTrue(true);
111 } else {
112 Expect.isTrue(false);
113 }
114 if (mkFalse() || mkTrue()) {
115 Expect.isTrue(true);
116 } else {
117 Expect.isTrue(false);
118 }
119 if (mkFalse() || mkFalse()) {
120 Expect.isTrue(false);
121 } else {
122 Expect.isTrue(true);
123 }
124
125 // Test empty else branches.
126 if (mkTrue()) {
127 Expect.isTrue(true);
128 }
129 if (mkFalse()) {
130 Expect.isTrue(false);
131 }
132
133 var x = 0;
134 if (mkTrue()) {
135 x = 1;
136 }
137 Expect.isTrue(x == 1);
138 if (mkFalse()) {
139 x = 2;
140 }
141 Expect.isTrue(x == 1);
142 }
OLDNEW
« no previous file with comments | « tests/kernel/unsorted/closures_test.dart ('k') | tests/kernel/unsorted/constant_evaluator_regression_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698