// (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"; void func1() { throw new Exception("Test full stacktrace"); } void func2() { func1(); } void func3() { try { func2(); } on Object catch(e, s) { var fullTrace = s.toString(); Expect.isTrue(fullTrace.contains("func1")); Expect.isTrue(fullTrace.contains("func2")); Expect.isTrue(fullTrace.contains("func3")); Expect.isTrue(fullTrace.contains("func4")); Expect.isTrue(fullTrace.contains("func5")); Expect.isTrue(fullTrace.contains("func6")); Expect.isTrue(fullTrace.contains("func7")); Expect.isTrue(fullTrace.contains("main")); rethrow; // This is a rethrow. } } int func4() { func3(); return 1; } int func5() { try { func4(); } on Object catch(e, s) { var fullTrace = s.toString(); Expect.isTrue(fullTrace.contains("func1")); Expect.isTrue(fullTrace.contains("func2")); Expect.isTrue(fullTrace.contains("func3")); Expect.isTrue(fullTrace.contains("func4")); Expect.isTrue(fullTrace.contains("func5")); Expect.isTrue(fullTrace.contains("func6")); Expect.isTrue(fullTrace.contains("func7")); Expect.isTrue(fullTrace.contains("main")); } return 1; } int func6() { func5(); return 1; } int func7() { func6(); return 1; } main() { var i = func7(); Expect.equals(1, i); }