blob: c62d7705ad0c6f7157654c3d11ab54d48f0d6c67 [file] [log] [blame]
Steve Blocka7e24c12009-10-30 11:49:00 +00001# Copyright 2009 the V8 project authors. All rights reserved.
2# Redistribution and use in source and binary forms, with or without
3# modification, are permitted provided that the following conditions are
4# met:
5#
6# * Redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer.
8# * Redistributions in binary form must reproduce the above
9# copyright notice, this list of conditions and the following
10# disclaimer in the documentation and/or other materials provided
11# with the distribution.
12# * Neither the name of Google Inc. nor the names of its
13# contributors may be used to endorse or promote products derived
14# from this software without specific prior written permission.
15#
16# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
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.
27
28# This file is up to date with respect to Mozilla's CVS repository as of
Steve Block8defd9f2010-07-08 12:39:36 +010029# 2010-06-29. If new tests are added to Mozilla's CVS it may need to be
Steve Blocka7e24c12009-10-30 11:49:00 +000030# updated.
31
32# To get the mozilla tests:
33# cd /path/to/checkout/test/mozilla
34# rm -rf data
Steve Block8defd9f2010-07-08 12:39:36 +010035# cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -D 2010-06-29 mozilla/js/tests
Steve Blocka7e24c12009-10-30 11:49:00 +000036# mv mozilla/js/tests data
37# rm -rf mozilla
38
39# --------------------------------------------------------------------
40# If you add a test case to this file, please try to provide
41# an explanation of why the test fails; this may ease future
42# debugging.
43# --------------------------------------------------------------------
44
45prefix mozilla
46def FAIL_OK = FAIL, OKAY
47
Ben Murdochb0fe1622011-05-05 13:52:32 +010048
Steve Blocka7e24c12009-10-30 11:49:00 +000049##################### SKIPPED TESTS #####################
50
51# This test checks that we behave properly in an out-of-memory
52# situation. The test fails in V8 with an exception and takes a long
53# time to do so.
54js1_5/Regress/regress-271716-n: SKIP
55
Ben Murdochb0fe1622011-05-05 13:52:32 +010056# BUG(960): This test has an insane amount of output when it times out,
57# messing up ability to see other failures on the waterfall.
58js1_5/extensions/regress-342960: SKIP
Steve Blocka7e24c12009-10-30 11:49:00 +000059
Steve Block8defd9f2010-07-08 12:39:36 +010060# This test uses a unitialized variable. A Bug has been filed:
61# https://bugzilla.mozilla.org/show_bug.cgi?id=575575
62js1_5/Array/regress-465980-02: SKIP
63
Steve Blocka7e24c12009-10-30 11:49:00 +000064# These tests are simply wrong (i.e., they do not test what they intend
65# to test).
66# In particular, these two compare numbers to NaN with != in the current
67# version of the Mozilla tests. This is *fixed* in a later version.
68# The tests should be re-enabled when switching to a new version.
69ecma_3/Date/15.9.3.2-1: SKIP
70js1_2/function/Number: SKIP
71
72
73##################### SLOW TESTS #####################
74
75# This takes a long time to run (~100 seconds). It should only be run
76# by the really patient.
77js1_5/GC/regress-324278: SLOW
78
79# This takes a long time to run because our indexOf operation is
80# pretty slow - it causes a lot of GCs; see issue
81# #926379. We could consider marking this SKIP because it takes a
82# while to run to completion.
83js1_5/GC/regress-338653: SLOW
84
85# This test is designed to run until it runs out of memory. This takes
86# a very long time because it builds strings character by character
87# and compiles a lot of regular expressions. We could consider marking
88# this SKIP because it takes a while to run to completion.
89js1_5/GC/regress-346794: SLOW
90
91# Runs out of memory while trying to build huge string of 'x'
92# characters. This takes a long time to run (~32 seconds).
93js1_5/GC/regress-348532: SLOW
94
95
96##################### FLAKY TESTS #####################
97
98# These tests time out in debug mode but pass in product mode
99js1_5/Regress/regress-360969-03: PASS || TIMEOUT if $mode == debug
100js1_5/Regress/regress-360969-04: PASS || TIMEOUT if $mode == debug
101js1_5/Regress/regress-360969-05: PASS || TIMEOUT if $mode == debug
102js1_5/Regress/regress-360969-06: PASS || TIMEOUT if $mode == debug
103js1_5/extensions/regress-365527: PASS || TIMEOUT if $mode == debug
104
105js1_5/Regress/regress-280769-3: PASS || FAIL if $mode == debug
106js1_5/Regress/regress-203278-1: PASS || FAIL if $mode == debug
107js1_5/GC/regress-203278-2: PASS || FAIL if $mode == debug
108js1_5/Regress/regress-244470: PASS || FAIL if $mode == debug
109ecma_3/RegExp/regress-209067: PASS || FAIL if $mode == debug
110js1_5/GC/regress-278725: PASS || FAIL if $mode == debug
111# http://b/issue?id=1206983
112js1_5/Regress/regress-367561-03: PASS || FAIL if $mode == debug
Steve Block1e0659c2011-05-24 12:43:12 +0100113ecma/Date/15.9.5.10-2: PASS || (FAIL || TIMEOUT if $mode == debug)
Steve Blocka7e24c12009-10-30 11:49:00 +0000114
115# These tests create two Date objects just after each other and
116# expects them to match. Sometimes this happens on the border
117# between one second and the next.
118ecma/Date/15.9.2.1: PASS || FAIL
119ecma/Date/15.9.2.2-1: PASS || FAIL
120ecma/Date/15.9.2.2-2: PASS || FAIL
121ecma/Date/15.9.2.2-3: PASS || FAIL
122ecma/Date/15.9.2.2-4: PASS || FAIL
123ecma/Date/15.9.2.2-5: PASS || FAIL
124ecma/Date/15.9.2.2-6: PASS || FAIL
125
126# 1026139: These date tests fail on arm
127ecma/Date/15.9.5.29-1: PASS || ($ARM && FAIL)
128ecma/Date/15.9.5.34-1: PASS || ($ARM && FAIL)
129ecma/Date/15.9.5.28-1: PASS || ($ARM && FAIL)
130
131# 1050186: Arm vm is broken; probably unrelated to dates
132ecma/Array/15.4.4.5-3: PASS || ($ARM && FAIL)
133ecma/Date/15.9.5.22-2: PASS || ($ARM && FAIL)
134
135# Flaky test that fails due to what appears to be a bug in the test.
136# Occurs depending on current time
137ecma/Date/15.9.5.8: PASS || FAIL
138
139# Severely brain-damaged test. Access to local variables must not
140# be more than 2.5 times faster than access to global variables? WTF?
141js1_5/Regress/regress-169559: PASS || FAIL
142
143
144# Test that rely on specific timezone (not working in Denmark).
145js1_5/Regress/regress-58116: PASS || FAIL
146
147
148# Flaky random() test. Tests the distribution of calls to Math.random().
149js1_5/Regress/regress-211590: PASS || FAIL
150
151
152# Flaky tests; expect BigO-order computations to yield 1, but the code
153# cannot handle outliers. See bug #925864.
154ecma_3/RegExp/regress-311414: PASS || FAIL
155ecma_3/RegExp/regress-289669: PASS || FAIL
156js1_5/String/regress-314890: PASS || FAIL
157js1_5/String/regress-56940-01: PASS || FAIL
158js1_5/String/regress-56940-02: PASS || FAIL
159js1_5/String/regress-157334-01: PASS || FAIL
160js1_5/String/regress-322772: PASS || FAIL
161js1_5/Array/regress-99120-01: PASS || FAIL
162js1_5/Array/regress-99120-02: PASS || FAIL
163js1_5/Regress/regress-347306-01: PASS || FAIL
164js1_5/Regress/regress-416628: PASS || FAIL || TIMEOUT if $mode == debug
165
166
167# The following two tests assume that daylight savings time starts first Sunday
168# in April. This is not true when executing the tests outside California!
169# In Denmark the adjustment starts one week earlier!.
170# Tests based on shell that use dates in this gap are flaky.
171ecma/Date/15.9.5.10-1: PASS || FAIL
Steve Blocka7e24c12009-10-30 11:49:00 +0000172ecma/Date/15.9.5.12-1: PASS || FAIL
173ecma/Date/15.9.5.14: PASS || FAIL
174ecma/Date/15.9.5.34-1: PASS || FAIL
175
176
177# These tests sometimes pass (in particular on Windows). They build up
178# a lot of stuff on the stack, which normally causes a stack overflow,
179# but sometimes it makes it through?
180js1_5/Regress/regress-290575: PASS || FAIL
181js1_5/Regress/regress-98901: PASS || FAIL
182
183
184# Tests that sorting arrays of ints is less than 3 times as fast
185# as sorting arrays of strings.
186js1_5/extensions/regress-371636: PASS || FAIL || TIMEOUT if $mode == debug
187
188
189# Tests depend on GC timings. Inherently flaky.
190js1_5/GC/regress-383269-01: PASS || FAIL
191js1_5/GC/regress-383269-02: PASS || FAIL
192js1_5/Regress/regress-404755: PASS || FAIL
193
194
195# Test that depends on timer resolution. Fails every now and then
196# if we're unlucky enough to get a context switch at a bad time.
197js1_5/extensions/regress-363258: PASS || FAIL
198
199
Steve Block1e0659c2011-05-24 12:43:12 +0100200# Test that assumes specific runtime for a regexp, flaky in debug mode.
201ecma_3/RegExp/regress-85721: PASS || FAIL if $mode == debug
202
Steve Blocka7e24c12009-10-30 11:49:00 +0000203
204##################### INCOMPATIBLE TESTS #####################
205
206# This section is for tests that fail in both V8 and JSC. Thus they
207# have been determined to be incompatible between Mozilla and V8/JSC.
208
Ben Murdoch3fb3ca82011-12-02 17:19:32 +0000209# Fail because it calls builtins as functions and do not expect the
210# builtin to have undefined as the receiver.
211ecma/String/15.5.4.6-2: FAIL_OK
212
Steve Blocka7e24c12009-10-30 11:49:00 +0000213# Fail because of toLowerCase and toUpperCase conversion.
214ecma/String/15.5.4.11-2: FAIL_OK
215ecma/String/15.5.4.11-5: FAIL_OK
216ecma/String/15.5.4.12-1: FAIL_OK
217ecma/String/15.5.4.12-4: FAIL_OK
218
219# This test uses an older version of the unicode standard that fails
220# us because we correctly convert the armenian small ligature ech-yiwn
221# to the two upper-case characters ECH and YIWN, whereas the older
222# unicode version converts it to itself.
223ecma/String/15.5.4.12-5: FAIL_OK
224
225# Creates a linked list of arrays until we run out of memory or timeout.
226js1_5/Regress/regress-312588: FAIL || TIMEOUT
227
228
229# Runs out of memory because it compiles huge functions.
230js1_5/Function/regress-338001: FAIL_OK
231js1_5/Function/regress-338121-01: FAIL_OK
232js1_5/Function/regress-338121-02: FAIL_OK
233js1_5/Function/regress-338121-03: FAIL_OK
234
235# Expectes 'prototype' property of functions to be enumerable.
236js1_5/Function/10.1.6-01: FAIL_OK
237
238# Length of objects whose prototype chain includes a function
239ecma_3/Function/regress-313570: FAIL_OK
240
241# toPrecision argument restricted to range 1..21 in JSC/V8
242js1_5/Regress/regress-452346: FAIL_OK
Steve Block8defd9f2010-07-08 12:39:36 +0100243ecma_3/Number/15.7.4.7-1: FAIL_OK
244
245# toExponential argument restricted to range 0..20 in JSC/V8
246ecma_3/Number/15.7.4.6-1: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000247
Steve Blocka7e24c12009-10-30 11:49:00 +0000248#:=== RegExp:===
249# To be compatible with JSC we silently ignore flags that do not make
Steve Block8defd9f2010-07-08 12:39:36 +0100250# sense. These tests expects us to throw exceptions.
Steve Blocka7e24c12009-10-30 11:49:00 +0000251ecma_3/RegExp/regress-57631: FAIL_OK
Steve Block8defd9f2010-07-08 12:39:36 +0100252ecma_3/RegExp/15.10.4.1-6: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000253
254# PCRE doesn't allow subpattern nesting deeper than 200, this tests
255# depth 500. JSC detects the case, and return null from the match,
256# and passes this test (the test doesn't check for a correct return
257# value).
258ecma_3/RegExp/regress-119909: PASS || FAIL_OK
259
260
261# Difference in the way capturing subpatterns work. In JS, when the
262# 'minimum repeat count' is reached, the empty string must not match.
263# In this case, we are similar but not identical to JSC. Hard to
264# support the JS behavior with PCRE, so maybe emulate JSC?
265ecma_3/RegExp/regress-209919: PASS || FAIL_OK
266js1_5/extensions/regress-459606: PASS || FAIL_OK
267
268
269# PCRE's match limit is reached. SpiderMonkey hangs on the first one,
270# JSC returns true somehow. Maybe they up the match limit? There is
271# an open V8 bug 676063 about this.
272ecma_3/RegExp/regress-330684: TIMEOUT
273
274
275# This test contains a regexp that runs exponentially long. Spidermonkey
276# standalone will hang, though apparently inside Firefox it will trigger a
277# long-running-script timeout. JSCRE passes by hitting the matchLimit and
278# just pretending that an exhaustive search found no match.
279ecma_3/RegExp/regress-307456: PASS || TIMEOUT
280
281
282# We do not detect overflow in bounds for back references and {}
283# quantifiers. Might fix by parsing numbers differently?
284js1_5/Regress/regress-230216-2: FAIL_OK
285
286
287# Regexp too long for PCRE.
288js1_5/Regress/regress-280769: PASS || FAIL
289js1_5/Regress/regress-280769-1: PASS || FAIL
290js1_5/Regress/regress-280769-2: PASS || FAIL
291js1_5/Regress/regress-280769-4: PASS || FAIL
292js1_5/Regress/regress-280769-5: PASS || FAIL
293
294
295# We do not support static RegExp.multiline - should we?.
296js1_2/regexp/RegExp_multiline: FAIL_OK
297js1_2/regexp/RegExp_multiline_as_array: FAIL_OK
298js1_2/regexp/beginLine: FAIL_OK
299js1_2/regexp/endLine: FAIL_OK
300
301
302# To be compatible with safari typeof a regexp yields 'function';
303# in firefox it yields 'object'.
304js1_2/function/regexparg-1: FAIL_OK
305
306
307# Date trouble?
308js1_5/Date/regress-301738-02: FAIL_OK
309
310
311# This test fails for all browsers on in the CET timezone.
312ecma/Date/15.9.5.35-1: PASS || FAIL_OK
313
314
315# Spidermonkey allows stuff in parenthesis directly after the minutes
316# in a date. JSC does not, so we don't either.
317js1_5/Date/regress-309925-02: FAIL_OK
318
319
320# Print string after deleting array element?
321js1_5/Expressions/regress-96526-delelem: FAIL_OK
322
323
324# Stack overflows should be InternalError: too much recursion?
325js1_5/Regress/regress-234389: FAIL_OK
326
327
328# This may very well be a bogus test. I'm not sure yet.
329js1_5/Regress/regress-320119: FAIL_OK
330
331
332# No support for toSource().
333js1_5/Regress/regress-248444: FAIL_OK
334js1_5/Regress/regress-313967-01: FAIL_OK
335js1_5/Regress/regress-313967-02: FAIL_OK
336
337# This fails because we don't have stack space for Function.prototype.apply
338# with very large numbers of arguments. The test uses 2^24 arguments.
339js1_5/Array/regress-350256-03: FAIL_OK
340
341
342# Extra arguments not handled properly in String.prototype.match
343js1_5/Regress/regress-179524: FAIL_OK
344
345
346# Uncategorized failures. Please help categorize (or fix) these failures.
347js1_5/Regress/regress-172699: FAIL_OK
348
349
350# Assumes that the prototype of a function is enumerable. Non-ECMA,
351# see section 15.3.3.1, page 86.
352ecma/GlobalObject/15.1.2.2-1: FAIL_OK
353ecma/GlobalObject/15.1.2.3-1: FAIL_OK
354ecma/GlobalObject/15.1.2.4: FAIL_OK
355ecma/GlobalObject/15.1.2.5-1: FAIL_OK
356ecma/GlobalObject/15.1.2.6: FAIL_OK
357ecma/GlobalObject/15.1.2.7: FAIL_OK
358
359
360# Tests that rely on specific details of function decompilation or
361# print strings for errors. Non-ECMA behavior.
362js1_2/function/tostring-2: FAIL_OK
363js1_2/Objects/toString-001: FAIL_OK
Steve Block8defd9f2010-07-08 12:39:36 +0100364js1_5/LexicalConventions/regress-469940: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000365js1_5/Exceptions/regress-332472: FAIL_OK
366js1_5/Regress/regress-173067: FAIL_OK
367js1_5/Regress/regress-355556: FAIL_OK
368js1_5/Regress/regress-328664: FAIL_OK
369js1_5/Regress/regress-252892: FAIL_OK
370js1_5/Regress/regress-352208: FAIL_OK
371ecma_3/Array/15.4.5.1-01: FAIL_OK
372ecma_3/Array/regress-387501: FAIL_OK
373ecma_3/LexicalConventions/7.9.1: FAIL_OK
374ecma_3/RegExp/regress-375711: FAIL_OK
375ecma_3/Unicode/regress-352044-01: FAIL_OK
376ecma_3/extensions/regress-274152: FAIL_OK
377js1_5/Regress/regress-372364: FAIL_OK
378js1_5/Regress/regress-420919: FAIL_OK
379js1_5/Regress/regress-422348: FAIL_OK
380js1_5/Regress/regress-410852: FAIL_OK
381ecma_3/RegExp/regress-375715-04: FAIL_OK
382js1_5/decompilation/regress-456964-01: FAIL_OK
383js1_5/decompilation/regress-437288-02: FAIL_OK
384js1_5/decompilation/regress-457824: FAIL_OK
385js1_5/decompilation/regress-460116-01: FAIL_OK
386js1_5/decompilation/regress-460116-02: FAIL_OK
387js1_5/decompilation/regress-460501: FAIL_OK
388js1_5/decompilation/regress-460116-03: FAIL_OK
389js1_5/decompilation/regress-461110: FAIL_OK
390js1_5/decompilation/regress-456964-01: FAIL_OK
391js1_5/decompilation/regress-437288-02: FAIL_OK
392js1_5/decompilation/regress-457824: FAIL_OK
393js1_5/decompilation/regress-460116-01: FAIL_OK
394js1_5/decompilation/regress-460116-02: FAIL_OK
395js1_5/decompilation/regress-460116-03: FAIL_OK
396js1_5/decompilation/regress-460501: FAIL_OK
397js1_5/decompilation/regress-461110: FAIL_OK
398
399
400
401# Tests that use uneval. Non-ECMA.
402js1_5/GC/regress-418128: FAIL_OK
403js1_5/extensions/regress-465276: FAIL_OK
Steve Block8defd9f2010-07-08 12:39:36 +0100404js1_5/Error/regress-465377: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000405
406# Tests that use the watch method. Non-ECMA.
407js1_5/extensions/regress-435345-01: FAIL_OK
408js1_5/extensions/regress-455413: FAIL_OK
409
410
411# The spec specifies reverse evaluation order for < and >=.
412# See section 11.8.2 and 11.8.5.
413# We implement the spec here but the test tests the more straigtforward order.
414ecma_3/Operators/order-01: FAIL_OK
415
416
417# Uses Mozilla-specific QName, XML, XMLList and Iterator.
418js1_5/Regress/regress-407323: FAIL_OK
419js1_5/Regress/regress-407957: FAIL_OK
420
421
422# Relies on JavaScript 1.2 / 1.3 deprecated features.
423js1_2/function/String: FAIL_OK
424js1_2/operator/equality: FAIL_OK
425js1_2/version120/boolean-001: FAIL_OK
426js1_2/String/concat: FAIL_OK
427js1_2/function/Function_object: FAIL_OK
428js1_2/function/tostring-1: FAIL_OK
429js1_2/version120/regress-99663: FAIL_OK
430js1_2/regexp/RegExp_lastIndex: FAIL_OK
431js1_2/regexp/string_split: FAIL_OK
432
433
Ben Murdoch3fb3ca82011-12-02 17:19:32 +0000434# RegExps are not callable.
435js1_2/regexp/simple_form: FAIL_OK
436js1_2/regexp/regress-6359: FAIL_OK
437js1_2/regexp/regress-9141: FAIL_OK
438js1_5/Regress/regress-224956: FAIL_OK
439js1_5/Regress/regress-325925: FAIL_OK
440ecma_2/RegExp/regress-001: FAIL_OK
441
Steve Blocka7e24c12009-10-30 11:49:00 +0000442# We do not check for bad surrogate pairs when quoting strings.
443js1_5/Regress/regress-315974: FAIL_OK
444
445
446# Use unsupported "watch".
447js1_5/Regress/regress-213482: FAIL_OK
448js1_5/Regress/regress-240577: FAIL_OK
449js1_5/Regress/regress-355344: FAIL_OK
450js1_5/Object/regress-362872-01: FAIL_OK
451js1_5/Object/regress-362872-02: FAIL_OK
452js1_5/Regress/regress-361467: FAIL_OK
453js1_5/Regress/regress-385393-06: FAIL_OK
Steve Block8defd9f2010-07-08 12:39:36 +0100454js1_5/Regress/regress-506567: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000455
456
457# Use special Mozilla getter/setter syntax
458js1_5/Regress/regress-354924: FAIL_OK
459js1_5/Regress/regress-355341: FAIL_OK
460js1_5/GC/regress-316885-01: FAIL_OK
461js1_5/GetSet/getset-002: FAIL_OK
462js1_5/GetSet/regress-353264: FAIL_OK
463js1_5/Regress/regress-361617: FAIL_OK
464js1_5/Regress/regress-362583: FAIL_OK
465js1_5/extensions/regress-356378: FAIL_OK
466js1_5/extensions/regress-452178: FAIL_OK
467
468
Steve Blocka7e24c12009-10-30 11:49:00 +0000469# Requires Mozilla-specific strict mode or options() function.
470ecma_3/Object/8.6.1-01: FAIL_OK
471js1_5/Exceptions/regress-315147: FAIL_OK
472js1_5/Regress/regress-106244: FAIL_OK
473js1_5/Regress/regress-317533: FAIL_OK
474js1_5/Regress/regress-323314-1: FAIL_OK
475js1_5/Regress/regress-352197: FAIL_OK
476
477
478# Equivalent to assert(false).
479ecma_2/RegExp/exec-001: FAIL_OK
480ecma_2/String/replace-001: FAIL_OK
481
482
483# We do not strip unicode format control characters. This is really
484# required for working with non-latin character sets. We match JSC
485# and IE here. Firefox matches the spec (section 7.1).
486ecma_3/Unicode/uc-001: FAIL_OK
487
488
489# A non-breaking space doesn't match \s in a regular expression. This behaviour
490# matches JSC. All the VMs have different behaviours in which characters match
491# \s so we do the same as JSC until they change.
492ecma_3/Unicode/uc-002: PASS || FAIL_OK
493
494
495# String.prototype.split on empty strings always returns an array
496# with one element (as specified in ECMA-262).
497js1_2/Array/array_split_1: FAIL_OK
498
499
500# The concat() method is defined in Array.prototype; not Array.
501js1_5/Array/regress-313153: FAIL_OK
502
Steve Block8defd9f2010-07-08 12:39:36 +0100503# The join() method is defined on Array.prototype; not Array.
504js1_5/Array/regress-474529: FAIL_OK
505
506# The lastIndexOf() method is defined on Array.prototype, not Array.
507ecma_3/Array/15.5.4.8-01: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000508
509# Properties fileName, and lineNumber of Error instances are
510# not supported. Mozilla specific extension.
511js1_5/Exceptions/errstack-001: FAIL_OK
512js1_5/Exceptions/regress-257751: FAIL_OK
513js1_5/Regress/regress-119719: FAIL_OK
514js1_5/Regress/regress-167328: FAIL_OK
515js1_5/Regress/regress-243869: FAIL_OK
516
517
518# Unsupported import/export and <xml> literals. Mozilla extensions.
519js1_5/Regress/regress-249211: FAIL_OK
520js1_5/Regress/regress-309242: FAIL_OK
521js1_5/Regress/regress-350692: FAIL_OK
522js1_5/extensions/regress-421621: FAIL_OK
523js1_5/extensions/regress-432075: FAIL_OK
524
525
526# The length of Error functions is 1 not 3.
527js1_5/Exceptions/regress-123002: FAIL_OK
528
529
530# Reserved keywords as function names, etc is not supported.
531js1_5/LexicalConventions/regress-343675: FAIL_OK
532
533
Ben Murdoch3fb3ca82011-12-02 17:19:32 +0000534# Tests if future reserved keywords of ECMA-262, edition 3 emit warnings. We
535# implement the edition 5 behaviour and fail on use of edition 5 future reserved
536# keywords as identifiers.
537js1_5/Regress/regress-240317: FAIL_OK
538
539
Steve Blocka7e24c12009-10-30 11:49:00 +0000540# Unsupported list comprehensions: [ ... for ... ] and for each.
541js1_5/Regress/regress-352009: FAIL_OK
542js1_5/Regress/regress-349648: FAIL_OK
543
544
545# Expects top level arguments (passed on command line?) to be
546# the empty string?
547js1_5/Regress/regress-336100: FAIL_OK
548
549
550# Regular expression test failures due to PCRE. We match JSC (ie, perl)
551# behavior and not the ECMA spec.
552ecma_3/RegExp/perlstress-001: PASS || FAIL_OK
553ecma_3/RegExp/regress-334158: PASS || FAIL
554
555# This test fails due to http://code.google.com/p/v8/issues/detail?id=187
556# Failure to clear captures when a lookahead is unwound.
557ecma_3/RegExp/15.10.2-1: PASS || FAIL_OK
558
559# This test requires a failure if we try to compile a function with more
560# than 65536 arguments. This seems to be a Mozilla restriction.
561js1_5/Regress/regress-290575: FAIL_OK
562
563
564# Fails because of the way function declarations are
565# handled in V8/JSC. V8 follows IE behavior and introduce
566# all nested function declarations when entering the
567# surrounding function, whereas Spidermonkey declares
568# them dynamically when the statement is executed.
569ecma_3/Function/scope-001: FAIL_OK
570ecma_3/FunExpr/fe-001: FAIL_OK
571js1_5/Scope/regress-184107: FAIL_OK
572
573
574# Function is deletable in V8 and JSC.
575js1_5/Regress/regress-352604: FAIL_OK
576
577
578# Cannot call strings as functions. Expects not to crash.
579js1_5/Regress/regress-417893: FAIL_OK
580
581
Steve Block8defd9f2010-07-08 12:39:36 +0100582# Unsupported use of "[]" as function parameter. We match JSC.
583js1_5/Regress/regress-416737-01: FAIL_OK
584js1_5/Regress/regress-416737-02: FAIL_OK
585
Steve Blocka7e24c12009-10-30 11:49:00 +0000586
587##################### FAILING TESTS #####################
588
589# This section is for tests that fail in V8 and pass in JSC.
590# Tests that fail in both V8 and JSC belong in the FAIL_OK
591# category.
592
593# This fails because we don't handle Function.prototype.apply with very large
594# numbers of arguments (depending on max stack size). 350256-02 needs more than
595# 4Mbytes of stack space.
596js1_5/Array/regress-350256-02: FAIL
597
598
Steve Blocka7e24c12009-10-30 11:49:00 +0000599# This test seems designed to fail (it produces a 700Mbyte string).
600# We fail on out of memory. The important thing is not to crash.
601js1_5/Regress/regress-303213: FAIL || TIMEOUT if $mode == debug
602
Ben Murdoch257744e2011-11-30 15:57:28 +0000603# This test fails since we now throw in String.prototype.match when apply
604# is given null or undefined as this argument (and so does firefox nightly).
605js1_5/Regress/regress-295052: FAIL
Steve Blocka7e24c12009-10-30 11:49:00 +0000606
607# Bug 1202592: New ecma_3/String/15.5.4.11 is failing.
608ecma_3/String/15.5.4.11: FAIL
609
610# Bug 1202597: New js1_5/Expressions/regress-394673 is failing.
611# Marked as: Will not fix. V8 throws an acceptable RangeError.
612js1_5/Expressions/regress-394673: FAIL
613
Steve Block8defd9f2010-07-08 12:39:36 +0100614
615# Bug 762: http://code.google.com/p/v8/issues/detail?id=762
616# We do not correctly handle assignments within "with"
617/ecma_3/Statements/12.10-01: FAIL
618
Steve Blocka7e24c12009-10-30 11:49:00 +0000619##################### MOZILLA EXTENSION TESTS #####################
620
621ecma/extensions/15.1.2.1-1: FAIL_OK
622ecma_3/extensions/regress-385393-03: FAIL_OK
623ecma_3/extensions/7.9.1: FAIL_OK
624js1_5/extensions/catchguard-001: FAIL_OK
625js1_5/extensions/catchguard-002: FAIL_OK
626js1_5/extensions/catchguard-003: FAIL_OK
627js1_5/extensions/getset-001: FAIL_OK
628js1_5/extensions/getset-003: FAIL_OK
629js1_5/extensions/no-such-method: FAIL_OK
630js1_5/extensions/regress-104077: FAIL_OK
631js1_5/extensions/regress-226078: FAIL_OK
632js1_5/extensions/regress-303277: FAIL_OK
633js1_5/extensions/regress-304897: FAIL_OK
634js1_5/extensions/regress-306738: FAIL_OK
635js1_5/extensions/regress-311161: FAIL_OK
636js1_5/extensions/regress-311583: FAIL_OK
637js1_5/extensions/regress-311792-01: FAIL_OK
638js1_5/extensions/regress-312278: FAIL_OK
639js1_5/extensions/regress-313630: FAIL_OK
640js1_5/extensions/regress-313763: FAIL_OK
641js1_5/extensions/regress-313803: FAIL_OK
642js1_5/extensions/regress-314874: FAIL_OK
643js1_5/extensions/regress-322957: FAIL_OK
644js1_5/extensions/regress-328556: FAIL_OK
645js1_5/extensions/regress-333541: FAIL_OK
646js1_5/extensions/regress-335700: FAIL_OK
647js1_5/extensions/regress-336409-1: FAIL_OK
648js1_5/extensions/regress-336409-2: FAIL_OK
649js1_5/extensions/regress-336410-2: FAIL_OK
650js1_5/extensions/regress-341956-01: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000651js1_5/extensions/regress-345967: FAIL_OK
652js1_5/extensions/regress-346494-01: FAIL_OK
653js1_5/extensions/regress-346494: FAIL_OK
654js1_5/extensions/regress-347306-02: FAIL_OK
655js1_5/extensions/regress-348986: FAIL_OK
656js1_5/extensions/regress-349616: FAIL_OK
657js1_5/extensions/regress-350312-02: FAIL_OK
658js1_5/extensions/regress-350312-03: FAIL_OK
659js1_5/extensions/regress-350531: FAIL_OK
660js1_5/extensions/regress-351102-01: FAIL_OK
661js1_5/extensions/regress-351102-02: FAIL_OK
662js1_5/extensions/regress-351102-06: FAIL_OK
663js1_5/extensions/regress-351973: FAIL_OK
664js1_5/extensions/regress-352060: FAIL_OK
665js1_5/extensions/regress-352094: FAIL_OK
666js1_5/extensions/regress-352261: FAIL_OK
667js1_5/extensions/regress-352281: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000668js1_5/extensions/regress-352455: FAIL_OK
669js1_5/extensions/regress-352604: FAIL_OK
670js1_5/extensions/regress-353214: FAIL_OK
671js1_5/extensions/regress-355339: FAIL_OK
672js1_5/extensions/regress-355497: FAIL_OK
673js1_5/extensions/regress-355622: FAIL_OK
674js1_5/extensions/regress-355736: FAIL_OK
675js1_5/extensions/regress-356085: FAIL_OK
676js1_5/extensions/regress-356106: FAIL_OK
677js1_5/extensions/regress-358594-01: FAIL_OK
678js1_5/extensions/regress-358594-02: FAIL_OK
679js1_5/extensions/regress-358594-03: FAIL_OK
680js1_5/extensions/regress-358594-04: FAIL_OK
681js1_5/extensions/regress-358594-05: FAIL_OK
682js1_5/extensions/regress-358594-06: FAIL_OK
683js1_5/extensions/regress-361346: FAIL_OK
684js1_5/extensions/regress-361360: FAIL_OK
685js1_5/extensions/regress-361558: FAIL_OK
686js1_5/extensions/regress-361571: FAIL_OK
687js1_5/extensions/regress-361856: FAIL_OK
688js1_5/extensions/regress-361964: FAIL_OK
689js1_5/extensions/regress-363988: FAIL_OK
690js1_5/extensions/regress-365869: FAIL_OK
691js1_5/extensions/regress-367630: FAIL_OK
692js1_5/extensions/regress-367923: FAIL_OK
693js1_5/extensions/regress-368859: FAIL_OK
Steve Block8defd9f2010-07-08 12:39:36 +0100694js1_5/extensions/regress-369696-01: FAIL_OK
695js1_5/extensions/regress-369696-02: FAIL_OK
696js1_5/extensions/regress-369696-03: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000697js1_5/extensions/regress-374589: FAIL_OK
698js1_5/extensions/regress-375801: FAIL_OK
699js1_5/extensions/regress-376052: FAIL_OK
700js1_5/extensions/regress-379523: FAIL_OK
701js1_5/extensions/regress-380581: FAIL_OK
702js1_5/extensions/regress-380831: FAIL_OK
703js1_5/extensions/regress-381205: FAIL_OK
704js1_5/extensions/regress-381211: FAIL_OK
705js1_5/extensions/regress-381304: FAIL_OK
706js1_5/extensions/regress-382509: FAIL_OK
707js1_5/extensions/regress-383965: FAIL_OK
708js1_5/extensions/regress-384680: FAIL_OK
709js1_5/extensions/regress-385393-09: FAIL_OK
710js1_5/extensions/regress-407501: FAIL_OK
711js1_5/extensions/regress-418730: FAIL_OK
712js1_5/extensions/regress-420612: FAIL_OK
713js1_5/extensions/regress-420869-01: FAIL_OK
714js1_5/extensions/regress-424257: FAIL_OK
715js1_5/extensions/regress-424683-01: FAIL_OK
Steve Block8defd9f2010-07-08 12:39:36 +0100716js1_5/extensions/regress-429739: FAIL_OK
717js1_5/extensions/regress-454142: FAIL_OK
718js1_5/extensions/regress-465145: FAIL_OK
719js1_5/extensions/regress-469625: FAIL_OK
720js1_5/extensions/regress-472787: FAIL_OK
Steve Blocka7e24c12009-10-30 11:49:00 +0000721js1_5/extensions/regress-44009: FAIL_OK
722js1_5/extensions/regress-50447-1: FAIL_OK
723js1_5/extensions/regress-50447: FAIL_OK
724js1_5/extensions/regress-90596-001: FAIL_OK
725js1_5/extensions/regress-90596-002: FAIL_OK
726js1_5/extensions/regress-96284-001: FAIL_OK
727js1_5/extensions/regress-96284-002: FAIL_OK
728js1_5/extensions/scope-001: FAIL_OK
729js1_5/extensions/toLocaleFormat-01: FAIL_OK
730js1_5/extensions/toLocaleFormat-02: FAIL_OK
731
732js1_5/extensions/regress-330569: TIMEOUT
733js1_5/extensions/regress-351448: TIMEOUT
734js1_5/extensions/regress-342960: FAIL_OK || TIMEOUT if $mode == debug
735# In the 64-bit version, this test takes longer to run out of memory
736# than it does in the 32-bit version when attempting to generate a huge
737# error message in debug mode.
738js1_5/extensions/regress-336410-1: FAIL_OK || TIMEOUT if ($mode == debug && $arch == x64)
739
Steve Blocka7e24c12009-10-30 11:49:00 +0000740##################### DECOMPILATION TESTS #####################
741
742# We don't really about the outcome of running the
743# decompilation tests as long as they don't crash or
744# timeout.
745
746js1_5/decompilation/regress-344120: PASS || FAIL
747js1_5/decompilation/regress-346892: PASS || FAIL
748js1_5/decompilation/regress-346902: PASS || FAIL
749js1_5/decompilation/regress-346904: PASS || FAIL
750js1_5/decompilation/regress-346915: PASS || FAIL
751js1_5/decompilation/regress-349484: PASS || FAIL
752js1_5/decompilation/regress-349489: PASS || FAIL
753js1_5/decompilation/regress-349491: PASS || FAIL
754js1_5/decompilation/regress-349596: PASS || FAIL
755js1_5/decompilation/regress-349650: PASS || FAIL
756js1_5/decompilation/regress-349663: PASS || FAIL
757js1_5/decompilation/regress-350242: PASS || FAIL
758js1_5/decompilation/regress-350263: PASS || FAIL
759js1_5/decompilation/regress-350271: PASS || FAIL
760js1_5/decompilation/regress-350666: PASS || FAIL
761js1_5/decompilation/regress-350670: PASS || FAIL
762js1_5/decompilation/regress-351104: PASS || FAIL
763js1_5/decompilation/regress-351219: PASS || FAIL
764js1_5/decompilation/regress-351336: PASS || FAIL
765js1_5/decompilation/regress-351597: PASS || FAIL
766js1_5/decompilation/regress-351625: PASS || FAIL
767js1_5/decompilation/regress-351626: PASS || FAIL
768js1_5/decompilation/regress-351693: PASS || FAIL
769js1_5/decompilation/regress-351705: PASS || FAIL
770js1_5/decompilation/regress-351793: PASS || FAIL
771js1_5/decompilation/regress-352013: PASS || FAIL
772js1_5/decompilation/regress-352022: PASS || FAIL
773js1_5/decompilation/regress-352073: PASS || FAIL
774js1_5/decompilation/regress-352202: PASS || FAIL
775js1_5/decompilation/regress-352312: PASS || FAIL
776js1_5/decompilation/regress-352360: PASS || FAIL
777js1_5/decompilation/regress-352375: PASS || FAIL
778js1_5/decompilation/regress-352453: PASS || FAIL
779js1_5/decompilation/regress-352649: PASS || FAIL
780js1_5/decompilation/regress-352873-01: PASS || FAIL
781js1_5/decompilation/regress-352873-02: PASS || FAIL
782js1_5/decompilation/regress-353000: PASS || FAIL
783js1_5/decompilation/regress-353120: PASS || FAIL
784js1_5/decompilation/regress-353146: PASS || FAIL
785js1_5/decompilation/regress-354878: PASS || FAIL
786js1_5/decompilation/regress-354910: PASS || FAIL
787js1_5/decompilation/regress-355992: PASS || FAIL
788js1_5/decompilation/regress-356083: PASS || FAIL
789js1_5/decompilation/regress-356248: PASS || FAIL
790js1_5/decompilation/regress-371692: PASS || FAIL
791js1_5/decompilation/regress-373678: PASS || FAIL
792js1_5/decompilation/regress-375639: PASS || FAIL
793js1_5/decompilation/regress-375882: PASS || FAIL
794js1_5/decompilation/regress-376564: PASS || FAIL
795js1_5/decompilation/regress-383721: PASS || FAIL
796js1_5/decompilation/regress-406555: PASS || FAIL
Steve Block8defd9f2010-07-08 12:39:36 +0100797js1_5/decompilation/regress-460870: PASS || FAIL
Steve Blocka7e24c12009-10-30 11:49:00 +0000798
799# These tests take an unreasonable amount of time so we skip them
800# in fast mode.
801
802js1_5/Regress/regress-312588: TIMEOUT || SKIP if $FAST == yes
803js1_5/Regress/regress-271716-n: PASS || SKIP if $FAST == yes
804
805
Ben Murdochb0fe1622011-05-05 13:52:32 +0100806[ $arch == arm ]
807
808# Times out and print so much output that we need to skip it to not
809# hang the builder.
810js1_5/extensions/regress-342960: SKIP
811
812# BUG(3251229): Times out when running new crankshaft test script.
Ben Murdochb0fe1622011-05-05 13:52:32 +0100813ecma_3/RegExp/regress-311414: SKIP
Ben Murdochb0fe1622011-05-05 13:52:32 +0100814ecma/Date/15.9.5.8: SKIP
815ecma/Date/15.9.5.10-2: SKIP
816ecma/Date/15.9.5.11-2: SKIP
817ecma/Date/15.9.5.12-2: SKIP
Steve Block1e0659c2011-05-24 12:43:12 +0100818js1_5/Array/regress-99120-02: SKIP
819js1_5/extensions/regress-371636: SKIP
820js1_5/Regress/regress-203278-1: SKIP
Ben Murdochb0fe1622011-05-05 13:52:32 +0100821js1_5/Regress/regress-404755: SKIP
822js1_5/Regress/regress-451322: SKIP
Steve Block1e0659c2011-05-24 12:43:12 +0100823
Ben Murdochb0fe1622011-05-05 13:52:32 +0100824
Ben Murdochb8e0da22011-05-16 14:20:40 +0100825# BUG(1040): Allow this test to timeout.
826js1_5/GC/regress-203278-2: PASS || TIMEOUT
Ben Murdochb0fe1622011-05-05 13:52:32 +0100827
Ben Murdochb0fe1622011-05-05 13:52:32 +0100828
829[ $fast == yes && $arch == arm ]
Steve Blocka7e24c12009-10-30 11:49:00 +0000830
831# In fast mode on arm we try to skip all tests that would time out,
832# since running the tests takes so long in the first place.
833
834js1_5/Regress/regress-280769-2: SKIP
835js1_5/Regress/regress-280769-3: SKIP
836js1_5/Regress/regress-244470: SKIP
837js1_5/Regress/regress-203278-1: SKIP
838js1_5/Regress/regress-290575: SKIP
839js1_5/Regress/regress-159334: SKIP
840js1_5/Regress/regress-321971: SKIP
841js1_5/Regress/regress-347306-01: SKIP
842js1_5/Regress/regress-280769-1: SKIP
843js1_5/Regress/regress-280769-5: SKIP
844js1_5/GC/regress-306788: SKIP
Steve Blocka7e24c12009-10-30 11:49:00 +0000845js1_5/GC/regress-278725: SKIP
846js1_5/GC/regress-203278-3: SKIP
847js1_5/GC/regress-311497: SKIP
848js1_5/Array/regress-99120-02: SKIP
849ecma/Date/15.9.5.22-1: SKIP
850ecma/Date/15.9.5.20: SKIP
851ecma/Date/15.9.5.12-2: SKIP
852ecma/Date/15.9.5.8: SKIP
853ecma/Date/15.9.5.9: SKIP
Steve Blocka7e24c12009-10-30 11:49:00 +0000854ecma/Date/15.9.5.11-2: SKIP
855ecma/Expressions/11.7.2: SKIP
856ecma/Expressions/11.10-2: SKIP
857ecma/Expressions/11.7.3: SKIP
858ecma/Expressions/11.10-3: SKIP
859ecma/Expressions/11.7.1: SKIP
860ecma_3/RegExp/regress-209067: SKIP