| # Copyright 2009 the V8 project authors. All rights reserved. |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions are |
| # met: |
| # |
| # * Redistributions of source code must retain the above copyright |
| # notice, this list of conditions and the following disclaimer. |
| # * Redistributions in binary form must reproduce the above |
| # copyright notice, this list of conditions and the following |
| # disclaimer in the documentation and/or other materials provided |
| # with the distribution. |
| # * Neither the name of Google Inc. nor the names of its |
| # contributors may be used to endorse or promote products derived |
| # from this software without specific prior written permission. |
| # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| prefix sputnik |
| def FAIL_OK = FAIL, OKAY |
| |
| ############################### BUGS ################################### |
| |
| # A bound function should fail on access to 'caller' and 'arguments'. |
| S15.3.4.5_A1: FAIL |
| S15.3.4.5_A2: FAIL |
| |
| # '__proto__' should be treated as a normal property in JSON. |
| S15.12.2_A1: FAIL |
| |
| ##################### DELIBERATE INCOMPATIBILITIES ##################### |
| |
| # This tests precision of trignometric functions. We're slightly off |
| # from the implementation in libc (~ 1e-17) but it's not clear if we |
| # or they are closer to the right answer, or if it even matters. |
| S15.8.2.16_A7: PASS || FAIL_OK |
| S15.8.2.18_A7: PASS || FAIL_OK |
| S15.8.2.13_A23: PASS || FAIL_OK |
| |
| # We allow calls to regexp exec() with no arguments to fail for |
| # compatibility reasons. |
| S15.10.6.2_A1_T16: FAIL_OK |
| S15.10.6.2_A12: FAIL_OK |
| S15.10.6.3_A1_T16: FAIL_OK |
| |
| # We are silent in some regexp cases where the spec wants us to give |
| # errors, for compatibility. |
| S15.10.2.11_A1_T2: FAIL |
| S15.10.2.11_A1_T3: FAIL |
| |
| # We are more lenient in which string character escapes we allow than |
| # the spec (7.8.4 p. 19) wants us to be. This is for compatibility. |
| S7.8.4_A4.3_T2: FAIL_OK |
| S7.8.4_A4.3_T2: FAIL_OK |
| S7.8.4_A6.2_T2: FAIL_OK |
| S7.8.4_A6.1_T4: FAIL_OK |
| S7.8.4_A4.3_T4: FAIL_OK |
| S7.8.4_A7.2_T2: FAIL_OK |
| S7.8.4_A7.1_T4: FAIL_OK |
| S7.8.4_A6.4_T2: FAIL_OK |
| S7.8.4_A7.4_T2: FAIL_OK |
| S7.8.4_A7.2_T4: FAIL_OK |
| S7.8.4_A4.3_T6: FAIL_OK |
| S7.8.4_A7.2_T6: FAIL_OK |
| S7.8.4_A4.3_T1: FAIL_OK |
| S7.8.4_A6.2_T1: FAIL_OK |
| S7.8.4_A4.3_T3: FAIL_OK |
| S7.8.4_A7.2_T1: FAIL_OK |
| S7.8.4_A6.4_T1: FAIL_OK |
| S7.8.4_A7.2_T3: FAIL_OK |
| S7.8.4_A7.4_T1: FAIL_OK |
| S7.8.4_A4.3_T5: FAIL_OK |
| S7.8.4_A7.2_T5: FAIL_OK |
| S7.8.4_A4.3_T1: FAIL_OK |
| S7.8.4_A6.2_T1: FAIL_OK |
| S7.8.4_A4.3_T3: FAIL_OK |
| S7.8.4_A7.2_T1: FAIL_OK |
| S7.8.4_A6.4_T1: FAIL_OK |
| S7.8.4_A7.2_T3: FAIL_OK |
| S7.8.4_A7.4_T1: FAIL_OK |
| S7.8.4_A4.3_T5: FAIL_OK |
| S7.8.4_A7.2_T5: FAIL_OK |
| |
| # Sputnik expects unicode escape sequences in RegExp flags to be interpreted. |
| # The specification requires them to be passed uninterpreted to the RegExp |
| # constructor. We now implement that. |
| S7.8.5_A3.1_T7: FAIL_OK |
| S7.8.5_A3.1_T8: FAIL_OK |
| S7.8.5_A3.1_T9: FAIL_OK |
| |
| # We allow some keywords to be used as identifiers. |
| S7.5.3_A1.15: FAIL_OK |
| S7.5.3_A1.18: FAIL_OK |
| S7.5.3_A1.21: FAIL_OK |
| S7.5.3_A1.22: FAIL_OK |
| S7.5.3_A1.23: FAIL_OK |
| S7.5.3_A1.24: FAIL_OK |
| S7.5.3_A1.26: FAIL_OK |
| |
| # This checks for non-262 behavior |
| S12.6.4_A14_T1: PASS || FAIL_OK |
| S12.6.4_R1: PASS || FAIL_OK |
| S12.6.4_R2: PASS || FAIL_OK |
| S8.4_D2.1: PASS || FAIL_OK |
| S8.4_D2.2: PASS || FAIL_OK |
| S8.4_D2.3: PASS || FAIL_OK |
| S8.4_D2.4: PASS || FAIL_OK |
| S8.4_D2.5: PASS || FAIL_OK |
| S8.4_D2.6: PASS || FAIL_OK |
| S8.4_D2.7: PASS || FAIL_OK |
| S8.4_D1.1: PASS || FAIL_OK |
| S13.2_D1.2: PASS || FAIL_OK |
| S11.4.3_D1.2: PASS || FAIL_OK |
| S7.6_D1: PASS || FAIL_OK |
| S7.6_D2: PASS || FAIL_OK |
| S15.1.2.2_D1.2: PASS || FAIL_OK |
| S13_D1_T1: PASS || FAIL_OK |
| S14_D4_T3: PASS || FAIL_OK |
| S14_D7: PASS || FAIL_OK |
| S15.5.4.11_D1.1_T2: PASS || FAIL_OK |
| S15.5.4.11_D1.1_T4: PASS || FAIL_OK |
| S15.5.2_D2: PASS || FAIL_OK |
| S15.5.4.11_D1.1_T1: PASS || FAIL_OK |
| S15.5.4.11_D1.1_T3: PASS || FAIL_OK |
| S12.6.4_D1: PASS || FAIL_OK |
| |
| # We allow function declarations within statements |
| S12.6.2_A13_T1: FAIL_OK |
| S12.6.2_A13_T2: FAIL_OK |
| S12.6.4_A13_T1: FAIL_OK |
| S12.6.4_A13_T2: FAIL_OK |
| #S12.6.4_A13_T3: FAIL_OK |
| S15.3.4.2_A1_T1: FAIL_OK |
| |
| # Linux and Mac defaults to extended 80 bit floating point format in the FPU. |
| # We follow the other major JS engines by keeping this default. |
| S8.5_A2.2: PASS, FAIL if $system == linux, FAIL if $system == macos |
| S8.5_A2.1: PASS, FAIL if $system == linux, FAIL if $system == macos |
| |
| ##################### ES3 TESTS ######################### |
| # These tests check for ES3 semantics, and differ from ES5. |
| # When we follow ES5 semantics, it's ok to fail the test. |
| |
| # Allow keywords as names of properties in object initialisers and |
| # in dot-notation property access. |
| S11.1.5_A4.1: FAIL_OK |
| S11.1.5_A4.2: FAIL_OK |
| |
| # Don't throw type errors when iterating through the undefined object. |
| S9.9_A1: FAIL_OK |
| S9.9_A2: FAIL_OK |
| |
| # Calls builtins without an explicit receiver which means that |
| # undefined is passed to the builtin. The tests expect the global |
| # object to be passed which was true in ES3 but not in ES5. |
| S11.1.1_A2: FAIL_OK |
| S15.5.4.4_A1_T3: FAIL_OK |
| S15.5.4.5_A1_T3: FAIL_OK |
| S15.5.4.6_A1_T3: FAIL_OK |
| S15.5.4.7_A1_T3: FAIL_OK |
| S15.5.4.8_A1_T3: FAIL_OK |
| S15.5.4.9_A1_T3: FAIL_OK |
| S15.5.4.10_A1_T3: FAIL_OK |
| S15.5.4.11_A1_T3: FAIL_OK |
| S15.5.4.12_A1_T3: FAIL_OK |
| S15.5.4.13_A1_T3: FAIL_OK |
| S15.5.4.14_A1_T3: FAIL_OK |
| S15.5.4.15_A1_T3: FAIL_OK |
| |
| ##################### SKIPPED TESTS ##################### |
| |
| # These tests take a looong time to run in debug mode. |
| S15.1.3.2_A2.5_T1: PASS, SKIP if $mode == debug |
| S15.1.3.1_A2.5_T1: PASS, SKIP if $mode == debug |
| |
| # V8 Bug: http://code.google.com/p/v8/issues/detail?id=1196 |
| S8.7_A5_T2: FAIL |
| |
| # Invalid test case (recent change adding var changes semantics) |
| S8.3_A1_T1: FAIL |
| # Test bug: http://code.google.com/p/sputniktests/issues/detail?id=35 |
| S15.5.4.8_A1_T1: FAIL |
| # Invalid test case (recent change adding var changes semantics) |
| S15.3_A3_T1: FAIL |
| # Invalid test case (recent change adding var changes semantics) |
| S15.3_A3_T3: FAIL |
| |
| # These tests fail because we had to add bugs to be compatible with JSC. See |
| # http://code.google.com/p/chromium/issues/detail?id=1717 |
| S15.5.4.1_A1_T2: FAIL_OK |
| S15.5.4_A1: FAIL_OK |
| S15.5.4_A3: FAIL_OK |
| S15.9.5.10_A1_T2: FAIL_OK |
| S15.9.5.11_A1_T2: FAIL_OK |
| S15.9.5.12_A1_T2: FAIL_OK |
| S15.9.5.13_A1_T2: FAIL_OK |
| S15.9.5.14_A1_T2: FAIL_OK |
| S15.9.5.15_A1_T2: FAIL_OK |
| S15.9.5.16_A1_T2: FAIL_OK |
| S15.9.5.17_A1_T2: FAIL_OK |
| S15.9.5.18_A1_T2: FAIL_OK |
| S15.9.5.19_A1_T2: FAIL_OK |
| S15.9.5.20_A1_T2: FAIL_OK |
| S15.9.5.21_A1_T2: FAIL_OK |
| S15.9.5.22_A1_T2: FAIL_OK |
| S15.9.5.23_A1_T2: FAIL_OK |
| S15.9.5.24_A1_T2: FAIL_OK |
| S15.9.5.25_A1_T2: FAIL_OK |
| S15.9.5.26_A1_T2: FAIL_OK |
| S15.9.5.27_A1_T2: FAIL_OK |
| S15.9.5.28_A1_T2: FAIL_OK |
| S15.9.5.29_A1_T2: FAIL_OK |
| S15.9.5.2_A1_T2: FAIL_OK |
| S15.9.5.30_A1_T2: FAIL_OK |
| S15.9.5.31_A1_T2: FAIL_OK |
| S15.9.5.32_A1_T2: FAIL_OK |
| S15.9.5.33_A1_T2: FAIL_OK |
| S15.9.5.34_A1_T2: FAIL_OK |
| S15.9.5.35_A1_T2: FAIL_OK |
| S15.9.5.36_A1_T2: FAIL_OK |
| S15.9.5.37_A1_T2: FAIL_OK |
| S15.9.5.38_A1_T2: FAIL_OK |
| S15.9.5.39_A1_T2: FAIL_OK |
| S15.9.5.3_A1_T2: FAIL_OK |
| S15.9.5.40_A1_T2: FAIL_OK |
| S15.9.5.41_A1_T2: FAIL_OK |
| S15.9.5.42_A1_T2: FAIL_OK |
| S15.9.5.4_A1_T2: FAIL_OK |
| S15.9.5.5_A1_T2: FAIL_OK |
| S15.9.5.6_A1_T2: FAIL_OK |
| S15.9.5.7_A1_T2: FAIL_OK |
| S15.9.5.8_A1_T2: FAIL_OK |
| S15.9.5.9_A1_T2: FAIL_OK |
| |
| [ $arch == arm ] |
| |
| # BUG(3251225): Tests that timeout with --nocrankshaft. |
| S15.1.3.1_A2.5_T1: SKIP |
| S15.1.3.2_A2.5_T1: SKIP |
| S15.1.3.1_A2.4_T1: SKIP |
| S15.1.3.1_A2.5_T1: SKIP |
| S15.1.3.2_A2.4_T1: SKIP |
| S15.1.3.2_A2.5_T1: SKIP |
| S15.1.3.3_A2.3_T1: SKIP |
| S15.1.3.4_A2.3_T1: SKIP |
| S15.1.3.1_A2.5_T1: SKIP |
| S15.1.3.2_A2.5_T1: SKIP |
| |
| [ $arch == mips ] |
| |
| # Skip all tests on MIPS. |
| *: SKIP |