Chromium Code Reviews| Index: tests/language/src/Constructor7Test.dart |
| diff --git a/tests/language/src/Constructor7Test.dart b/tests/language/src/Constructor7Test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..25468f80f15801870f59be91a1cf76e384c8e64e |
| --- /dev/null |
| +++ b/tests/language/src/Constructor7Test.dart |
| @@ -0,0 +1,62 @@ |
| +// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| +// Dart test program for constructors and initializers. |
| + |
| +// Expect the initializer expressions E(i) to be evaluated |
| +// in the order 1, 2, 3, ... |
| +// This test has no inheritance but many fields to flush out issues with |
| +// ordering of fields. |
| + |
| +String trace = ""; |
|
kasperl
2012/03/15 10:31:14
Replace this with a StringBuffer or use trace = tr
|
| + |
| +int E(int i) { |
| + trace += "$i-"; |
| + return i; |
| +} |
| + |
| +class A { |
| + var j; // Names are in reverse order to detect sorting by name... |
| + var i = 0; // Initialized odd/even to detect these inits affecting order. |
| + var h; |
| + var g = 0; |
| + var f; |
| + var e = 0; |
| + var d; |
| + var c = 0; |
| + var b; |
| + var a = 0; |
| + |
| + A() |
| + : a = E(1), // Initializations in different order to decls. Ascending... |
| + b = E(2), |
| + c = E(3), |
| + |
| + f = E(4), // Descending to be perverse... |
| + e = E(5), |
| + d = E(6), |
| + |
| + g = E(7), // Ascending again. |
| + h = E(8), |
| + i = E(9), |
| + j = E(10) { |
| + |
| + Expect.equals(1, a); |
| + Expect.equals(2, b); |
| + Expect.equals(3, c); |
| + |
| + Expect.equals(4, f); |
| + Expect.equals(5, e); |
| + Expect.equals(6, d); |
| + |
| + Expect.equals(7, g); |
| + Expect.equals(8, h); |
| + Expect.equals(9, i); |
| + Expect.equals(10, j); |
| + } |
| +} |
| + |
| +main() { |
| + var x = new A(); |
| + Expect.equals('1-2-3-4-5-6-7-8-9-10-', trace); |
| +} |