Home | History | Annotate | Download | only in mjsunit
      1 # Copyright 2012 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 [
     29 [ALWAYS, {
     30   # All tests in the bug directory are expected to fail.
     31   'bugs/*': [FAIL],
     32 
     33   ##############################################################################
     34   # Flaky tests.
     35   # BUG(v8:2921).
     36   'debug-step-4-in-frame': [PASS, FAIL, SLOW],
     37 
     38   ##############################################################################
     39   # Fails.
     40   'regress/regress-1119': [FAIL],
     41 
     42   # Issue 1719: Slow to collect arrays over several contexts.
     43   'regress/regress-524': [SKIP],
     44   # When that bug is fixed, revert the expectation to:
     45   # Skip long running test in debug and allow it to timeout in release mode.
     46   # regress/regress-524: [PASS, TIMEOUT, ['mode == debug', SKIP]],
     47 
     48   # This test non-deterministically runs out of memory on Windows ia32.
     49   'regress/regress-crbug-160010': [SKIP],
     50 
     51   # Issue 3389: deopt_every_n_garbage_collections is unsafe
     52   'regress/regress-2653': [SKIP],
     53 
     54   ##############################################################################
     55   # Too slow in debug mode with --stress-opt mode.
     56   'compiler/regress-stacktrace-methods': [PASS, ['mode == debug', SKIP]],
     57   'compiler/regress-funcaller': [PASS, ['mode == debug', SKIP]],
     58   'regress/regress-2318': [PASS, ['mode == debug', SKIP]],
     59   'regress/regress-create-exception': [PASS, ['mode == debug', SKIP]],
     60 
     61   ##############################################################################
     62   # Too slow in debug mode for GC stress mode.
     63   'regress/regress-crbug-217858': [PASS, ['mode == debug', SKIP]],
     64 
     65   ##############################################################################
     66   # Only regexp stuff tested, no need for extensive Crankshaft tests.
     67   'regexp-global': [PASS, NO_VARIANTS],
     68 
     69   ##############################################################################
     70   # No need to waste time for this test.
     71   'd8-performance-now': [PASS, NO_VARIANTS],
     72 
     73   ##############################################################################
     74   'big-object-literal': [PASS, ['arch == arm or arch == android_arm or arch == android_arm64', SKIP]],
     75 
     76   # Issue 488: this test sometimes times out.
     77   'array-constructor': [PASS, TIMEOUT],
     78 
     79   # Very slow on ARM and MIPS, contains no architecture dependent code.
     80   'unicode-case-overoptimization': [PASS, NO_VARIANTS, ['arch == arm or arch == android_arm or arch == android_arm64 or arch == mipsel or arch == mips', TIMEOUT]],
     81 
     82   ##############################################################################
     83   # This test expects to reach a certain recursion depth, which may not work
     84   # for debug mode.
     85   'json-recursive': [PASS, ['mode == debug', PASS, FAIL]],
     86 
     87   ##############################################################################
     88   # Skip long running tests that time out in debug mode.
     89   'generated-transition-stub': [PASS, ['mode == debug', SKIP]],
     90 
     91   ##############################################################################
     92   # This test sets the umask on a per-process basis and hence cannot be
     93   # used in multi-threaded runs.
     94   # On android there is no /tmp directory.
     95   # Currently d8-os generates a temporary directory name using Math.random(), so
     96   # we cannot run several variants of d8-os simultaneously, since all of them
     97   # get the same random seed and would generate the same directory name. Besides
     98   # that, it doesn't make sense to run several variants of d8-os anyways.
     99   'd8-os': [PASS, NO_VARIANTS, ['isolates or arch == android_arm or arch == android_arm64 or arch == android_ia32', SKIP]],
    100   'tools/tickprocessor': [PASS, ['arch == android_arm or arch == android_arm64 or arch == android_ia32', SKIP]],
    101 
    102   ##############################################################################
    103   # Long running test that reproduces memory leak and should be run manually.
    104   'regress/regress-2073': [SKIP],
    105 
    106   ##############################################################################
    107   # Tests verifying CHECK and ASSERT.
    108   'verify-check-false': [FAIL, NO_VARIANTS],
    109   'verify-assert-false': [NO_VARIANTS, ['mode == release', PASS], ['mode == debug', FAIL]],
    110 
    111   ##############################################################################
    112   # Tests with different versions for release and debug.
    113   'compiler/alloc-number': [PASS, ['mode == debug', SKIP]],
    114   'compiler/alloc-number-debug': [PASS, ['mode == release', SKIP]],
    115   'regress/regress-634': [PASS, ['mode == debug', SKIP]],
    116   'regress/regress-634-debug': [PASS, ['mode == release', SKIP]],
    117 
    118   # BUG(336820). TODO(bmeurer): Investigate.
    119   'regress/regress-336820': [PASS, FAIL],
    120 
    121   # BUG(v8:2989). PASS/FAIL on linux32 because crankshaft is turned off for
    122   # nosse2. Also for arm novfp3.
    123   'regress/regress-2989': [FAIL, NO_VARIANTS, ['system == linux and arch == x87 or arch == arm and simulator == True', PASS]],
    124 
    125   # Skip endain dependent test for mips due to different typed views of the same
    126   # array buffer.
    127   'nans': [PASS, ['arch == mips', SKIP]],
    128 
    129 }],  # ALWAYS
    130 
    131 ##############################################################################
    132 ['gc_stress == True', {
    133   # Skip tests not suitable for GC stress.
    134   'allocation-site-info': [SKIP],
    135   'array-constructor-feedback': [SKIP],
    136   'array-feedback': [SKIP],
    137   'array-literal-feedback': [SKIP],
    138   'd8-performance-now': [SKIP],
    139   'elements-kind': [SKIP],
    140   'fast-prototype': [SKIP],
    141   'opt-elements-kind': [SKIP],
    142   'osr-elements-kind': [SKIP],
    143   'regress/regress-165637': [SKIP],
    144   'regress/regress-2249': [SKIP],
    145   'debug-stepout-scope-part8': [PASS, ['arch == arm ', FAIL]],
    146 }],  # 'gc_stress == True'
    147 
    148 ##############################################################################
    149 ['no_i18n', {
    150   # Don't call runtime functions that don't exist without i18n support.
    151   'runtime-gen/availablelocalesof': [SKIP],
    152   'runtime-gen/breakiteratoradopttext': [SKIP],
    153   'runtime-gen/breakiteratorbreaktype': [SKIP],
    154   'runtime-gen/breakiteratorbreaktype': [SKIP],
    155   'runtime-gen/breakiteratorcurrent': [SKIP],
    156   'runtime-gen/breakiteratorfirst': [SKIP],
    157   'runtime-gen/breakiteratornext': [SKIP],
    158   'runtime-gen/canonicalizelanguagetag': [SKIP],
    159   'runtime-gen/createbreakiterator': [SKIP],
    160   'runtime-gen/createcollator': [SKIP],
    161   'runtime-gen/getdefaulticulocale': [SKIP],
    162   'runtime-gen/getimplfrominitializedintlobject': [SKIP],
    163   'runtime-gen/getlanguagetagvariants': [SKIP],
    164   'runtime-gen/internalcompare': [SKIP],
    165   'runtime-gen/internaldateformat': [SKIP],
    166   'runtime-gen/internaldateparse': [SKIP],
    167   'runtime-gen/internalnumberformat': [SKIP],
    168   'runtime-gen/internalnumberparse': [SKIP],
    169   'runtime-gen/isinitializedintlobject': [SKIP],
    170   'runtime-gen/isinitializedintlobjectoftype': [SKIP],
    171   'runtime-gen/markasinitializedintlobjectoftype': [SKIP],
    172   'runtime-gen/stringnormalize': [SKIP],
    173 }],
    174 
    175 ##############################################################################
    176 ['arch == arm64 or arch == android_arm64', {
    177 
    178   # Requires bigger stack size in the Genesis and if stack size is increased,
    179   # the test requires too much time to run.  However, the problem test covers
    180   # should be platform-independent.
    181   'regress/regress-1132': [SKIP],
    182 
    183   # Pass but take too long to run. Skip.
    184   # Some similar tests (with fewer iterations) may be included in arm64-js
    185   # tests.
    186   'compiler/regress-arguments': [SKIP],
    187   'compiler/regress-gvn': [SKIP],
    188   'compiler/regress-max-locals-for-osr': [SKIP],
    189   'compiler/regress-4': [SKIP],
    190   'compiler/regress-or': [SKIP],
    191   'compiler/regress-rep-change': [SKIP],
    192   'regress/regress-1117': [SKIP],
    193   'regress/regress-1145': [SKIP],
    194   'regress/regress-1849': [SKIP],
    195   'regress/regress-3247124': [SKIP],
    196   'regress/regress-634': [SKIP],
    197   'regress/regress-91008': [SKIP],
    198   'regress/regress-91010': [SKIP],
    199   'regress/regress-91013': [SKIP],
    200   'regress/regress-99167': [SKIP],
    201 
    202   # Long running tests.
    203   'regress/regress-2185': [PASS, ['mode == debug', PASS, TIMEOUT]],
    204   'regress/regress-2185-2': [PASS, TIMEOUT],
    205   'whitespaces': [PASS, TIMEOUT, SLOW],
    206 
    207   # Stack manipulations in LiveEdit is not implemented for this arch.
    208   'debug-liveedit-check-stack': [SKIP],
    209   'debug-liveedit-stack-padding': [SKIP],
    210   'debug-liveedit-restart-frame': [SKIP],
    211   'debug-liveedit-double-call': [SKIP],
    212   'harmony/generators-debug-liveedit': [SKIP],
    213 
    214   # BUG(v8:3147). It works on other architectures by accident.
    215   'regress/regress-conditional-position': [FAIL],
    216 
    217   # Slow tests.
    218   'array-concat': [PASS, SLOW],
    219   'array-constructor': [PASS, SLOW],
    220   'array-indexing': [PASS, SLOW],
    221   'array-reduce': [PASS, SLOW],
    222   'array-sort': [PASS, SLOW],
    223   'array-splice': [PASS, SLOW],
    224   'bit-not': [PASS, SLOW],
    225   'compiler/alloc-number': [PASS, SLOW],
    226   'compiler/osr-assert': [PASS, SLOW],
    227   'compiler/osr-warm': [PASS, SLOW],
    228   'compiler/osr-with-args': [PASS, SLOW],
    229   'debug-scopes': [PASS, SLOW],
    230   'generated-transition-stub': [PASS, SLOW],
    231   'json2': [PASS, SLOW],
    232   'math-floor-of-div-nosudiv': [PASS, SLOW],
    233   'math-floor-of-div': [PASS, SLOW],
    234   'mirror-object': [PASS, SLOW],
    235   'packed-elements': [PASS, SLOW],
    236   'regress/regress-1122': [PASS, SLOW],
    237   'regress/regress-2185-2': [PASS, SLOW],
    238   'regress/regress-2185': [PASS, SLOW],
    239   'regress/regress-2790': [PASS, SLOW],
    240   'regress/regress-331444': [PASS, SLOW],
    241   'regress/regress-490': [PASS, SLOW],
    242   'regress/regress-crbug-217858': [PASS, SLOW],
    243   'regress/regress-create-exception': [PASS, SLOW],
    244   'regress/regress-json-stringify-gc': [PASS, SLOW],
    245   'string-indexof-2': [PASS, SLOW],
    246   'unicodelctest-no-optimization': [PASS, SLOW],
    247   'unicodelctest': [PASS, SLOW],
    248   'unicode-test': [PASS, SLOW],
    249 }],  # 'arch == arm64'
    250 
    251 ['arch == arm64 and mode == debug and simulator_run == True', {
    252 
    253   # Pass but take too long with the simulator in debug mode.
    254   'array-sort': [PASS, TIMEOUT],
    255   'packed-elements': [SKIP],
    256   'regexp-global': [SKIP],
    257   'compiler/alloc-numbers': [SKIP],
    258   'harmony/symbols': [SKIP],
    259   # Issue 3219:
    260   'getters-on-elements': [PASS, ['gc_stress == True', FAIL]],
    261 }],  # 'arch == arm64 and mode == debug and simulator_run == True'
    262 
    263 ##############################################################################
    264 ['asan == True', {
    265   # Skip tests not suitable for ASAN.
    266   'big-array-literal': [SKIP],
    267   'big-object-literal': [SKIP],
    268   'regress/regress-crbug-178790': [SKIP],
    269 }],  # 'asan == True'
    270 
    271 ##############################################################################
    272 ['arch == arm or arch == android_arm', {
    273 
    274   # Slow tests which times out in debug mode.
    275   'try': [PASS, ['mode == debug', SKIP]],
    276   'debug-scripts-request': [PASS, ['mode == debug', SKIP]],
    277   'array-constructor': [PASS, ['mode == debug', SKIP]],
    278   'regress/regress-1122': [PASS, ['mode == debug and arch == android_arm', SKIP]],
    279 
    280   # Flaky test that can hit compilation-time stack overflow in debug mode.
    281   'unicode-test': [PASS, ['mode == debug', PASS, FAIL]],
    282 
    283   # Times out often in release mode on ARM.
    284   'compiler/regress-stacktrace-methods': [PASS, ['mode == release', TIMEOUT]],
    285   'array-splice': [PASS, TIMEOUT],
    286 
    287   # Long running test.
    288   'string-indexof-2': [PASS, TIMEOUT],
    289   'mirror-object': [PASS, TIMEOUT],
    290 
    291   # Long running tests. Skipping because having them timeout takes too long on
    292   # the buildbot.
    293   'compiler/alloc-number': [SKIP],
    294   'regress/regress-490': [SKIP],
    295   'regress/regress-634': [SKIP],
    296   'regress/regress-create-exception': [SKIP],
    297   'regress/regress-3247124': [SKIP],
    298 
    299   # Requires bigger stack size in the Genesis and if stack size is increased,
    300   # the test requires too much time to run.  However, the problem test covers
    301   # should be platform-independent.
    302   'regress/regress-1132': [SKIP],
    303 
    304   # Stack manipulations in LiveEdit is not implemented for this arch.
    305   'debug-liveedit-check-stack': [SKIP],
    306   'debug-liveedit-stack-padding': [SKIP],
    307   'debug-liveedit-restart-frame': [SKIP],
    308   'debug-liveedit-double-call': [SKIP],
    309   'harmony/generators-debug-liveedit': [SKIP],
    310 
    311   # Currently always deopt on minus zero
    312   'math-floor-of-div-minus-zero': [SKIP],
    313 
    314   ############################################################################
    315   # Slow tests.
    316   'regress/regress-2185-2': [PASS, SLOW],
    317   'mirror-object': [PASS, SLOW],
    318   'compiler/osr-with-args': [PASS, SLOW],
    319   'array-sort': [PASS, SLOW],
    320   'packed-elements': [PASS, SLOW],
    321   'regress/regress-91008': [PASS, SLOW],
    322   'regress/regress-2790': [PASS, SLOW],
    323   'regress/regress-json-stringify-gc': [PASS, SLOW],
    324   'regress/regress-1122': [PASS, SLOW],
    325 }],  # 'arch == arm or arch == android_arm'
    326 
    327 ##############################################################################
    328 ['arch == mipsel or arch == mips', {
    329 
    330   # Slow tests which times out in debug mode.
    331   'try': [PASS, ['mode == debug', SKIP]],
    332   'debug-scripts-request': [PASS, ['mode == debug', SKIP]],
    333   'array-constructor': [PASS, ['mode == debug', SKIP]],
    334 
    335   # Times out often in release mode on MIPS.
    336   'compiler/regress-stacktrace-methods': [PASS, ['mode == release', TIMEOUT]],
    337   'array-splice': [PASS, TIMEOUT],
    338 
    339   # Long running test.
    340   'mirror-object': [PASS, TIMEOUT],
    341   'string-indexof-2': [PASS, TIMEOUT],
    342 
    343   # Long running tests. Skipping because having them timeout takes too long on
    344   # the buildbot.
    345   'compiler/alloc-number': [SKIP],
    346   'regress/regress-490': [SKIP],
    347   'regress/regress-634': [SKIP],
    348   'regress/regress-create-exception': [SKIP],
    349   'regress/regress-3247124': [SKIP],
    350 
    351   # Requires bigger stack size in the Genesis and if stack size is increased,
    352   # the test requires too much time to run.  However, the problem test covers
    353   # should be platform-independent.
    354   'regress/regress-1132': [SKIP],
    355 
    356   # Stack manipulations in LiveEdit is not implemented for this arch.
    357   'debug-liveedit-check-stack': [SKIP],
    358   'debug-liveedit-stack-padding': [SKIP],
    359   'debug-liveedit-restart-frame': [SKIP],
    360   'debug-liveedit-double-call': [SKIP],
    361   'harmony/generators-debug-liveedit': [SKIP],
    362 
    363   # Currently always deopt on minus zero
    364   'math-floor-of-div-minus-zero': [SKIP],
    365 }],  # 'arch == mipsel or arch == mips'
    366 
    367 ##############################################################################
    368 # Native Client uses the ARM simulator so will behave similarly to arm
    369 # on mjsunit tests.
    370 # TODO(bradchen): enable more tests for NaCl V8 when it stops using
    371 # the ARM simulator.
    372 ##############################################################################
    373 ['arch == nacl_ia32 or arch == nacl_x64', {
    374   # There is no /tmp directory for NaCl runs
    375   'd8-os': [SKIP],
    376 
    377   # Stack manipulations in LiveEdit is not implemented for this arch.
    378   'debug-liveedit-check-stack': [SKIP],
    379   'debug-liveedit-stack-padding': [SKIP],
    380   'debug-liveedit-restart-frame': [SKIP],
    381   'debug-liveedit-double-call': [SKIP],
    382   'harmony/generators-debug-liveedit': [SKIP],
    383 
    384   # NaCl builds have problems with this test since Pepper_28.
    385   # V8 Issue 2786
    386   'math-exp-precision': [SKIP],
    387 
    388   # Requires bigger stack size in the Genesis and if stack size is increased,
    389   # the test requires too much time to run.  However, the problem test covers
    390   # should be platform-independent.
    391   'regress/regress-1132': [SKIP],
    392 
    393   # Poor performance for NaCl V8 causes an assertion failure for this test.
    394   'regress/regress-165637': [SKIP],
    395 
    396   # Skip long running test that times out in debug mode and goes OOM on NaCl.
    397   'regress/regress-crbug-160010': [SKIP],
    398 
    399   # Bug(v8:2978).
    400   'lithium/MathExp': [PASS, FAIL],
    401 
    402   # Lead to OOM:
    403   'string-oom-*': [SKIP],
    404 
    405   # Crashes.
    406   'harmony/private': [SKIP],
    407   'harmony/symbols': [SKIP],
    408 }],  # 'arch == nacl_ia32 or arch == nacl_x64'
    409 
    410 ##############################################################################
    411 ['deopt_fuzzer == True', {
    412 
    413   # Skip tests that are not suitable for deoptimization fuzzing.
    414   'assert-opt-and-deopt': [SKIP],
    415   'never-optimize': [SKIP],
    416   'regress/regress-2185-2': [SKIP],
    417   'harmony/object-observe': [SKIP],
    418   'readonly': [SKIP],
    419   'array-feedback': [SKIP],
    420 
    421   # Deopt every n garbage collections collides with deopt every n times.
    422   'regress/regress-2653': [SKIP],
    423 }],  # 'deopt_fuzzer == True'
    424 ]
    425