Chromium Code Reviews| Index: tests/corelib/error_stack_trace_test.dart |
| diff --git a/tests/corelib/error_stack_trace_test.dart b/tests/corelib/error_stack_trace_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c7bcf77f8d30ce456a655de1fbd8a7e22fd25429 |
| --- /dev/null |
| +++ b/tests/corelib/error_stack_trace_test.dart |
| @@ -0,0 +1,75 @@ |
| +// Copyright (c) 2013, 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. |
| + |
| +import "package:expect/expect.dart"; |
| + |
| +argument() { |
|
Lasse Reichstein Nielsen
2013/07/03 13:06:13
void return type, please. Makes it more readable.
floitsch
2013/07/03 14:50:20
Done.
|
| + throw new ArgumentError(499); |
| +} |
| + |
| +noSuchMethod() { |
| + (499).doesNotExist(); |
| +} |
| + |
| +nullThrown() { |
| + throw null; |
| +} |
| + |
| +range() { |
| + throw new RangeError.range(0, 1, 2); |
| +} |
| + |
| +fallThrough() { |
| + nested() {} |
| + |
| + switch (5) { |
| + case 5: |
| + nested(); |
| + default: |
| + Expect.fail("Should not reach"); |
| + } |
| +} |
| + |
| +abstract class A { |
| + foo(); |
| +} |
| + |
| +abstractClassInstantiation() { |
| + new A(); |
| +} |
| + |
| +unsupported() { |
| + throw new UnsupportedError("unsupported"); |
| +} |
| + |
| +unimplemented() { |
| + throw new UnimplementedError("unimplemented"); |
| +} |
| + |
| +state() { |
| + return [1, 2].single; |
| +} |
| + |
| +type() { |
| + return 1 + "string"; |
| +} |
| + |
| +main() { |
| + List<Function> errorFunctions = [ |
| + argument, noSuchMethod, nullThrown, range, fallThrough, |
| + abstractClassInstantiation, unsupported, unimplemented, state, |
| + type ]; |
| + |
| + for (var f in errorFunctions) { |
| + bool hasThrown = false; |
| + try { |
| + f(); |
| + } catch(e) { |
| + hasThrown = true; |
| + Expect.isTrue(e.stackTrace is StackTrace, |
| + "$e doesn't have a non-null stack trace"); |
| + } |
| + Expect.isTrue(hasThrown); |
| + } |
| +} |