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

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

Issue 2481873005: clang-format runtime/vm (Closed)
Patch Set: Merge Created 4 years, 1 month 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/spaces.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
(...skipping 13 matching lines...) Expand all
24 24
25 TEST_CASE(SourceReport_Coverage_NoCalls) { 25 TEST_CASE(SourceReport_Coverage_NoCalls) {
26 char buffer[1024]; 26 char buffer[1024];
27 const char* kScript = 27 const char* kScript =
28 "main() {\n" 28 "main() {\n"
29 "}"; 29 "}";
30 30
31 Library& lib = Library::Handle(); 31 Library& lib = Library::Handle();
32 lib ^= ExecuteScript(kScript); 32 lib ^= ExecuteScript(kScript);
33 ASSERT(!lib.IsNull()); 33 ASSERT(!lib.IsNull());
34 const Script& script = Script::Handle(lib.LookupScript( 34 const Script& script =
35 String::Handle(String::New("test-lib")))); 35 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
36 36
37 SourceReport report(SourceReport::kCoverage); 37 SourceReport report(SourceReport::kCoverage);
38 JSONStream js; 38 JSONStream js;
39 report.PrintJSON(&js, script); 39 report.PrintJSON(&js, script);
40 ElideJSONSubstring("libraries", js.ToCString(), buffer); 40 ElideJSONSubstring("libraries", js.ToCString(), buffer);
41 EXPECT_STREQ( 41 EXPECT_STREQ(
42 "{\"type\":\"SourceReport\",\"ranges\":" 42 "{\"type\":\"SourceReport\",\"ranges\":"
43 43
44 // One compiled range, no hits or misses. 44 // One compiled range, no hits or misses.
45 "[{\"scriptIndex\":0,\"startPos\":0,\"endPos\":5,\"compiled\":true," 45 "[{\"scriptIndex\":0,\"startPos\":0,\"endPos\":5,\"compiled\":true,"
(...skipping 15 matching lines...) Expand all
61 " if (true) {\n" 61 " if (true) {\n"
62 " helper0();\n" 62 " helper0();\n"
63 " } else {\n" 63 " } else {\n"
64 " helper1();\n" 64 " helper1();\n"
65 " }\n" 65 " }\n"
66 "}"; 66 "}";
67 67
68 Library& lib = Library::Handle(); 68 Library& lib = Library::Handle();
69 lib ^= ExecuteScript(kScript); 69 lib ^= ExecuteScript(kScript);
70 ASSERT(!lib.IsNull()); 70 ASSERT(!lib.IsNull());
71 const Script& script = Script::Handle(lib.LookupScript( 71 const Script& script =
72 String::Handle(String::New("test-lib")))); 72 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
73 73
74 SourceReport report(SourceReport::kCoverage); 74 SourceReport report(SourceReport::kCoverage);
75 JSONStream js; 75 JSONStream js;
76 report.PrintJSON(&js, script); 76 report.PrintJSON(&js, script);
77 ElideJSONSubstring("classes", js.ToCString(), buffer); 77 ElideJSONSubstring("classes", js.ToCString(), buffer);
78 ElideJSONSubstring("libraries", buffer, buffer); 78 ElideJSONSubstring("libraries", buffer, buffer);
79 EXPECT_STREQ( 79 EXPECT_STREQ(
80 "{\"type\":\"SourceReport\",\"ranges\":[" 80 "{\"type\":\"SourceReport\",\"ranges\":["
81 81
82 // One range compiled with no hits or misses (helper0). 82 // One range compiled with no hits or misses (helper0).
(...skipping 23 matching lines...) Expand all
106 " if (true) {\n" 106 " if (true) {\n"
107 " helper0();\n" 107 " helper0();\n"
108 " } else {\n" 108 " } else {\n"
109 " helper1();\n" 109 " helper1();\n"
110 " }\n" 110 " }\n"
111 "}"; 111 "}";
112 112
113 Library& lib = Library::Handle(); 113 Library& lib = Library::Handle();
114 lib ^= ExecuteScript(kScript); 114 lib ^= ExecuteScript(kScript);
115 ASSERT(!lib.IsNull()); 115 ASSERT(!lib.IsNull());
116 const Script& script = Script::Handle(lib.LookupScript( 116 const Script& script =
117 String::Handle(String::New("test-lib")))); 117 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
118 118
119 SourceReport report(SourceReport::kCoverage, SourceReport::kForceCompile); 119 SourceReport report(SourceReport::kCoverage, SourceReport::kForceCompile);
120 JSONStream js; 120 JSONStream js;
121 report.PrintJSON(&js, script); 121 report.PrintJSON(&js, script);
122 ElideJSONSubstring("classes", js.ToCString(), buffer); 122 ElideJSONSubstring("classes", js.ToCString(), buffer);
123 ElideJSONSubstring("libraries", buffer, buffer); 123 ElideJSONSubstring("libraries", buffer, buffer);
124 EXPECT_STREQ( 124 EXPECT_STREQ(
125 "{\"type\":\"SourceReport\",\"ranges\":[" 125 "{\"type\":\"SourceReport\",\"ranges\":["
126 126
127 // One range compiled with no hits or misses (helper0). 127 // One range compiled with no hits or misses (helper0).
(...skipping 22 matching lines...) Expand all
150 "class Unused {\n" 150 "class Unused {\n"
151 " helper1() { helper0(); }\n" 151 " helper1() { helper0(); }\n"
152 "}\n" 152 "}\n"
153 "main() {\n" 153 "main() {\n"
154 " helper0();\n" 154 " helper0();\n"
155 "}"; 155 "}";
156 156
157 Library& lib = Library::Handle(); 157 Library& lib = Library::Handle();
158 lib ^= ExecuteScript(kScript); 158 lib ^= ExecuteScript(kScript);
159 ASSERT(!lib.IsNull()); 159 ASSERT(!lib.IsNull());
160 const Script& script = Script::Handle(lib.LookupScript( 160 const Script& script =
161 String::Handle(String::New("test-lib")))); 161 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
162 162
163 SourceReport report(SourceReport::kCoverage); 163 SourceReport report(SourceReport::kCoverage);
164 JSONStream js; 164 JSONStream js;
165 report.PrintJSON(&js, script); 165 report.PrintJSON(&js, script);
166 ElideJSONSubstring("classes", js.ToCString(), buffer); 166 ElideJSONSubstring("classes", js.ToCString(), buffer);
167 ElideJSONSubstring("libraries", buffer, buffer); 167 ElideJSONSubstring("libraries", buffer, buffer);
168 EXPECT_STREQ( 168 EXPECT_STREQ(
169 "{\"type\":\"SourceReport\",\"ranges\":[" 169 "{\"type\":\"SourceReport\",\"ranges\":["
170 170
171 // UnusedClass is not compiled. 171 // UnusedClass is not compiled.
(...skipping 21 matching lines...) Expand all
193 "class Unused {\n" 193 "class Unused {\n"
194 " helper1() { helper0(); }\n" 194 " helper1() { helper0(); }\n"
195 "}\n" 195 "}\n"
196 "main() {\n" 196 "main() {\n"
197 " helper0();\n" 197 " helper0();\n"
198 "}"; 198 "}";
199 199
200 Library& lib = Library::Handle(); 200 Library& lib = Library::Handle();
201 lib ^= ExecuteScript(kScript); 201 lib ^= ExecuteScript(kScript);
202 ASSERT(!lib.IsNull()); 202 ASSERT(!lib.IsNull());
203 const Script& script = Script::Handle(lib.LookupScript( 203 const Script& script =
204 String::Handle(String::New("test-lib")))); 204 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
205 205
206 SourceReport report(SourceReport::kCoverage, SourceReport::kForceCompile); 206 SourceReport report(SourceReport::kCoverage, SourceReport::kForceCompile);
207 JSONStream js; 207 JSONStream js;
208 report.PrintJSON(&js, script); 208 report.PrintJSON(&js, script);
209 ElideJSONSubstring("classes", js.ToCString(), buffer); 209 ElideJSONSubstring("classes", js.ToCString(), buffer);
210 ElideJSONSubstring("libraries", buffer, buffer); 210 ElideJSONSubstring("libraries", buffer, buffer);
211 EXPECT_STREQ( 211 EXPECT_STREQ(
212 "{\"type\":\"SourceReport\",\"ranges\":[" 212 "{\"type\":\"SourceReport\",\"ranges\":["
213 213
214 // UnusedClass.helper1 is compiled. 214 // UnusedClass.helper1 is compiled.
(...skipping 22 matching lines...) Expand all
237 "class Unused {\n" 237 "class Unused {\n"
238 " helper1() { helper0()+ }\n" // syntax error 238 " helper1() { helper0()+ }\n" // syntax error
239 "}\n" 239 "}\n"
240 "main() {\n" 240 "main() {\n"
241 " helper0();\n" 241 " helper0();\n"
242 "}"; 242 "}";
243 243
244 Library& lib = Library::Handle(); 244 Library& lib = Library::Handle();
245 lib ^= ExecuteScript(kScript); 245 lib ^= ExecuteScript(kScript);
246 ASSERT(!lib.IsNull()); 246 ASSERT(!lib.IsNull());
247 const Script& script = Script::Handle(lib.LookupScript( 247 const Script& script =
248 String::Handle(String::New("test-lib")))); 248 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
249 249
250 SourceReport report(SourceReport::kCoverage, SourceReport::kForceCompile); 250 SourceReport report(SourceReport::kCoverage, SourceReport::kForceCompile);
251 JSONStream js; 251 JSONStream js;
252 report.PrintJSON(&js, script); 252 report.PrintJSON(&js, script);
253 ElideJSONSubstring("classes", js.ToCString(), buffer); 253 ElideJSONSubstring("classes", js.ToCString(), buffer);
254 ElideJSONSubstring("libraries", buffer, buffer); 254 ElideJSONSubstring("libraries", buffer, buffer);
255 EXPECT_STREQ( 255 EXPECT_STREQ(
256 "{\"type\":\"SourceReport\",\"ranges\":[" 256 "{\"type\":\"SourceReport\",\"ranges\":["
257 257
258 // UnusedClass has a syntax error. 258 // UnusedClass has a syntax error.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 " if (true) {\n" 290 " if (true) {\n"
291 " helper0();\n" 291 " helper0();\n"
292 " } else {\n" 292 " } else {\n"
293 " helper1();\n" 293 " helper1();\n"
294 " }\n" 294 " }\n"
295 "}"; 295 "}";
296 296
297 Library& lib = Library::Handle(); 297 Library& lib = Library::Handle();
298 lib ^= ExecuteScript(kScript); 298 lib ^= ExecuteScript(kScript);
299 ASSERT(!lib.IsNull()); 299 ASSERT(!lib.IsNull());
300 const Script& script = Script::Handle(lib.LookupScript( 300 const Script& script =
301 String::Handle(String::New("test-lib")))); 301 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
302 302
303 SourceReport report(SourceReport::kCoverage); 303 SourceReport report(SourceReport::kCoverage);
304 JSONStream js; 304 JSONStream js;
305 report.PrintJSON(&js, script); 305 report.PrintJSON(&js, script);
306 ElideJSONSubstring("classes", js.ToCString(), buffer); 306 ElideJSONSubstring("classes", js.ToCString(), buffer);
307 ElideJSONSubstring("libraries", buffer, buffer); 307 ElideJSONSubstring("libraries", buffer, buffer);
308 EXPECT_STREQ( 308 EXPECT_STREQ(
309 "{\"type\":\"SourceReport\",\"ranges\":[" 309 "{\"type\":\"SourceReport\",\"ranges\":["
310 310
311 // One range compiled with one hit (helper0). 311 // One range compiled with one hit (helper0).
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 " if (true) {\n" 346 " if (true) {\n"
347 " helper0();\n" 347 " helper0();\n"
348 " } else {\n" 348 " } else {\n"
349 " helper1();\n" 349 " helper1();\n"
350 " }\n" 350 " }\n"
351 "}"; 351 "}";
352 352
353 Library& lib = Library::Handle(); 353 Library& lib = Library::Handle();
354 lib ^= ExecuteScript(kScript); 354 lib ^= ExecuteScript(kScript);
355 ASSERT(!lib.IsNull()); 355 ASSERT(!lib.IsNull());
356 const Script& script = Script::Handle(lib.LookupScript( 356 const Script& script =
357 String::Handle(String::New("test-lib")))); 357 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
358 const Function& helper = Function::Handle( 358 const Function& helper = Function::Handle(
359 lib.LookupLocalFunction(String::Handle(String::New("helper0")))); 359 lib.LookupLocalFunction(String::Handle(String::New("helper0"))));
360 360
361 SourceReport report(SourceReport::kCoverage); 361 SourceReport report(SourceReport::kCoverage);
362 JSONStream js; 362 JSONStream js;
363 // Restrict the report to only helper0 and it's nested functions. 363 // Restrict the report to only helper0 and it's nested functions.
364 report.PrintJSON(&js, script, helper.token_pos(), helper.end_token_pos()); 364 report.PrintJSON(&js, script, helper.token_pos(), helper.end_token_pos());
365 ElideJSONSubstring("classes", js.ToCString(), buffer); 365 ElideJSONSubstring("classes", js.ToCString(), buffer);
366 ElideJSONSubstring("libraries", buffer, buffer); 366 ElideJSONSubstring("libraries", buffer, buffer);
367 EXPECT_STREQ( 367 EXPECT_STREQ(
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 const char* kScript = 473 const char* kScript =
474 "helper0() {}\n" 474 "helper0() {}\n"
475 "helper1() {}\n" 475 "helper1() {}\n"
476 "main() {\n" 476 "main() {\n"
477 " helper0();\n" 477 " helper0();\n"
478 "}"; 478 "}";
479 479
480 Library& lib = Library::Handle(); 480 Library& lib = Library::Handle();
481 lib ^= ExecuteScript(kScript); 481 lib ^= ExecuteScript(kScript);
482 ASSERT(!lib.IsNull()); 482 ASSERT(!lib.IsNull());
483 const Script& script = Script::Handle(lib.LookupScript( 483 const Script& script =
484 String::Handle(String::New("test-lib")))); 484 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
485 485
486 SourceReport report(SourceReport::kCallSites); 486 SourceReport report(SourceReport::kCallSites);
487 JSONStream js; 487 JSONStream js;
488 report.PrintJSON(&js, script); 488 report.PrintJSON(&js, script);
489 ElideJSONSubstring("classes", js.ToCString(), buffer); 489 ElideJSONSubstring("classes", js.ToCString(), buffer);
490 ElideJSONSubstring("libraries", buffer, buffer); 490 ElideJSONSubstring("libraries", buffer, buffer);
491 EXPECT_STREQ( 491 EXPECT_STREQ(
492 "{\"type\":\"SourceReport\",\"ranges\":[" 492 "{\"type\":\"SourceReport\",\"ranges\":["
493 493
494 // One range compiled with no callsites (helper0). 494 // One range compiled with no callsites (helper0).
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 " Common common = new Common();\n" 530 " Common common = new Common();\n"
531 " Uncommon uncommon = new Uncommon();\n" 531 " Uncommon uncommon = new Uncommon();\n"
532 " helper(common);\n" 532 " helper(common);\n"
533 " helper(common);\n" 533 " helper(common);\n"
534 " helper(uncommon);\n" 534 " helper(uncommon);\n"
535 "}"; 535 "}";
536 536
537 Library& lib = Library::Handle(); 537 Library& lib = Library::Handle();
538 lib ^= ExecuteScript(kScript); 538 lib ^= ExecuteScript(kScript);
539 ASSERT(!lib.IsNull()); 539 ASSERT(!lib.IsNull());
540 const Script& script = Script::Handle(lib.LookupScript( 540 const Script& script =
541 String::Handle(String::New("test-lib")))); 541 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
542 const Function& helper = Function::Handle( 542 const Function& helper = Function::Handle(
543 lib.LookupLocalFunction(String::Handle(String::New("helper")))); 543 lib.LookupLocalFunction(String::Handle(String::New("helper"))));
544 544
545 SourceReport report(SourceReport::kCallSites); 545 SourceReport report(SourceReport::kCallSites);
546 JSONStream js; 546 JSONStream js;
547 report.PrintJSON(&js, script, helper.token_pos(), helper.end_token_pos()); 547 report.PrintJSON(&js, script, helper.token_pos(), helper.end_token_pos());
548 ElideJSONSubstring("classes", js.ToCString(), buffer); 548 ElideJSONSubstring("classes", js.ToCString(), buffer);
549 ElideJSONSubstring("libraries", buffer, buffer); 549 ElideJSONSubstring("libraries", buffer, buffer);
550 EXPECT_STREQ( 550 EXPECT_STREQ(
551 "{\"type\":\"SourceReport\",\"ranges\":[" 551 "{\"type\":\"SourceReport\",\"ranges\":["
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 const char* kScript = 594 const char* kScript =
595 "helper0() {}\n" 595 "helper0() {}\n"
596 "helper1() {}\n" 596 "helper1() {}\n"
597 "main() {\n" 597 "main() {\n"
598 " helper0();\n" 598 " helper0();\n"
599 "}"; 599 "}";
600 600
601 Library& lib = Library::Handle(); 601 Library& lib = Library::Handle();
602 lib ^= ExecuteScript(kScript); 602 lib ^= ExecuteScript(kScript);
603 ASSERT(!lib.IsNull()); 603 ASSERT(!lib.IsNull());
604 const Script& script = Script::Handle(lib.LookupScript( 604 const Script& script =
605 String::Handle(String::New("test-lib")))); 605 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
606 606
607 SourceReport report(SourceReport::kCallSites|SourceReport::kCoverage); 607 SourceReport report(SourceReport::kCallSites | SourceReport::kCoverage);
608 JSONStream js; 608 JSONStream js;
609 report.PrintJSON(&js, script); 609 report.PrintJSON(&js, script);
610 ElideJSONSubstring("classes", js.ToCString(), buffer); 610 ElideJSONSubstring("classes", js.ToCString(), buffer);
611 ElideJSONSubstring("libraries", buffer, buffer); 611 ElideJSONSubstring("libraries", buffer, buffer);
612 EXPECT_STREQ( 612 EXPECT_STREQ(
613 "{\"type\":\"SourceReport\",\"ranges\":[" 613 "{\"type\":\"SourceReport\",\"ranges\":["
614 614
615 // One range compiled with no callsites (helper0). 615 // One range compiled with no callsites (helper0).
616 "{\"scriptIndex\":0,\"startPos\":0,\"endPos\":4,\"compiled\":true," 616 "{\"scriptIndex\":0,\"startPos\":0,\"endPos\":4,\"compiled\":true,"
617 "\"callSites\":[]," 617 "\"callSites\":[],"
(...skipping 29 matching lines...) Expand all
647 " if (true) {\n" 647 " if (true) {\n"
648 " helper0();\n" 648 " helper0();\n"
649 " } else {\n" 649 " } else {\n"
650 " helper1();\n" 650 " helper1();\n"
651 " }\n" 651 " }\n"
652 "}"; 652 "}";
653 653
654 Library& lib = Library::Handle(); 654 Library& lib = Library::Handle();
655 lib ^= ExecuteScript(kScript); 655 lib ^= ExecuteScript(kScript);
656 ASSERT(!lib.IsNull()); 656 ASSERT(!lib.IsNull());
657 const Script& script = Script::Handle(lib.LookupScript( 657 const Script& script =
658 String::Handle(String::New("test-lib")))); 658 Script::Handle(lib.LookupScript(String::Handle(String::New("test-lib"))));
659 659
660 SourceReport report(SourceReport::kPossibleBreakpoints); 660 SourceReport report(SourceReport::kPossibleBreakpoints);
661 JSONStream js; 661 JSONStream js;
662 report.PrintJSON(&js, script); 662 report.PrintJSON(&js, script);
663 ElideJSONSubstring("classes", js.ToCString(), buffer); 663 ElideJSONSubstring("classes", js.ToCString(), buffer);
664 ElideJSONSubstring("libraries", buffer, buffer); 664 ElideJSONSubstring("libraries", buffer, buffer);
665 EXPECT_STREQ( 665 EXPECT_STREQ(
666 "{\"type\":\"SourceReport\",\"ranges\":[" 666 "{\"type\":\"SourceReport\",\"ranges\":["
667 667
668 // helper0. 668 // helper0.
669 "{\"scriptIndex\":0,\"startPos\":0,\"endPos\":4,\"compiled\":true," 669 "{\"scriptIndex\":0,\"startPos\":0,\"endPos\":4,\"compiled\":true,"
670 "\"possibleBreakpoints\":[1,4]}," 670 "\"possibleBreakpoints\":[1,4]},"
671 671
672 // One range not compiled (helper1). 672 // One range not compiled (helper1).
673 "{\"scriptIndex\":0,\"startPos\":6,\"endPos\":10,\"compiled\":false}," 673 "{\"scriptIndex\":0,\"startPos\":6,\"endPos\":10,\"compiled\":false},"
674 674
675 // main. 675 // main.
676 "{\"scriptIndex\":0,\"startPos\":12,\"endPos\":39,\"compiled\":true," 676 "{\"scriptIndex\":0,\"startPos\":12,\"endPos\":39,\"compiled\":true,"
677 "\"possibleBreakpoints\":[13,23,32,39]}]," 677 "\"possibleBreakpoints\":[13,23,32,39]}],"
678 678
679 // Only one script in the script table. 679 // Only one script in the script table.
680 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\"," 680 "\"scripts\":[{\"type\":\"@Script\",\"fixedId\":true,\"id\":\"\","
681 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}", 681 "\"uri\":\"test-lib\",\"_kind\":\"script\"}]}",
682 buffer); 682 buffer);
683 } 683 }
684 684
685 #endif // !PRODUCT 685 #endif // !PRODUCT
686 686
687 } // namespace dart 687 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/source_report.cc ('k') | runtime/vm/spaces.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698