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

Side by Side Diff: test/mjsunit/tools/codemap.js

Issue 6456025: Shorten constructor names in JS tickprocessor. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: and CallTree Created 9 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
« no previous file with comments | « no previous file | test/mjsunit/tools/csvparser.js » ('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 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 12 matching lines...) Expand all
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 27
28 // Load Splay tree and CodeMap implementations from <project root>/tools. 28 // Load Splay tree and CodeMap implementations from <project root>/tools.
29 // Files: tools/splaytree.js tools/codemap.js 29 // Files: tools/splaytree.js tools/codemap.js
30 30
31 31
32 function newCodeEntry(size, name) { 32 function newCodeEntry(size, name) {
33 return new devtools.profiler.CodeMap.CodeEntry(size, name); 33 return new CodeMap.CodeEntry(size, name);
34 }; 34 };
35 35
36 36
37 function assertEntry(codeMap, expected_name, addr) { 37 function assertEntry(codeMap, expected_name, addr) {
38 var entry = codeMap.findEntry(addr); 38 var entry = codeMap.findEntry(addr);
39 assertNotNull(entry, 'no entry at ' + addr.toString(16)); 39 assertNotNull(entry, 'no entry at ' + addr.toString(16));
40 assertEquals(expected_name, entry.name, 'at ' + addr.toString(16)); 40 assertEquals(expected_name, entry.name, 'at ' + addr.toString(16));
41 }; 41 };
42 42
43 43
44 function assertNoEntry(codeMap, addr) { 44 function assertNoEntry(codeMap, addr) {
45 assertNull(codeMap.findEntry(addr), 'at ' + addr.toString(16)); 45 assertNull(codeMap.findEntry(addr), 'at ' + addr.toString(16));
46 }; 46 };
47 47
48 48
49 (function testLibrariesAndStaticCode() { 49 (function testLibrariesAndStaticCode() {
50 var codeMap = new devtools.profiler.CodeMap(); 50 var codeMap = new CodeMap();
51 codeMap.addLibrary(0x1500, newCodeEntry(0x3000, 'lib1')); 51 codeMap.addLibrary(0x1500, newCodeEntry(0x3000, 'lib1'));
52 codeMap.addLibrary(0x15500, newCodeEntry(0x5000, 'lib2')); 52 codeMap.addLibrary(0x15500, newCodeEntry(0x5000, 'lib2'));
53 codeMap.addLibrary(0x155500, newCodeEntry(0x10000, 'lib3')); 53 codeMap.addLibrary(0x155500, newCodeEntry(0x10000, 'lib3'));
54 assertNoEntry(codeMap, 0); 54 assertNoEntry(codeMap, 0);
55 assertNoEntry(codeMap, 0x1500 - 1); 55 assertNoEntry(codeMap, 0x1500 - 1);
56 assertEntry(codeMap, 'lib1', 0x1500); 56 assertEntry(codeMap, 'lib1', 0x1500);
57 assertEntry(codeMap, 'lib1', 0x1500 + 0x100); 57 assertEntry(codeMap, 'lib1', 0x1500 + 0x100);
58 assertEntry(codeMap, 'lib1', 0x1500 + 0x1000); 58 assertEntry(codeMap, 'lib1', 0x1500 + 0x1000);
59 assertEntry(codeMap, 'lib1', 0x1500 + 0x3000 - 1); 59 assertEntry(codeMap, 'lib1', 0x1500 + 0x3000 - 1);
60 assertNoEntry(codeMap, 0x1500 + 0x3000); 60 assertNoEntry(codeMap, 0x1500 + 0x3000);
(...skipping 29 matching lines...) Expand all
90 assertEntry(codeMap, 'lib2', 0x15520 - 1); 90 assertEntry(codeMap, 'lib2', 0x15520 - 1);
91 assertEntry(codeMap, 'lib2-f1', 0x15520); 91 assertEntry(codeMap, 'lib2-f1', 0x15520);
92 assertEntry(codeMap, 'lib2-f1', 0x15520 + 0x80); 92 assertEntry(codeMap, 'lib2-f1', 0x15520 + 0x80);
93 assertEntry(codeMap, 'lib2-f1', 0x15520 + 0x100 - 1); 93 assertEntry(codeMap, 'lib2-f1', 0x15520 + 0x100 - 1);
94 assertEntry(codeMap, 'lib2', 0x15520 + 0x100); 94 assertEntry(codeMap, 'lib2', 0x15520 + 0x100);
95 95
96 })(); 96 })();
97 97
98 98
99 (function testDynamicCode() { 99 (function testDynamicCode() {
100 var codeMap = new devtools.profiler.CodeMap(); 100 var codeMap = new CodeMap();
101 codeMap.addCode(0x1500, newCodeEntry(0x200, 'code1')); 101 codeMap.addCode(0x1500, newCodeEntry(0x200, 'code1'));
102 codeMap.addCode(0x1700, newCodeEntry(0x100, 'code2')); 102 codeMap.addCode(0x1700, newCodeEntry(0x100, 'code2'));
103 codeMap.addCode(0x1900, newCodeEntry(0x50, 'code3')); 103 codeMap.addCode(0x1900, newCodeEntry(0x50, 'code3'));
104 codeMap.addCode(0x1950, newCodeEntry(0x10, 'code4')); 104 codeMap.addCode(0x1950, newCodeEntry(0x10, 'code4'));
105 assertNoEntry(codeMap, 0); 105 assertNoEntry(codeMap, 0);
106 assertNoEntry(codeMap, 0x1500 - 1); 106 assertNoEntry(codeMap, 0x1500 - 1);
107 assertEntry(codeMap, 'code1', 0x1500); 107 assertEntry(codeMap, 'code1', 0x1500);
108 assertEntry(codeMap, 'code1', 0x1500 + 0x100); 108 assertEntry(codeMap, 'code1', 0x1500 + 0x100);
109 assertEntry(codeMap, 'code1', 0x1500 + 0x200 - 1); 109 assertEntry(codeMap, 'code1', 0x1500 + 0x200 - 1);
110 assertEntry(codeMap, 'code2', 0x1700); 110 assertEntry(codeMap, 'code2', 0x1700);
111 assertEntry(codeMap, 'code2', 0x1700 + 0x50); 111 assertEntry(codeMap, 'code2', 0x1700 + 0x50);
112 assertEntry(codeMap, 'code2', 0x1700 + 0x100 - 1); 112 assertEntry(codeMap, 'code2', 0x1700 + 0x100 - 1);
113 assertNoEntry(codeMap, 0x1700 + 0x100); 113 assertNoEntry(codeMap, 0x1700 + 0x100);
114 assertNoEntry(codeMap, 0x1900 - 1); 114 assertNoEntry(codeMap, 0x1900 - 1);
115 assertEntry(codeMap, 'code3', 0x1900); 115 assertEntry(codeMap, 'code3', 0x1900);
116 assertEntry(codeMap, 'code3', 0x1900 + 0x28); 116 assertEntry(codeMap, 'code3', 0x1900 + 0x28);
117 assertEntry(codeMap, 'code4', 0x1950); 117 assertEntry(codeMap, 'code4', 0x1950);
118 assertEntry(codeMap, 'code4', 0x1950 + 0x7); 118 assertEntry(codeMap, 'code4', 0x1950 + 0x7);
119 assertEntry(codeMap, 'code4', 0x1950 + 0x10 - 1); 119 assertEntry(codeMap, 'code4', 0x1950 + 0x10 - 1);
120 assertNoEntry(codeMap, 0x1950 + 0x10); 120 assertNoEntry(codeMap, 0x1950 + 0x10);
121 assertNoEntry(codeMap, 0xFFFFFFFF); 121 assertNoEntry(codeMap, 0xFFFFFFFF);
122 })(); 122 })();
123 123
124 124
125 (function testCodeMovesAndDeletions() { 125 (function testCodeMovesAndDeletions() {
126 var codeMap = new devtools.profiler.CodeMap(); 126 var codeMap = new CodeMap();
127 codeMap.addCode(0x1500, newCodeEntry(0x200, 'code1')); 127 codeMap.addCode(0x1500, newCodeEntry(0x200, 'code1'));
128 codeMap.addCode(0x1700, newCodeEntry(0x100, 'code2')); 128 codeMap.addCode(0x1700, newCodeEntry(0x100, 'code2'));
129 assertEntry(codeMap, 'code1', 0x1500); 129 assertEntry(codeMap, 'code1', 0x1500);
130 assertEntry(codeMap, 'code2', 0x1700); 130 assertEntry(codeMap, 'code2', 0x1700);
131 codeMap.moveCode(0x1500, 0x1800); 131 codeMap.moveCode(0x1500, 0x1800);
132 assertNoEntry(codeMap, 0x1500); 132 assertNoEntry(codeMap, 0x1500);
133 assertEntry(codeMap, 'code2', 0x1700); 133 assertEntry(codeMap, 'code2', 0x1700);
134 assertEntry(codeMap, 'code1', 0x1800); 134 assertEntry(codeMap, 'code1', 0x1800);
135 codeMap.deleteCode(0x1700); 135 codeMap.deleteCode(0x1700);
136 assertNoEntry(codeMap, 0x1700); 136 assertNoEntry(codeMap, 0x1700);
137 assertEntry(codeMap, 'code1', 0x1800); 137 assertEntry(codeMap, 'code1', 0x1800);
138 })(); 138 })();
139 139
140 140
141 (function testDynamicNamesDuplicates() { 141 (function testDynamicNamesDuplicates() {
142 var codeMap = new devtools.profiler.CodeMap(); 142 var codeMap = new CodeMap();
143 // Code entries with same names but different addresses. 143 // Code entries with same names but different addresses.
144 codeMap.addCode(0x1500, newCodeEntry(0x200, 'code')); 144 codeMap.addCode(0x1500, newCodeEntry(0x200, 'code'));
145 codeMap.addCode(0x1700, newCodeEntry(0x100, 'code')); 145 codeMap.addCode(0x1700, newCodeEntry(0x100, 'code'));
146 assertEntry(codeMap, 'code', 0x1500); 146 assertEntry(codeMap, 'code', 0x1500);
147 assertEntry(codeMap, 'code {1}', 0x1700); 147 assertEntry(codeMap, 'code {1}', 0x1700);
148 // Test name stability. 148 // Test name stability.
149 assertEntry(codeMap, 'code', 0x1500); 149 assertEntry(codeMap, 'code', 0x1500);
150 assertEntry(codeMap, 'code {1}', 0x1700); 150 assertEntry(codeMap, 'code {1}', 0x1700);
151 })(); 151 })();
152 152
153 153
154 (function testStaticEntriesExport() { 154 (function testStaticEntriesExport() {
155 var codeMap = new devtools.profiler.CodeMap(); 155 var codeMap = new CodeMap();
156 codeMap.addStaticCode(0x1500, newCodeEntry(0x3000, 'lib1')); 156 codeMap.addStaticCode(0x1500, newCodeEntry(0x3000, 'lib1'));
157 codeMap.addStaticCode(0x15500, newCodeEntry(0x5000, 'lib2')); 157 codeMap.addStaticCode(0x15500, newCodeEntry(0x5000, 'lib2'));
158 codeMap.addStaticCode(0x155500, newCodeEntry(0x10000, 'lib3')); 158 codeMap.addStaticCode(0x155500, newCodeEntry(0x10000, 'lib3'));
159 var allStatics = codeMap.getAllStaticEntries(); 159 var allStatics = codeMap.getAllStaticEntries();
160 allStatics.sort(); 160 allStatics.sort();
161 assertEquals(['lib1: 3000', 'lib2: 5000', 'lib3: 10000'], allStatics); 161 assertEquals(['lib1: 3000', 'lib2: 5000', 'lib3: 10000'], allStatics);
162 })(); 162 })();
163 163
164 164
165 (function testDynamicEntriesExport() { 165 (function testDynamicEntriesExport() {
166 var codeMap = new devtools.profiler.CodeMap(); 166 var codeMap = new CodeMap();
167 codeMap.addCode(0x1500, newCodeEntry(0x200, 'code1')); 167 codeMap.addCode(0x1500, newCodeEntry(0x200, 'code1'));
168 codeMap.addCode(0x1700, newCodeEntry(0x100, 'code2')); 168 codeMap.addCode(0x1700, newCodeEntry(0x100, 'code2'));
169 codeMap.addCode(0x1900, newCodeEntry(0x50, 'code3')); 169 codeMap.addCode(0x1900, newCodeEntry(0x50, 'code3'));
170 var allDynamics = codeMap.getAllDynamicEntries(); 170 var allDynamics = codeMap.getAllDynamicEntries();
171 allDynamics.sort(); 171 allDynamics.sort();
172 assertEquals(['code1: 200', 'code2: 100', 'code3: 50'], allDynamics); 172 assertEquals(['code1: 200', 'code2: 100', 'code3: 50'], allDynamics);
173 codeMap.deleteCode(0x1700); 173 codeMap.deleteCode(0x1700);
174 var allDynamics2 = codeMap.getAllDynamicEntries(); 174 var allDynamics2 = codeMap.getAllDynamicEntries();
175 allDynamics2.sort(); 175 allDynamics2.sort();
176 assertEquals(['code1: 200', 'code3: 50'], allDynamics2); 176 assertEquals(['code1: 200', 'code3: 50'], allDynamics2);
177 codeMap.deleteCode(0x1500); 177 codeMap.deleteCode(0x1500);
178 var allDynamics3 = codeMap.getAllDynamicEntries(); 178 var allDynamics3 = codeMap.getAllDynamicEntries();
179 assertEquals(['code3: 50'], allDynamics3); 179 assertEquals(['code3: 50'], allDynamics3);
180 })(); 180 })();
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/tools/csvparser.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698