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

Side by Side Diff: test/mjsunit/array-sort.js

Issue 100330: Removed long-running array sort test. (Closed)
Patch Set: Created 11 years, 7 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2008 the V8 project authors. All rights reserved. 1 // Copyright 2008 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 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 // in the array. 146 // in the array.
147 function TestArraySortingWithUnsoundComparisonFunction() { 147 function TestArraySortingWithUnsoundComparisonFunction() {
148 var a = [ 3, void 0, 2 ]; 148 var a = [ 3, void 0, 2 ];
149 a.sort(function(x, y) { return 1; }); 149 a.sort(function(x, y) { return 1; });
150 a.sort(); 150 a.sort();
151 assertArrayEquals([ 2, 3, void 0 ], a); 151 assertArrayEquals([ 2, 3, void 0 ], a);
152 } 152 }
153 153
154 TestArraySortingWithUnsoundComparisonFunction(); 154 TestArraySortingWithUnsoundComparisonFunction();
155 155
156
156 function TestSparseNonArraySorting(length) { 157 function TestSparseNonArraySorting(length) {
157 assertTrue(length > 101); 158 assertTrue(length > 101);
158 var obj = {length: length}; 159 var obj = {length: length};
159 obj[0] = 42; 160 obj[0] = 42;
160 obj[10] = 37; 161 obj[10] = 37;
161 obj[100] = undefined; 162 obj[100] = undefined;
162 obj[length - 1] = null; 163 obj[length - 1] = null;
163 Array.prototype.sort.call(obj); 164 Array.prototype.sort.call(obj);
164 assertEquals(length, obj.length, "objsort length unaffected"); 165 assertEquals(length, obj.length, "objsort length unaffected");
165 assertEquals(37, obj[0], "objsort smallest number"); 166 assertEquals(37, obj[0], "objsort smallest number");
166 assertEquals(42, obj[1], "objsort largest number"); 167 assertEquals(42, obj[1], "objsort largest number");
167 assertEquals(null, obj[2], "objsort null"); 168 assertEquals(null, obj[2], "objsort null");
168 assertEquals(undefined, obj[3], "objsort undefined"); 169 assertEquals(undefined, obj[3], "objsort undefined");
169 assertTrue(3 in obj, "objsort undefined retained"); 170 assertTrue(3 in obj, "objsort undefined retained");
170 assertFalse(4 in obj, "objsort non-existing retained"); 171 assertFalse(4 in obj, "objsort non-existing retained");
171 } 172 }
172 173
173 TestSparseNonArraySorting(5000); 174 TestSparseNonArraySorting(5000);
174 TestSparseNonArraySorting(500000); 175 TestSparseNonArraySorting(500000);
175 TestSparseNonArraySorting(Math.pow(2, 31) + 1); 176 TestSparseNonArraySorting(Math.pow(2, 31) + 1);
176 177
178
177 function TestArrayLongerLength(length) { 179 function TestArrayLongerLength(length) {
178 var x = new Array(4); 180 var x = new Array(4);
179 x[0] = 42; 181 x[0] = 42;
180 x[2] = 37; 182 x[2] = 37;
181 x.length = length; 183 x.length = length;
182 Array.prototype.sort.call(x); 184 Array.prototype.sort.call(x);
183 assertEquals(length, x.length, "longlength length"); 185 assertEquals(length, x.length, "longlength length");
184 assertEquals(37, x[0], "longlength first"); 186 assertEquals(37, x[0], "longlength first");
185 assertEquals(42, x[1], "longlength second"); 187 assertEquals(42, x[1], "longlength second");
186 assertFalse(2 in x,"longlength third"); 188 assertFalse(2 in x,"longlength third");
187 } 189 }
188 190
189 TestArrayLongerLength(4); 191 TestArrayLongerLength(4);
190 TestArrayLongerLength(10); 192 TestArrayLongerLength(10);
191 TestArrayLongerLength(1000); 193 TestArrayLongerLength(1000);
192 TestArrayLongerLength(500000); 194 TestArrayLongerLength(500000);
193 TestArrayLongerLength(Math.pow(2,32) - 1); 195 TestArrayLongerLength(Math.pow(2,32) - 1);
194 196
197
195 function TestNonArrayLongerLength(length) { 198 function TestNonArrayLongerLength(length) {
196 var x = {}; 199 var x = {};
197 x[0] = 42; 200 x[0] = 42;
198 x[2] = 37; 201 x[2] = 37;
199 x.length = length; 202 x.length = length;
200 Array.prototype.sort.call(x); 203 Array.prototype.sort.call(x);
201 assertEquals(length, x.length, "longlength length"); 204 assertEquals(length, x.length, "longlength length");
202 assertEquals(37, x[0], "longlength first"); 205 assertEquals(37, x[0], "longlength first");
203 assertEquals(42, x[1], "longlength second"); 206 assertEquals(42, x[1], "longlength second");
204 assertFalse(2 in x,"longlength third"); 207 assertFalse(2 in x,"longlength third");
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 254
252 for (var i = 0; i < 5; i++) { 255 for (var i = 0; i < 5; i++) {
253 x[i * 2 * scale] = 2 * (4 - i); 256 x[i * 2 * scale] = 2 * (4 - i);
254 y[(i * 2 + 1) * scale] = 2 * (4 - i) + 1; 257 y[(i * 2 + 1) * scale] = 2 * (4 - i) + 1;
255 } 258 }
256 259
257 var name = "SparseSortInherit(" + scale + ")-"; 260 var name = "SparseSortInherit(" + scale + ")-";
258 261
259 Array.prototype.sort.call(y); 262 Array.prototype.sort.call(y);
260 263
261 assertEquals(length, y.length, name+"length"); 264 assertEquals(length, y.length, name +"length");
William Hesse 2009/05/04 08:55:21 name + "length" ? Spaces on both sides of operato
262 265
263 for (var i = 0; i < 10; i++) { 266 for (var i = 0; i < 10; i++) {
264 assertTrue(y.hasOwnProperty(i), name + "hasvalue" + i); 267 assertTrue(y.hasOwnProperty(i), name + "hasvalue" + i);
265 assertEquals(i, y[i], name + "value" + i); 268 assertEquals(i, y[i], name + "value" + i);
266 } 269 }
267 for (var i = 10; i < length; i++) { 270 for (var i = 10; i < length; i++) {
268 assertEquals(x.hasOwnProperty(i), y.hasOwnProperty(i), name+"hasundef"+i); 271 assertEquals(x.hasOwnProperty(i), y.hasOwnProperty(i),
William Hesse 2009/05/04 08:55:21 Remove space at end of line.
272 name + "hasundef" + i);
269 assertEquals(undefined, y[i], name+"undefined"+i); 273 assertEquals(undefined, y[i], name+"undefined"+i);
270 if (x.hasOwnProperty(i)) { 274 if (x.hasOwnProperty(i)) {
271 assertTrue(0 == i % (2 * scale), name+"new_x"+i); 275 assertTrue(0 == i % (2 * scale), name + "new_x" + i);
272 } 276 }
273 } 277 }
274 } 278 }
275 279
276 TestSparseInheritedElementSort(10); 280 TestSparseInheritedElementSort(10);
277 TestSparseInheritedElementSort(100); 281 TestSparseInheritedElementSort(100);
278 TestSparseInheritedElementSort(1000); 282 TestSparseInheritedElementSort(1000);
279 TestSparseInheritedElementSort(10000);
280 283
281 function TestSpecialCasesInheritedElementSort() { 284 function TestSpecialCasesInheritedElementSort() {
282 285
283 var x = { 286 var x = {
284 1:"d1", 287 1:"d1",
285 2:"c1", 288 2:"c1",
286 3:"b1", 289 3:"b1",
287 4: undefined, 290 4: undefined,
288 __proto__: { 291 __proto__: {
289 length: 10000, 292 length: 10000,
(...skipping 16 matching lines...) Expand all
306 } 309 }
307 }; 310 };
308 Array.prototype.sort.call(x); 311 Array.prototype.sort.call(x);
309 312
310 var name = "SpecialInherit-"; 313 var name = "SpecialInherit-";
311 314
312 assertEquals(10000, x.length, name + "length"); 315 assertEquals(10000, x.length, name + "length");
313 var sorted = ["a2", "a3", "b1", "b2", "c1", "c2", "d1", "d2", "e3", 316 var sorted = ["a2", "a3", "b1", "b2", "c1", "c2", "d1", "d2", "e3",
314 undefined, undefined, undefined]; 317 undefined, undefined, undefined];
315 for (var i = 0; i < sorted.length; i++) { 318 for (var i = 0; i < sorted.length; i++) {
316 assertTrue(x[0], x.hasOwnProperty(i) + "has" + i) 319 assertTrue(x.hasOwnProperty(i), name + "has" + i)
317 assertEquals(sorted[i], x[i], name + i); 320 assertEquals(sorted[i], x[i], name + i);
318 } 321 }
319 assertFalse(x.hasOwnProperty(sorted.length), name + "haspost"); 322 assertFalse(x.hasOwnProperty(sorted.length), name + "haspost");
320 assertFalse(sorted.length in x, name + "haspost2"); 323 assertFalse(sorted.length in x, name + "haspost2");
321 assertEquals(undefined, x[12000], name + "XX12000");
322 324
323 assertTrue(x.hasOwnProperty(10), name + "hasundefined10"); 325 assertTrue(x.hasOwnProperty(10), name + "hasundefined10");
324 assertEquals(undefined, x[10], name + "undefined10"); 326 assertEquals(undefined, x[10], name + "undefined10");
325 assertTrue(x.hasOwnProperty(100), name + "hasundefined100"); 327 assertTrue(x.hasOwnProperty(100), name + "hasundefined100");
326 assertEquals(undefined, x[100], name + "undefined100"); 328 assertEquals(undefined, x[100], name + "undefined100");
327 assertTrue(x.hasOwnProperty(1000), name + "hasundefined1000"); 329 assertTrue(x.hasOwnProperty(1000), name + "hasundefined1000");
328 assertEquals(undefined, x[1000], name + "undefined1000"); 330 assertEquals(undefined, x[1000], name + "undefined1000");
329 assertTrue(x.hasOwnProperty(2000), name + "hasundefined2000"); 331 assertTrue(x.hasOwnProperty(2000), name + "hasundefined2000");
330 assertEquals(undefined, x[2000], name + "undefined2000"); 332 assertEquals(undefined, x[2000], name + "undefined2000");
331 assertTrue(x.hasOwnProperty(8000), name + "hasundefined8000"); 333 assertTrue(x.hasOwnProperty(8000), name + "hasundefined8000");
332 assertEquals(undefined, x[8000], name + "undefined8000"); 334 assertEquals(undefined, x[8000], name + "undefined8000");
333 335
334 assertFalse(x.hasOwnProperty(11), name + "hasundefined11");
William Hesse 2009/05/04 08:55:21 Is what this test is meant to test still tested?
Lasse Reichstein 2009/05/04 09:07:07 Yes. It's the sorted.length test above (11 should
335 assertEquals(undefined, x[11], name + "undefined11");
336
337 assertFalse(x.hasOwnProperty(12000), name + "has12000"); 336 assertFalse(x.hasOwnProperty(12000), name + "has12000");
338 assertEquals("XX", x[12000], name + "XX12000"); 337 assertEquals("XX", x[12000], name + "XX12000");
339 338
340 } 339 }
340
341 TestSpecialCasesInheritedElementSort();
342
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698