blob: aeb85b047664b0baad34fbcaf389e396fb6537e7 [file] [log] [blame]
ager@chromium.orgc4c92722009-11-18 14:12:51 +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
28prefix sputnik
29def FAIL_OK = FAIL, OKAY
30
31##################### DELIBERATE INCOMPATIBILITIES #####################
32
33# 900066: Deleting elements in .arguments should disconnect the
34# element from the actual arguments. Implementing this is nontrivial
35# and we have no indication that anything on the web depends on this
36# feature.
37S13_A13_T1: FAIL_OK
38S13_A13_T2: FAIL_OK
39S13_A13_T3: FAIL_OK
40
41# This tests precision of trignometric functions. We're slightly off
42# from the implementation in libc (~ 1e-17) but it's not clear if we
43# or they are closer to the right answer, or if it even matters.
44S15.8.2.16_A7: PASS || FAIL_OK
45S15.8.2.18_A7: PASS || FAIL_OK
46S15.8.2.13_A23: PASS || FAIL_OK
47
48# We allow calls to regexp exec() with no arguments to fail for
49# compatibility reasons.
50S15.10.6.2_A1_T16: FAIL_OK
51S15.10.6.3_A1_T16: FAIL_OK
52
ager@chromium.orgc4c92722009-11-18 14:12:51 +000053# We are silent in some regexp cases where the spec wants us to give
54# errors, for compatibility.
55S15.10.2.11_A1_T2: FAIL
56S15.10.2.11_A1_T3: FAIL
57S15.10.4.1_A5_T1: FAIL
58S15.10.4.1_A5_T2: FAIL
59S15.10.4.1_A5_T3: FAIL
60S15.10.4.1_A5_T4: FAIL
61S15.10.4.1_A5_T5: FAIL
62S15.10.4.1_A5_T6: FAIL
63S15.10.4.1_A5_T7: FAIL
64S15.10.4.1_A5_T8: FAIL
65S15.10.4.1_A5_T9: FAIL
66
67# We are more lenient in which string character escapes we allow than
68# the spec (7.8.4 p. 19) wants us to be. This is for compatibility.
69S7.8.4_A4.3_T2: FAIL_OK
70S7.8.4_A4.3_T2: FAIL_OK
71S7.8.4_A6.2_T2: FAIL_OK
72S7.8.4_A6.1_T4: FAIL_OK
73S7.8.4_A4.3_T4: FAIL_OK
74S7.8.4_A7.2_T2: FAIL_OK
75S7.8.4_A7.1_T4: FAIL_OK
76S7.8.4_A6.4_T2: FAIL_OK
77S7.8.4_A7.4_T2: FAIL_OK
78S7.8.4_A7.2_T4: FAIL_OK
79S7.8.4_A4.3_T6: FAIL_OK
80S7.8.4_A7.2_T6: FAIL_OK
81S7.8.4_A4.3_T1: FAIL_OK
82S7.8.4_A6.2_T1: FAIL_OK
83S7.8.4_A4.3_T3: FAIL_OK
84S7.8.4_A7.2_T1: FAIL_OK
85S7.8.4_A6.4_T1: FAIL_OK
86S7.8.4_A7.2_T3: FAIL_OK
87S7.8.4_A7.4_T1: FAIL_OK
88S7.8.4_A4.3_T5: FAIL_OK
89S7.8.4_A7.2_T5: FAIL_OK
90S7.8.4_A4.3_T1: FAIL_OK
91S7.8.4_A6.2_T1: FAIL_OK
92S7.8.4_A4.3_T3: FAIL_OK
93S7.8.4_A7.2_T1: FAIL_OK
94S7.8.4_A6.4_T1: FAIL_OK
95S7.8.4_A7.2_T3: FAIL_OK
96S7.8.4_A7.4_T1: FAIL_OK
97S7.8.4_A4.3_T5: FAIL_OK
98S7.8.4_A7.2_T5: FAIL_OK
99
100# We allow some keywords to be used as identifiers
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000101S7.5.3_A1.26: FAIL_OK
102S7.5.3_A1.18: FAIL_OK
103S7.5.3_A1.27: FAIL_OK
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000104S7.5.3_A1.5: FAIL_OK
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000105S7.5.3_A1.9: FAIL_OK
106S7.5.3_A1.10: FAIL_OK
107S7.5.3_A1.11: FAIL_OK
fschneider@chromium.org3a5fd782011-02-24 10:10:44 +0000108# native
109S7.5.3_A1.20: FAIL_OK
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000110S7.5.3_A1.21: FAIL_OK
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000111S7.5.3_A1.22: FAIL_OK
112S7.5.3_A1.23: FAIL_OK
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000113S7.5.3_A1.15: FAIL_OK
114S7.5.3_A1.24: FAIL_OK
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000115S7.5.3_A1.16: FAIL_OK
116
117# This checks for non-262 behavior
118S12.6.4_A14_T1: PASS || FAIL_OK
119S12.6.4_R1: PASS || FAIL_OK
120S12.6.4_R2: PASS || FAIL_OK
121S8.4_D2.1: PASS || FAIL_OK
122S8.4_D2.2: PASS || FAIL_OK
123S8.4_D2.3: PASS || FAIL_OK
124S8.4_D2.4: PASS || FAIL_OK
125S8.4_D2.5: PASS || FAIL_OK
126S8.4_D2.6: PASS || FAIL_OK
127S8.4_D2.7: PASS || FAIL_OK
128S8.4_D1.1: PASS || FAIL_OK
129S13.2_D1.2: PASS || FAIL_OK
130S11.4.3_D1.2: PASS || FAIL_OK
131S7.6_D1: PASS || FAIL_OK
132S7.6_D2: PASS || FAIL_OK
133S15.1.2.2_D1.2: PASS || FAIL_OK
134S13_D1_T1: PASS || FAIL_OK
135S14_D4_T3: PASS || FAIL_OK
136S14_D7: PASS || FAIL_OK
137S15.5.4.11_D1.1_T2: PASS || FAIL_OK
138S15.5.4.11_D1.1_T4: PASS || FAIL_OK
139S15.5.2_D2: PASS || FAIL_OK
140S15.5.4.11_D1.1_T1: PASS || FAIL_OK
141S15.5.4.11_D1.1_T3: PASS || FAIL_OK
142S12.6.4_D1: PASS || FAIL_OK
143
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000144# We allow function declarations within statements
145S12.5_A9_T1: FAIL_OK
146S12.5_A9_T2: FAIL_OK
147# S12.6.2_A13_T3: FAIL_OK
148# S12.5_A9_T3: FAIL_OK
149# S12.6.1_A13_T3: FAIL_OK
150S12.1_A1: FAIL_OK
151S12.6.2_A13_T1: FAIL_OK
152S12.6.2_A13_T2: FAIL_OK
153S12.6.1_A13_T1: FAIL_OK
154S12.6.1_A13_T2: FAIL_OK
155S12.6.4_A13_T1: FAIL_OK
156S12.6.4_A13_T2: FAIL_OK
157#S12.6.4_A13_T3: FAIL_OK
158S15.3.4.2_A1_T1: FAIL_OK
159
160# Linux and Mac defaults to extended 80 bit floating point format in the FPU.
161# We follow the other major JS engines by keeping this default.
162S8.5_A2.2: PASS, FAIL if $system == linux, FAIL if $system == macos
163S8.5_A2.1: PASS, FAIL if $system == linux, FAIL if $system == macos
164
sgjesse@chromium.orgd3b3be02010-08-06 08:09:27 +0000165##################### ES3 TESTS #########################
166# These tests check for ES3 semantics, and differ from ES5.
167# When we follow ES5 semantics, it's ok to fail the test.
168
vegorov@chromium.org26c16f82010-08-11 13:41:03 +0000169# Allow keywords as names of properties in object initialisers and
170# in dot-notation property access.
sgjesse@chromium.orgd3b3be02010-08-06 08:09:27 +0000171S11.1.5_A4.1: FAIL_OK
172S11.1.5_A4.2: FAIL_OK
173
174# Don't throw type errors when iterating through the undefined object.
175S9.9_A1: FAIL_OK
176S9.9_A2: FAIL_OK
177
ricow@chromium.orgd2be9012011-06-01 06:00:58 +0000178# Calls builtins without an explicit receiver which means that
179# undefined is passed to the builtin. The tests expect the global
180# object to be passed which was true in ES3 but not in ES5.
181S11.1.1_A2: FAIL_OK
182S15.5.4.4_A1_T3: FAIL_OK
183S15.5.4.5_A1_T3: FAIL_OK
184S15.5.4.6_A1_T3: FAIL_OK
185S15.5.4.7_A1_T3: FAIL_OK
186S15.5.4.8_A1_T3: FAIL_OK
187S15.5.4.9_A1_T3: FAIL_OK
188S15.5.4.10_A1_T3: FAIL_OK
189S15.5.4.11_A1_T3: FAIL_OK
190S15.5.4.12_A1_T3: FAIL_OK
191S15.5.4.13_A1_T3: FAIL_OK
192S15.5.4.14_A1_T3: FAIL_OK
193S15.5.4.15_A1_T3: FAIL_OK
194
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000195##################### SKIPPED TESTS #####################
196
197# These tests take a looong time to run in debug mode.
198S15.1.3.2_A2.5_T1: PASS, SKIP if $mode == debug
199S15.1.3.1_A2.5_T1: PASS, SKIP if $mode == debug
200
fschneider@chromium.org3a5fd782011-02-24 10:10:44 +0000201# V8 Bug: http://code.google.com/p/v8/issues/detail?id=1196
202S8.7_A5_T2: FAIL
203
fschneider@chromium.org3a5fd782011-02-24 10:10:44 +0000204# Invalid test case (recent change adding var changes semantics)
205S8.3_A1_T1: FAIL
206# Test bug: http://code.google.com/p/sputniktests/issues/detail?id=35
207S15.5.4.8_A1_T1: FAIL
208# Invalid test case (recent change adding var changes semantics)
209S15.3_A3_T1: FAIL
210# Invalid test case (recent change adding var changes semantics)
211S15.3_A3_T3: FAIL
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000212
213# These tests fail because we had to add bugs to be compatible with JSC. See
214# http://code.google.com/p/chromium/issues/detail?id=1717
ager@chromium.orgc4c92722009-11-18 14:12:51 +0000215S15.5.4.1_A1_T2: FAIL_OK
216S15.5.4_A1: FAIL_OK
217S15.5.4_A3: FAIL_OK
218S15.9.5.10_A1_T2: FAIL_OK
219S15.9.5.11_A1_T2: FAIL_OK
220S15.9.5.12_A1_T2: FAIL_OK
221S15.9.5.13_A1_T2: FAIL_OK
222S15.9.5.14_A1_T2: FAIL_OK
223S15.9.5.15_A1_T2: FAIL_OK
224S15.9.5.16_A1_T2: FAIL_OK
225S15.9.5.17_A1_T2: FAIL_OK
226S15.9.5.18_A1_T2: FAIL_OK
227S15.9.5.19_A1_T2: FAIL_OK
228S15.9.5.20_A1_T2: FAIL_OK
229S15.9.5.21_A1_T2: FAIL_OK
230S15.9.5.22_A1_T2: FAIL_OK
231S15.9.5.23_A1_T2: FAIL_OK
232S15.9.5.24_A1_T2: FAIL_OK
233S15.9.5.25_A1_T2: FAIL_OK
234S15.9.5.26_A1_T2: FAIL_OK
235S15.9.5.27_A1_T2: FAIL_OK
236S15.9.5.28_A1_T2: FAIL_OK
237S15.9.5.29_A1_T2: FAIL_OK
238S15.9.5.2_A1_T2: FAIL_OK
239S15.9.5.30_A1_T2: FAIL_OK
240S15.9.5.31_A1_T2: FAIL_OK
241S15.9.5.32_A1_T2: FAIL_OK
242S15.9.5.33_A1_T2: FAIL_OK
243S15.9.5.34_A1_T2: FAIL_OK
244S15.9.5.35_A1_T2: FAIL_OK
245S15.9.5.36_A1_T2: FAIL_OK
246S15.9.5.37_A1_T2: FAIL_OK
247S15.9.5.38_A1_T2: FAIL_OK
248S15.9.5.39_A1_T2: FAIL_OK
249S15.9.5.3_A1_T2: FAIL_OK
250S15.9.5.40_A1_T2: FAIL_OK
251S15.9.5.41_A1_T2: FAIL_OK
252S15.9.5.42_A1_T2: FAIL_OK
253S15.9.5.4_A1_T2: FAIL_OK
254S15.9.5.5_A1_T2: FAIL_OK
255S15.9.5.6_A1_T2: FAIL_OK
256S15.9.5.7_A1_T2: FAIL_OK
257S15.9.5.8_A1_T2: FAIL_OK
258S15.9.5.9_A1_T2: FAIL_OK
259
kasperl@chromium.orga5551262010-12-07 12:49:48 +0000260[ $arch == arm ]
261
262# BUG(3251225): Tests that timeout with --nocrankshaft.
263S15.1.3.1_A2.5_T1: SKIP
264S15.1.3.2_A2.5_T1: SKIP
265S15.1.3.1_A2.4_T1: SKIP
266S15.1.3.1_A2.5_T1: SKIP
267S15.1.3.2_A2.4_T1: SKIP
268S15.1.3.2_A2.5_T1: SKIP
269S15.1.3.3_A2.3_T1: SKIP
270S15.1.3.4_A2.3_T1: SKIP
271S15.1.3.1_A2.5_T1: SKIP
272S15.1.3.2_A2.5_T1: SKIP
273
ager@chromium.org5c838252010-02-19 08:53:10 +0000274[ $arch == mips ]
275
276# Skip all tests on MIPS.
277*: SKIP