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

Side by Side Diff: tests/language/full_stacktrace2_test.dart

Issue 12316116: Add functionality to get full stack trace when exceptions are thrown. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 10 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 void func1() {
2 throw new Exception("Test peanut gallery request for Full stacktrace");
3 }
4 void func2() {
5 func1();
6 }
7 void func3() {
8 try {
9 func2();
10 } on Object catch(e, s) {
11 print(e);
12
13 var full_trace = s.fullStacktrace;
14 Expect.isTrue(full_trace.contains("func1"));
15 Expect.isTrue(full_trace.contains("func2"));
16 Expect.isTrue(full_trace.contains("func3"));
17 Expect.isTrue(full_trace.contains("func4"));
18 Expect.isTrue(full_trace.contains("func5"));
19 Expect.isTrue(full_trace.contains("func6"));
20 Expect.isTrue(full_trace.contains("func7"));
21 Expect.isTrue(full_trace.contains("main"));
22
23 var trace = s.stacktrace;
24 Expect.isTrue(trace.contains("func1"));
25 Expect.isTrue(trace.contains("func2"));
26 Expect.isTrue(trace.contains("func3"));
27
28 Expect.isFalse(trace.contains("func4"));
29 Expect.isFalse(trace.contains("func5"));
30 Expect.isFalse(trace.contains("func6"));
31 Expect.isFalse(trace.contains("func7"));
32 Expect.isFalse(trace.contains("main"));
33
34 print("Full stack trace");
35 print(full_trace);
36
37 print("Stack trace");
38 print(trace);
39
40 throw; // This is a rethrow.
41 }
42 }
43 int func4() {
44 func3();
45 return 1;
46 }
47 int func5() {
48 try {
49 func4();
50 } on Object catch(e, s) {
51
52 var full_trace = s.fullStacktrace;
53 print(full_trace);
54 Expect.isTrue(full_trace.contains("func1"));
55 Expect.isTrue(full_trace.contains("func2"));
56 Expect.isTrue(full_trace.contains("func3"));
57 Expect.isTrue(full_trace.contains("func4"));
58 Expect.isTrue(full_trace.contains("func5"));
59 Expect.isTrue(full_trace.contains("func6"));
60 Expect.isTrue(full_trace.contains("func7"));
61 Expect.isTrue(full_trace.contains("main"));
62
63 var trace = s.stacktrace;
64 Expect.isTrue(trace.contains("func1"));
65 Expect.isTrue(trace.contains("func2"));
66 Expect.isTrue(trace.contains("func3"));
67 Expect.isTrue(trace.contains("func4"));
68 Expect.isTrue(trace.contains("func5"));
69
70 Expect.isFalse(trace.contains("func6"));
71 Expect.isFalse(trace.contains("func7"));
72 Expect.isFalse(trace.contains("main"));
73
74 print("Full stack trace");
75 print(full_trace);
76 print("Stack trace");
77 print(trace);
78 }
79 return 1;
80 }
81 int func6() {
82 func5();
83 return 1;
84 }
85 int func7() {
86 func6();
87 return 1;
88 }
89 main() {
90 var i = func7();
91 Expect.equals(1, i);
92 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698