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

Side by Side Diff: runtime/vm/source_report_test.cc

Issue 2974233002: VM: Re-format to use at most one newline between functions (Closed)
Patch Set: Rebase and merge Created 3 years, 5 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
« no previous file with comments | « runtime/vm/source_report.cc ('k') | runtime/vm/stack_frame.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/source_report.h" 5 #include "vm/source_report.h"
6 #include "vm/dart_api_impl.h" 6 #include "vm/dart_api_impl.h"
7 #include "vm/unit_test.h" 7 #include "vm/unit_test.h"
8 8
9 namespace dart { 9 namespace dart {
10 10
11 #ifndef PRODUCT 11 #ifndef PRODUCT
12 12
13 static RawObject* ExecuteScript(const char* script) { 13 static RawObject* ExecuteScript(const char* script) {
14 Dart_Handle h_lib = TestCase::LoadTestScript(script, NULL); 14 Dart_Handle h_lib = TestCase::LoadTestScript(script, NULL);
15 EXPECT_VALID(h_lib); 15 EXPECT_VALID(h_lib);
16 Library& lib = Library::Handle(); 16 Library& lib = Library::Handle();
17 lib ^= Api::UnwrapHandle(h_lib); 17 lib ^= Api::UnwrapHandle(h_lib);
18 EXPECT(!lib.IsNull()); 18 EXPECT(!lib.IsNull());
19 Dart_Handle result = Dart_Invoke(h_lib, NewString("main"), 0, NULL); 19 Dart_Handle result = Dart_Invoke(h_lib, NewString("main"), 0, NULL);
20 EXPECT_VALID(result); 20 EXPECT_VALID(result);
21 return Api::UnwrapHandle(h_lib); 21 return Api::UnwrapHandle(h_lib);
22 } 22 }
23 23
24
25 TEST_CASE(SourceReport_Coverage_NoCalls) { 24 TEST_CASE(SourceReport_Coverage_NoCalls) {
26 char buffer[1024]; 25 char buffer[1024];
27 const char* kScript = 26 const char* kScript =
28 "main() {\n" 27 "main() {\n"
29 "}"; 28 "}";
30 29
31 Library& lib = Library::Handle(); 30 Library& lib = Library::Handle();
32 lib ^= ExecuteScript(kScript); 31 lib ^= ExecuteScript(kScript);
33 ASSERT(!lib.IsNull()); 32 ASSERT(!lib.IsNull());
34 const Script& script = 33 const Script& script =
35 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib")))); 34 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
36 35
37 SourceReport report(SourceReport::kCoverage); 36 SourceReport report(SourceReport::kCoverage);
38 JSONStream js; 37 JSONStream js;
39 report.PrintJSON(&js, script); 38 report.PrintJSON(&js, script);
40 ElideJSONSubstring("libraries", js.ToCString(), buffer); 39 ElideJSONSubstring("libraries", js.ToCString(), buffer);
41 EXPECT_STREQ( 40 EXPECT_STREQ(
42 "{\"type\":\"SourceReport\",\"ranges\":" 41 "{\"type\":\"SourceReport\",\"ranges\":"
43 42
44 // One compiled range, no hits or misses. 43 // One compiled range, no hits or misses.
45 "[{\"scriptIndex\":0,\"startPos\":0,\"endPos\":5,\"compiled\":true," 44 "[{\"scriptIndex\":0,\"startPos\":0,\"endPos\":5,\"compiled\":true,"
46 "\"coverage\":{\"hits\":[],\"misses\":[]}}]," 45 "\"coverage\":{\"hits\":[],\"misses\":[]}}],"
47 46
48 // One script in the script table. 47 // One script in the script table.
49 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 48 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
50 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 49 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
51 buffer); 50 buffer);
52 } 51 }
53 52
54
55 TEST_CASE(SourceReport_Coverage_SimpleCall) { 53 TEST_CASE(SourceReport_Coverage_SimpleCall) {
56 char buffer[1024]; 54 char buffer[1024];
57 const char* kScript = 55 const char* kScript =
58 "helper0() {}\n" 56 "helper0() {}\n"
59 "helper1() {}\n" 57 "helper1() {}\n"
60 "main() {\n" 58 "main() {\n"
61 " if (true) {\n" 59 " if (true) {\n"
62 " helper0();\n" 60 " helper0();\n"
63 " } else {\n" 61 " } else {\n"
64 " helper1();\n" 62 " helper1();\n"
(...skipping 24 matching lines...) Expand all
89 // One range with a hit and a miss (main). 87 // One range with a hit and a miss (main).
90 "{\"scriptIndex\":0,\"startPos\":12,\"endPos\":39,\"compiled\":true," 88 "{\"scriptIndex\":0,\"startPos\":12,\"endPos\":39,\"compiled\":true,"
91 "\"coverage\":{\"hits\":[23],\"misses\":[32]}}]," 89 "\"coverage\":{\"hits\":[23],\"misses\":[32]}}],"
92 90
93 // Only one script in the script table. 91 // Only one script in the script table.
94 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 92 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
95 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 93 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
96 buffer); 94 buffer);
97 } 95 }
98 96
99
100 TEST_CASE(SourceReport_Coverage_ForceCompile) { 97 TEST_CASE(SourceReport_Coverage_ForceCompile) {
101 char buffer[1024]; 98 char buffer[1024];
102 const char* kScript = 99 const char* kScript =
103 "helper0() {}\n" 100 "helper0() {}\n"
104 "helper1() {}\n" 101 "helper1() {}\n"
105 "main() {\n" 102 "main() {\n"
106 " if (true) {\n" 103 " if (true) {\n"
107 " helper0();\n" 104 " helper0();\n"
108 " } else {\n" 105 " } else {\n"
109 " helper1();\n" 106 " helper1();\n"
(...skipping 25 matching lines...) Expand all
135 // One range with a hit and a miss (main). 132 // One range with a hit and a miss (main).
136 "{\"scriptIndex\":0,\"startPos\":12,\"endPos\":39,\"compiled\":true," 133 "{\"scriptIndex\":0,\"startPos\":12,\"endPos\":39,\"compiled\":true,"
137 "\"coverage\":{\"hits\":[23],\"misses\":[32]}}]," 134 "\"coverage\":{\"hits\":[23],\"misses\":[32]}}],"
138 135
139 // Only one script in the script table. 136 // Only one script in the script table.
140 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 137 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
141 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 138 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
142 buffer); 139 buffer);
143 } 140 }
144 141
145
146 TEST_CASE(SourceReport_Coverage_UnusedClass_NoForceCompile) { 142 TEST_CASE(SourceReport_Coverage_UnusedClass_NoForceCompile) {
147 char buffer[1024]; 143 char buffer[1024];
148 const char* kScript = 144 const char* kScript =
149 "helper0() {}\n" 145 "helper0() {}\n"
150 "class Unused {\n" 146 "class Unused {\n"
151 " helper1() { helper0(); }\n" 147 " helper1() { helper0(); }\n"
152 "}\n" 148 "}\n"
153 "main() {\n" 149 "main() {\n"
154 " helper0();\n" 150 " helper0();\n"
155 "}"; 151 "}";
(...skipping 22 matching lines...) Expand all
178 // One range with a hit (main). 174 // One range with a hit (main).
179 "{\"scriptIndex\":0,\"startPos\":22,\"endPos\":32,\"compiled\":true," 175 "{\"scriptIndex\":0,\"startPos\":22,\"endPos\":32,\"compiled\":true,"
180 "\"coverage\":{\"hits\":[27],\"misses\":[]}}]," 176 "\"coverage\":{\"hits\":[27],\"misses\":[]}}],"
181 177
182 // Only one script in the script table. 178 // Only one script in the script table.
183 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 179 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
184 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 180 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
185 buffer); 181 buffer);
186 } 182 }
187 183
188
189 TEST_CASE(SourceReport_Coverage_UnusedClass_ForceCompile) { 184 TEST_CASE(SourceReport_Coverage_UnusedClass_ForceCompile) {
190 char buffer[1024]; 185 char buffer[1024];
191 const char* kScript = 186 const char* kScript =
192 "helper0() {}\n" 187 "helper0() {}\n"
193 "class Unused {\n" 188 "class Unused {\n"
194 " helper1() { helper0(); }\n" 189 " helper1() { helper0(); }\n"
195 "}\n" 190 "}\n"
196 "main() {\n" 191 "main() {\n"
197 " helper0();\n" 192 " helper0();\n"
198 "}"; 193 "}";
(...skipping 23 matching lines...) Expand all
222 // One range with a hit (main). 217 // One range with a hit (main).
223 "{\"scriptIndex\":0,\"startPos\":22,\"endPos\":32,\"compiled\":true," 218 "{\"scriptIndex\":0,\"startPos\":22,\"endPos\":32,\"compiled\":true,"
224 "\"coverage\":{\"hits\":[27],\"misses\":[]}}]," 219 "\"coverage\":{\"hits\":[27],\"misses\":[]}}],"
225 220
226 // Only one script in the script table. 221 // Only one script in the script table.
227 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 222 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
228 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 223 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
229 buffer); 224 buffer);
230 } 225 }
231 226
232
233 TEST_CASE(SourceReport_Coverage_UnusedClass_ForceCompileError) { 227 TEST_CASE(SourceReport_Coverage_UnusedClass_ForceCompileError) {
234 char buffer[1024]; 228 char buffer[1024];
235 const char* kScript = 229 const char* kScript =
236 "helper0() {}\n" 230 "helper0() {}\n"
237 "class Unused {\n" 231 "class Unused {\n"
238 " helper1() { helper0()+ }\n" // syntax error 232 " helper1() { helper0()+ }\n" // syntax error
239 "}\n" 233 "}\n"
240 "main() {\n" 234 "main() {\n"
241 " helper0();\n" 235 " helper0();\n"
242 "}"; 236 "}";
(...skipping 26 matching lines...) Expand all
269 // One range with a hit (main). 263 // One range with a hit (main).
270 "{\"scriptIndex\":0,\"startPos\":22,\"endPos\":32,\"compiled\":true," 264 "{\"scriptIndex\":0,\"startPos\":22,\"endPos\":32,\"compiled\":true,"
271 "\"coverage\":{\"hits\":[27],\"misses\":[]}}]," 265 "\"coverage\":{\"hits\":[27],\"misses\":[]}}],"
272 266
273 // Only one script in the script table. 267 // Only one script in the script table.
274 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 268 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
275 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 269 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
276 buffer); 270 buffer);
277 } 271 }
278 272
279
280 TEST_CASE(SourceReport_Coverage_NestedFunctions) { 273 TEST_CASE(SourceReport_Coverage_NestedFunctions) {
281 char buffer[1024]; 274 char buffer[1024];
282 const char* kScript = 275 const char* kScript =
283 "helper0() {\n" 276 "helper0() {\n"
284 " nestedHelper0() {}\n" 277 " nestedHelper0() {}\n"
285 " nestedHelper1() {}\n" 278 " nestedHelper1() {}\n"
286 " nestedHelper0();\n" 279 " nestedHelper0();\n"
287 "}\n" 280 "}\n"
288 "helper1() {}\n" 281 "helper1() {}\n"
289 "main() {\n" 282 "main() {\n"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 318
326 // Nested range not compiled (nestedHelper1). 319 // Nested range not compiled (nestedHelper1).
327 "{\"scriptIndex\":0,\"startPos\":11,\"endPos\":15,\"compiled\":false}]," 320 "{\"scriptIndex\":0,\"startPos\":11,\"endPos\":15,\"compiled\":false}],"
328 321
329 // Only one script in the script table. 322 // Only one script in the script table.
330 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 323 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
331 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 324 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
332 buffer); 325 buffer);
333 } 326 }
334 327
335
336 TEST_CASE(SourceReport_Coverage_RestrictedRange) { 328 TEST_CASE(SourceReport_Coverage_RestrictedRange) {
337 char buffer[1024]; 329 char buffer[1024];
338 const char* kScript = 330 const char* kScript =
339 "helper0() {\n" 331 "helper0() {\n"
340 " nestedHelper0() {}\n" 332 " nestedHelper0() {}\n"
341 " nestedHelper1() {}\n" 333 " nestedHelper1() {}\n"
342 " nestedHelper0();\n" 334 " nestedHelper0();\n"
343 "}\n" 335 "}\n"
344 "helper1() {}\n" 336 "helper1() {}\n"
345 "main() {\n" 337 "main() {\n"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 369
378 // Nested range not compiled (nestedHelper1). 370 // Nested range not compiled (nestedHelper1).
379 "{\"scriptIndex\":0,\"startPos\":11,\"endPos\":15,\"compiled\":false}]," 371 "{\"scriptIndex\":0,\"startPos\":11,\"endPos\":15,\"compiled\":false}],"
380 372
381 // Only one script in the script table. 373 // Only one script in the script table.
382 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 374 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
383 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 375 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
384 buffer); 376 buffer);
385 } 377 }
386 378
387
388 TEST_CASE(SourceReport_Coverage_AllFunctions) { 379 TEST_CASE(SourceReport_Coverage_AllFunctions) {
389 const char* kScript = 380 const char* kScript =
390 "helper0() {}\n" 381 "helper0() {}\n"
391 "helper1() {}\n" 382 "helper1() {}\n"
392 "main() {\n" 383 "main() {\n"
393 " if (true) {\n" 384 " if (true) {\n"
394 " helper0();\n" 385 " helper0();\n"
395 " } else {\n" 386 " } else {\n"
396 " helper1();\n" 387 " helper1();\n"
397 " }\n" 388 " }\n"
(...skipping 19 matching lines...) Expand all
417 "\"startPos\":12,\"endPos\":39,\"compiled\":true," 408 "\"startPos\":12,\"endPos\":39,\"compiled\":true,"
418 "\"coverage\":{\"hits\":[23],\"misses\":[32]}", 409 "\"coverage\":{\"hits\":[23],\"misses\":[32]}",
419 result); 410 result);
420 411
421 // More than one script is referenced in the report. 412 // More than one script is referenced in the report.
422 EXPECT_SUBSTRING("\"scriptIndex\":0", result); 413 EXPECT_SUBSTRING("\"scriptIndex\":0", result);
423 EXPECT_SUBSTRING("\"scriptIndex\":1", result); 414 EXPECT_SUBSTRING("\"scriptIndex\":1", result);
424 EXPECT_SUBSTRING("\"scriptIndex\":2", result); 415 EXPECT_SUBSTRING("\"scriptIndex\":2", result);
425 } 416 }
426 417
427
428 TEST_CASE(SourceReport_Coverage_AllFunctions_ForceCompile) { 418 TEST_CASE(SourceReport_Coverage_AllFunctions_ForceCompile) {
429 const char* kScript = 419 const char* kScript =
430 "helper0() {}\n" 420 "helper0() {}\n"
431 "helper1() {}\n" 421 "helper1() {}\n"
432 "main() {\n" 422 "main() {\n"
433 " if (true) {\n" 423 " if (true) {\n"
434 " helper0();\n" 424 " helper0();\n"
435 " } else {\n" 425 " } else {\n"
436 " helper1();\n" 426 " helper1();\n"
437 " }\n" 427 " }\n"
(...skipping 22 matching lines...) Expand all
460 "\"startPos\":12,\"endPos\":39,\"compiled\":true," 450 "\"startPos\":12,\"endPos\":39,\"compiled\":true,"
461 "\"coverage\":{\"hits\":[23],\"misses\":[32]}", 451 "\"coverage\":{\"hits\":[23],\"misses\":[32]}",
462 result); 452 result);
463 453
464 // More than one script is referenced in the report. 454 // More than one script is referenced in the report.
465 EXPECT_SUBSTRING("\"scriptIndex\":0", result); 455 EXPECT_SUBSTRING("\"scriptIndex\":0", result);
466 EXPECT_SUBSTRING("\"scriptIndex\":1", result); 456 EXPECT_SUBSTRING("\"scriptIndex\":1", result);
467 EXPECT_SUBSTRING("\"scriptIndex\":2", result); 457 EXPECT_SUBSTRING("\"scriptIndex\":2", result);
468 } 458 }
469 459
470
471 TEST_CASE(SourceReport_CallSites_SimpleCall) { 460 TEST_CASE(SourceReport_CallSites_SimpleCall) {
472 char buffer[1024]; 461 char buffer[1024];
473 const char* kScript = 462 const char* kScript =
474 "helper0() {}\n" 463 "helper0() {}\n"
475 "helper1() {}\n" 464 "helper1() {}\n"
476 "main() {\n" 465 "main() {\n"
477 " helper0();\n" 466 " helper0();\n"
478 "}"; 467 "}";
479 468
480 Library& lib = Library::Handle(); 469 Library& lib = Library::Handle();
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 "\"_native\":false}," 570 "\"_native\":false},"
582 571
583 "\"count\":1}]}]}]," 572 "\"count\":1}]}]}],"
584 573
585 // One script in the script table. 574 // One script in the script table.
586 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 575 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
587 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 576 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
588 buffer); 577 buffer);
589 } 578 }
590 579
591
592 TEST_CASE(SourceReport_MultipleReports) { 580 TEST_CASE(SourceReport_MultipleReports) {
593 char buffer[1024]; 581 char buffer[1024];
594 const char* kScript = 582 const char* kScript =
595 "helper0() {}\n" 583 "helper0() {}\n"
596 "helper1() {}\n" 584 "helper1() {}\n"
597 "main() {\n" 585 "main() {\n"
598 " helper0();\n" 586 " helper0();\n"
599 "}"; 587 "}";
600 588
601 Library& lib = Library::Handle(); 589 Library& lib = Library::Handle();
(...skipping 28 matching lines...) Expand all
630 "\"_kind\":\"RegularFunction\",\"static\":true,\"const\":false," 618 "\"_kind\":\"RegularFunction\",\"static\":true,\"const\":false,"
631 "\"_intrinsic\":false,\"_native\":false},\"count\":1}]}]," 619 "\"_intrinsic\":false,\"_native\":false},\"count\":1}]}],"
632 "\"coverage\":{\"hits\":[17],\"misses\":[]}}]," 620 "\"coverage\":{\"hits\":[17],\"misses\":[]}}],"
633 621
634 // One script in the script table. 622 // One script in the script table.
635 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 623 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
636 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 624 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
637 buffer); 625 buffer);
638 } 626 }
639 627
640
641 TEST_CASE(SourceReport_PossibleBreakpoints_Simple) { 628 TEST_CASE(SourceReport_PossibleBreakpoints_Simple) {
642 char buffer[1024]; 629 char buffer[1024];
643 const char* kScript = 630 const char* kScript =
644 "helper0() {}\n" 631 "helper0() {}\n"
645 "helper1() {}\n" 632 "helper1() {}\n"
646 "main() {\n" 633 "main() {\n"
647 " if (true) {\n" 634 " if (true) {\n"
648 " helper0();\n" 635 " helper0();\n"
649 " } else {\n" 636 " } else {\n"
650 " helper1();\n" 637 " helper1();\n"
(...skipping 27 matching lines...) Expand all
678 665
679 // Only one script in the script table. 666 // Only one script in the script table.
680 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 667 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
681 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 668 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
682 buffer); 669 buffer);
683 } 670 }
684 671
685 #endif // !PRODUCT 672 #endif // !PRODUCT
686 673
687 } // namespace dart 674 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/source_report.cc ('k') | runtime/vm/stack_frame.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698