Commit 569d203a authored by lrn@chromium.org's avatar lrn@chromium.org

Removed lots of new mozilla tests depending on "options" function.

Options is used to exclude tests when running jit.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent dc207746
// Copyright 2006-2008 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.
// Sets up fake implementations of MDC built-in objects and functions
// necessary to run the tests in V8.
// Options are generally ignored (not set, if anybody asks).
function options(aOptionName) {
// Returns comma-separated list of options set.
// Toggles the option if a name is given.
return ""; // Default implementation is always false.
}
...@@ -178,8 +178,8 @@ js1_5/extensions/regress-363258: PASS || FAIL ...@@ -178,8 +178,8 @@ js1_5/extensions/regress-363258: PASS || FAIL
##################### INCOMPATIBLE TESTS ##################### ##################### INCOMPATIBLE TESTS #####################
# This section is for tests that fail in both V8 and KJS. Thus they # This section is for tests that fail in both V8 and JSC. Thus they
# have been determined to be incompatible between Mozilla and V8/KJS. # have been determined to be incompatible between Mozilla and V8/JSC.
# Fail because of toLowerCase and toUpperCase conversion. # Fail because of toLowerCase and toUpperCase conversion.
ecma/String/15.5.4.11-2: FAIL_OK ecma/String/15.5.4.11-2: FAIL_OK
...@@ -207,14 +207,21 @@ js1_5/Function/regress-338121-03: FAIL_OK ...@@ -207,14 +207,21 @@ js1_5/Function/regress-338121-03: FAIL_OK
# Length of objects whose prototype chain includes a function # Length of objects whose prototype chain includes a function
ecma_3/Function/regress-313570: FAIL_OK ecma_3/Function/regress-313570: FAIL_OK
# toPrecision argument restricted to range 1..21 in JSC/V8
js1_5/Regress/regress-452346: FAIL_OK
# Array.prototype.slice with zero arguments return undefined in JSC/V8,
# empty array in Spider/TraceMonkey.
js1_5/Array/regress-451483: FAIL_OK
#:=== RegExp:=== #:=== RegExp:===
# To be compatible with KJS we silently ignore flags that do not make # To be compatible with JSC we silently ignore flags that do not make
# sense. This test expects us to throw exceptions. # sense. This test expects us to throw exceptions.
ecma_3/RegExp/regress-57631: FAIL_OK ecma_3/RegExp/regress-57631: FAIL_OK
# PCRE doesn't allow subpattern nesting deeper than 200, this tests # PCRE doesn't allow subpattern nesting deeper than 200, this tests
# depth 500. KJS detects the case, and return null from the match, # depth 500. JSC detects the case, and return null from the match,
# and passes this test (the test doesn't check for a correct return # and passes this test (the test doesn't check for a correct return
# value). # value).
ecma_3/RegExp/regress-119909: PASS || FAIL_OK ecma_3/RegExp/regress-119909: PASS || FAIL_OK
...@@ -222,16 +229,17 @@ ecma_3/RegExp/regress-119909: PASS || FAIL_OK ...@@ -222,16 +229,17 @@ ecma_3/RegExp/regress-119909: PASS || FAIL_OK
# Difference in the way capturing subpatterns work. In JS, when the # Difference in the way capturing subpatterns work. In JS, when the
# 'minimum repeat count' is reached, the empty string must not match. # 'minimum repeat count' is reached, the empty string must not match.
# In this case, we are similar but not identical to KJS. Hard to # In this case, we are similar but not identical to JSC. Hard to
# support the JS behavior with PCRE, so maybe emulate KJS? # support the JS behavior with PCRE, so maybe emulate JSC?
# #
# Note: We do not support toSource currently so we cannot run this # Note: We do not support toSource currently so we cannot run this
# test. We should make an isolated test case for the regexp issue. # test. We should make an isolated test case for the regexp issue.
ecma_3/RegExp/regress-209919: FAIL_OK ecma_3/RegExp/regress-209919: FAIL_OK
js1_5/extensions/regress-459606: FAIL_OK
# PCRE's match limit is reached. SpiderMonkey hangs on the first one, # PCRE's match limit is reached. SpiderMonkey hangs on the first one,
# KJS returns true somehow. Maybe they up the match limit? There is # JSC returns true somehow. Maybe they up the match limit? There is
# an open V8 bug 676063 about this. # an open V8 bug 676063 about this.
ecma_3/RegExp/regress-330684: FAIL_OK ecma_3/RegExp/regress-330684: FAIL_OK
...@@ -271,13 +279,17 @@ js1_2/regexp/endLine: FAIL_OK ...@@ -271,13 +279,17 @@ js1_2/regexp/endLine: FAIL_OK
# Date trouble? # Date trouble?
js1_5/Date/regress-301738-02: FAIL_OK js1_5/Date/regress-301738-02: FAIL_OK
# Semi-arbitrary limits in Date parser (date or month of 70+ is an error,
# so that only one field can be interpreted as a year). We follow JSC instead.
ecma_3/Date/15.9.3.2-1: FAIL_OK
# This test fails for all browsers on in the CET timezone. # This test fails for all browsers on in the CET timezone.
ecma/Date/15.9.5.35-1: PASS || FAIL_OK ecma/Date/15.9.5.35-1: PASS || FAIL_OK
# Spidermonkey allows stuff in parenthesis directly after the minutes # Spidermonkey allows stuff in parenthesis directly after the minutes
# in a date. KJS does not, so we don't either. # in a date. JSC does not, so we don't either.
js1_5/Date/regress-309925-02: FAIL_OK js1_5/Date/regress-309925-02: FAIL_OK
...@@ -345,10 +357,28 @@ js1_5/Regress/regress-420919: FAIL_OK ...@@ -345,10 +357,28 @@ js1_5/Regress/regress-420919: FAIL_OK
js1_5/Regress/regress-422348: FAIL_OK js1_5/Regress/regress-422348: FAIL_OK
js1_5/Regress/regress-410852: FAIL_OK js1_5/Regress/regress-410852: FAIL_OK
ecma_3/RegExp/regress-375715-04: FAIL_OK ecma_3/RegExp/regress-375715-04: FAIL_OK
js1_5/decompilation/regress-456964-01: FAIL_OK
js1_5/decompilation/regress-437288-02: FAIL_OK
js1_5/decompilation/regress-457824: FAIL_OK
js1_5/decompilation/regress-460116-01: FAIL_OK
js1_5/decompilation/regress-460116-02: FAIL_OK
js1_5/decompilation/regress-460501: FAIL_OK
js1_5/decompilation/regress-460116-03: FAIL_OK
js1_5/decompilation/regress-461110: FAIL_OK
js1_5/decompilation/regress-456964-01: FAIL_OK
js1_5/decompilation/regress-437288-02: FAIL_OK
js1_5/decompilation/regress-457824: FAIL_OK
js1_5/decompilation/regress-460116-01: FAIL_OK
js1_5/decompilation/regress-460116-02: FAIL_OK
js1_5/decompilation/regress-460116-03: FAIL_OK
js1_5/decompilation/regress-460501: FAIL_OK
js1_5/decompilation/regress-461110: FAIL_OK
# Tests that use uneval. Non-ECMA. # Tests that use uneval. Non-ECMA.
js1_5/GC/regress-418128: FAIL_OK js1_5/GC/regress-418128: FAIL_OK
js1_5/extensions/regress-465276: FAIL_OK
# Tests that use __count__. Non-ECMA. # Tests that use __count__. Non-ECMA.
...@@ -357,6 +387,7 @@ js1_5/extensions/regress-434837-01: FAIL_OK ...@@ -357,6 +387,7 @@ js1_5/extensions/regress-434837-01: FAIL_OK
# Tests that use the watch method. Non-ECMA. # Tests that use the watch method. Non-ECMA.
js1_5/extensions/regress-435345-01: FAIL_OK js1_5/extensions/regress-435345-01: FAIL_OK
js1_5/extensions/regress-455413: FAIL_OK
# The spec specifies reverse evaluation order for < and >=. # The spec specifies reverse evaluation order for < and >=.
...@@ -405,6 +436,7 @@ js1_5/GetSet/regress-353264: FAIL_OK ...@@ -405,6 +436,7 @@ js1_5/GetSet/regress-353264: FAIL_OK
js1_5/Regress/regress-361617: FAIL_OK js1_5/Regress/regress-361617: FAIL_OK
js1_5/Regress/regress-362583: FAIL_OK js1_5/Regress/regress-362583: FAIL_OK
js1_5/extensions/regress-356378: FAIL_OK js1_5/extensions/regress-356378: FAIL_OK
js1_5/extensions/regress-452178: FAIL_OK
# 'native' *is* a keyword in V8. # 'native' *is* a keyword in V8.
...@@ -418,14 +450,6 @@ js1_5/Regress/regress-106244: FAIL_OK ...@@ -418,14 +450,6 @@ js1_5/Regress/regress-106244: FAIL_OK
js1_5/Regress/regress-317533: FAIL_OK js1_5/Regress/regress-317533: FAIL_OK
js1_5/Regress/regress-323314-1: FAIL_OK js1_5/Regress/regress-323314-1: FAIL_OK
js1_5/Regress/regress-352197: FAIL_OK js1_5/Regress/regress-352197: FAIL_OK
js1_5/Regress/regress-115436: FAIL_OK
js1_5/Regress/regress-214761: FAIL_OK
js1_5/Regress/regress-253150: FAIL_OK
js1_5/Regress/regress-306727: FAIL_OK
js1_5/Regress/regress-308566: FAIL_OK
js1_5/Regress/regress-312260: FAIL_OK
js1_5/Regress/regress-322430: FAIL_OK
js1_5/Regress/regress-383674: FAIL_OK
# Equivalent to assert(false). # Equivalent to assert(false).
...@@ -434,14 +458,14 @@ ecma_2/String/replace-001: FAIL_OK ...@@ -434,14 +458,14 @@ ecma_2/String/replace-001: FAIL_OK
# We do not strip unicode format control characters. This is really # We do not strip unicode format control characters. This is really
# required for working with non-latin character sets. We match KJS # required for working with non-latin character sets. We match JSC
# and IE here. Firefox matches the spec (section 7.1). # and IE here. Firefox matches the spec (section 7.1).
ecma_3/Unicode/uc-001: FAIL_OK ecma_3/Unicode/uc-001: FAIL_OK
# A non-breaking space doesn't match \s in a regular expression. This behaviour # A non-breaking space doesn't match \s in a regular expression. This behaviour
# matches KJS. All the VMs have different behaviours in which characters match # matches JSC. All the VMs have different behaviours in which characters match
# \s so we do the same as KJS until they change. # \s so we do the same as JSC until they change.
ecma_3/Unicode/uc-002: FAIL_OK ecma_3/Unicode/uc-002: FAIL_OK
...@@ -468,6 +492,8 @@ js1_5/Regress/regress-243869: FAIL_OK ...@@ -468,6 +492,8 @@ js1_5/Regress/regress-243869: FAIL_OK
js1_5/Regress/regress-249211: FAIL_OK js1_5/Regress/regress-249211: FAIL_OK
js1_5/Regress/regress-309242: FAIL_OK js1_5/Regress/regress-309242: FAIL_OK
js1_5/Regress/regress-350692: FAIL_OK js1_5/Regress/regress-350692: FAIL_OK
js1_5/extensions/regress-421621: FAIL_OK
js1_5/extensions/regress-432075: FAIL_OK
# The length of Error functions is 1 not 3. # The length of Error functions is 1 not 3.
...@@ -488,7 +514,7 @@ js1_5/Regress/regress-349648: FAIL_OK ...@@ -488,7 +514,7 @@ js1_5/Regress/regress-349648: FAIL_OK
js1_5/Regress/regress-336100: FAIL_OK js1_5/Regress/regress-336100: FAIL_OK
# Regular expression test failures due to PCRE. We match KJS (ie, perl) # Regular expression test failures due to PCRE. We match JSC (ie, perl)
# behavior and not the ECMA spec. # behavior and not the ECMA spec.
ecma_3/RegExp/15.10.2-1: FAIL_OK ecma_3/RegExp/15.10.2-1: FAIL_OK
ecma_3/RegExp/perlstress-001: FAIL_OK ecma_3/RegExp/perlstress-001: FAIL_OK
...@@ -501,7 +527,7 @@ js1_5/Regress/regress-290575: FAIL_OK ...@@ -501,7 +527,7 @@ js1_5/Regress/regress-290575: FAIL_OK
# Fails because of the way function declarations are # Fails because of the way function declarations are
# handled in V8/KJS. V8 follows IE behavior and introduce # handled in V8/JSC. V8 follows IE behavior and introduce
# all nested function declarations when entering the # all nested function declarations when entering the
# surrounding function, whereas Spidermonkey declares # surrounding function, whereas Spidermonkey declares
# them dynamically when the statement is executed. # them dynamically when the statement is executed.
...@@ -510,7 +536,7 @@ ecma_3/FunExpr/fe-001: FAIL_OK ...@@ -510,7 +536,7 @@ ecma_3/FunExpr/fe-001: FAIL_OK
js1_5/Scope/regress-184107: FAIL_OK js1_5/Scope/regress-184107: FAIL_OK
# Function is deletable in V8 and KJS. # Function is deletable in V8 and JSC.
js1_5/Regress/regress-352604: FAIL_OK js1_5/Regress/regress-352604: FAIL_OK
...@@ -521,8 +547,8 @@ js1_5/Regress/regress-417893: FAIL_OK ...@@ -521,8 +547,8 @@ js1_5/Regress/regress-417893: FAIL_OK
##################### FAILING TESTS ##################### ##################### FAILING TESTS #####################
# This section is for tests that fail in V8 and pass in KJS. # This section is for tests that fail in V8 and pass in JSC.
# Tests that fail in both V8 and KJS belong in the FAIL_OK # Tests that fail in both V8 and JSC belong in the FAIL_OK
# category. # category.
# This fails because we don't handle Function.prototype.apply with very large # This fails because we don't handle Function.prototype.apply with very large
...@@ -552,6 +578,7 @@ js1_4/Regress/function-003: FAIL ...@@ -552,6 +578,7 @@ js1_4/Regress/function-003: FAIL
# Relies on JavaScript 1.2 / 1.3 deprecated features. # Relies on JavaScript 1.2 / 1.3 deprecated features.
js1_2/function/regexparg-1: FAIL js1_2/function/regexparg-1: FAIL
js1_2/function/Number: FAIL
# 'export' and 'import' are not keywords in V8. # 'export' and 'import' are not keywords in V8.
......
...@@ -56,11 +56,12 @@ TEST_DIRS = """ ...@@ -56,11 +56,12 @@ TEST_DIRS = """
class MozillaTestCase(test.TestCase): class MozillaTestCase(test.TestCase):
def __init__(self, filename, path, context, mode, framework): def __init__(self, filename, path, context, root, mode, framework):
super(MozillaTestCase, self).__init__(context, path) super(MozillaTestCase, self).__init__(context, path)
self.filename = filename self.filename = filename
self.mode = mode self.mode = mode
self.framework = framework self.framework = framework
self.root = root
def IsNegative(self): def IsNegative(self):
return self.filename.endswith('-n.js') return self.filename.endswith('-n.js')
...@@ -74,7 +75,8 @@ class MozillaTestCase(test.TestCase): ...@@ -74,7 +75,8 @@ class MozillaTestCase(test.TestCase):
return 'FAILED!' in output.stdout return 'FAILED!' in output.stdout
def GetCommand(self): def GetCommand(self):
result = [self.context.GetVm(self.mode), '--expose-gc'] result = [self.context.GetVm(self.mode), '--expose-gc',
join(self.root, 'mozilla-shell-emulation.js')]
result += self.framework result += self.framework
result.append(self.filename) result.append(self.filename)
return result return result
...@@ -117,7 +119,7 @@ class MozillaTestConfiguration(test.TestConfiguration): ...@@ -117,7 +119,7 @@ class MozillaTestConfiguration(test.TestConfiguration):
full_path = [x for x in full_path if x != 'data'] full_path = [x for x in full_path if x != 'data']
if self.Contains(path, full_path): if self.Contains(path, full_path):
test = MozillaTestCase(join(root, file), full_path, self.context, test = MozillaTestCase(join(root, file), full_path, self.context,
mode, framework) self.root, mode, framework)
tests.append(test) tests.append(test)
return tests return tests
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment