From e25dead515b5c6792758c4ac1f30ea2377b4aa7d Mon Sep 17 00:00:00 2001 From: "bclary%bclary.com" Date: Thu, 3 Jan 2008 04:53:12 +0000 Subject: [PATCH] JavaScript Tests - regression test for bug 351463, not part of the buidl --- .../js1_5/extensions/regress-351463-01.js | 287 ++++++++++++++++++ js/tests/public-failures.txt | 2 + 2 files changed, 289 insertions(+) create mode 100755 js/tests/js1_5/extensions/regress-351463-01.js diff --git a/js/tests/js1_5/extensions/regress-351463-01.js b/js/tests/js1_5/extensions/regress-351463-01.js new file mode 100755 index 00000000000..65ddb55fd6e --- /dev/null +++ b/js/tests/js1_5/extensions/regress-351463-01.js @@ -0,0 +1,287 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is JavaScript Engine testing utilities. + * + * The Initial Developer of the Original Code is + * Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2007 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +var gTestfile = 'regress-351463-01.js'; +//----------------------------------------------------------------------------- +var BUGNUMBER = 351463; +var summary = 'Treat hyphens as not special adjacent to CharacterClassEscapes in character classes'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + var r; + var s = 'a0- z'; + + r = '([\\d-\\s]+)'; + expect = ['0- ', '0- '] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\s-\\d]+)'; + expect = ['0- ', '0- '] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\D-\\s]+)'; + expect = ['a', 'a'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\s-\\D]+)'; + expect = ['a', 'a'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\d-\\S]+)'; + expect = ['a0-', 'a0-'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\S-\\d]+)'; + expect = ['a0-', 'a0-'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\D-\\S]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\S-\\D]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + +// -- + + r = '([\\w-\\s]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\s-\\w]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\W-\\s]+)'; + expect = ['- ', '- '] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\s-\\W]+)'; + expect = ['- ', '- '] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\w-\\S]+)'; + expect = ['a0-', 'a0-'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\S-\\w]+)'; + expect = ['a0-', 'a0-'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\W-\\S]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + r = '([\\S-\\W]+)'; + expect = ['a0- z', 'a0- z'] + ''; + actual = null; + + try + { + actual = new RegExp(r).exec(s) + ''; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary + ': /' + r + '/.exec("' + s + '")'); + + + exitFunc ('test'); +} diff --git a/js/tests/public-failures.txt b/js/tests/public-failures.txt index ec8c2775056..8a221c136e2 100644 --- a/js/tests/public-failures.txt +++ b/js/tests/public-failures.txt @@ -191,6 +191,8 @@ TEST_ID=js1_5/extensions/regress-330569.js, TEST_BRANCH=1.8.1, TEST_RESULT=FAILE TEST_ID=js1_5/extensions/regress-330569.js, TEST_BRANCH=1.8.1, TEST_RESULT=FAILED, TEST_BUILDTYPE=(debug|opt), TEST_TYPE=browser, TEST_OS=(linux|mac|win32), TEST_MACHINE=.*, TEST_PROCESSORTYPE=.*, TEST_KERNEL=.*, TEST_DATE=.*, TEST_TIMEZONE=.*, TEST_DESCRIPTION=EXIT STATUS: TIMED OUT (`[`0`-`9`.``]``+` seconds), BUGNUMBER: 330569; STATUS: RegExp - throw InternalError on too complex regular expressions TEST_ID=js1_5/extensions/regress-351448.js, TEST_BRANCH=1.8.1, TEST_RESULT=FAILED TIMED OUT, TEST_BUILDTYPE=(debug|opt), TEST_TYPE=shell, TEST_OS=(linux|mac|win32), TEST_MACHINE=.*, TEST_PROCESSORTYPE=.*, TEST_KERNEL=.*, TEST_DATE=.*, TEST_TIMEZONE=.*, TEST_DESCRIPTION= expected: actual: reason: Testcase produced no output! TEST_ID=js1_5/extensions/regress-351448.js, TEST_BRANCH=1.8.1, TEST_RESULT=FAILED, TEST_BUILDTYPE=(debug|opt), TEST_TYPE=browser, TEST_OS=(linux|mac|win32), TEST_MACHINE=.*, TEST_PROCESSORTYPE=.*, TEST_KERNEL=.*, TEST_DATE=.*, TEST_TIMEZONE=.*, TEST_DESCRIPTION=EXIT STATUS: TIMED OUT (`[`0`-`9`.``]``+` seconds), BUGNUMBER: 351448; STATUS: RegExp - throw InternalError on too complex regular expressions +TEST_ID=js1_5/extensions/regress-351463-01.js, TEST_BRANCH=1.8.1, TEST_RESULT=FAILED, TEST_BUILDTYPE=(debug|opt), TEST_TYPE=(browser|shell), TEST_OS=(linux|mac|win32), TEST_MACHINE=.*, TEST_PROCESSORTYPE=.*, TEST_KERNEL=.*, TEST_DATE=.*, TEST_TIMEZONE=.*, TEST_DESCRIPTION=`.``*`/([\d-\S]+)/.exec("a0- z") expected: a0-,a0- actual: SyntaxError: invalid range in character class reason: Expected value 'a0-,a0-', Actual value 'SyntaxError: invalid range in character class' +TEST_ID=js1_5/extensions/regress-351463-01.js, TEST_BRANCH=1.8.1, TEST_RESULT=FAILED, TEST_BUILDTYPE=(debug|opt), TEST_TYPE=(browser|shell), TEST_OS=(linux|mac|win32), TEST_MACHINE=.*, TEST_PROCESSORTYPE=.*, TEST_KERNEL=.*, TEST_DATE=.*, TEST_TIMEZONE=.*, TEST_DESCRIPTION=`.``*`/([\d-\s]+)/.exec("a0- z") expected: 0- ,0- actual: SyntaxError: invalid range in character class reason: Expected value '0- ,0- ', Actual value 'SyntaxError: invalid range in character class' TEST_ID=js1_5/extensions/regress-352455.js, TEST_BRANCH=1.8.1, TEST_RESULT=FAILED, TEST_BUILDTYPE=(debug|opt), TEST_TYPE=(browser|shell), TEST_OS=(linux|mac|win32), TEST_MACHINE=.*, TEST_PROCESSORTYPE=.*, TEST_KERNEL=.*, TEST_DATE=.*, TEST_TIMEZONE=.*, TEST_DESCRIPTION=Eval object with non-function getters/setters expected: SyntaxError: invalid getter usage actual: reason: Expected value 'SyntaxError: invalid getter usage', Actual value '' TEST_ID=js1_5/extensions/regress-353214.js, TEST_BRANCH=1.8.1, TEST_RESULT=FAILED, TEST_BUILDTYPE=(debug|opt), TEST_TYPE=(browser|shell), TEST_OS=(linux|mac|win32), TEST_MACHINE=.*, TEST_PROCESSORTYPE=.*, TEST_KERNEL=.*, TEST_DATE=.*, TEST_TIMEZONE=.*, TEST_DESCRIPTION=decompilation of |function() { (function ([x]) { })(); eval("return 3;") }| expected: function ( ) { ( function ( [ x ] ) { } ( ) ) ; eval ( " return 3 ;" ) ; } actual: function ( ) { ( function ( [ x ] ) { } ) ( ) ; eval ( " return 3 ;" ) ; } reason: Expected value ' function ( ) { ( function ( [ x ] ) { } ( ) ) ; eval ( " return 3 ;" ) ; } ', Actual value ' function ( ) { ( function ( [ x ] ) { } ) ( ) ; eval ( " return 3 ;" ) ; } ' TEST_ID=js1_5/extensions/regress-355736.js, TEST_BRANCH=1.8.1, TEST_RESULT=FAILED, TEST_BUILDTYPE=(debug|opt), TEST_TYPE=(browser|shell), TEST_OS=(linux|mac|win32), TEST_MACHINE=.*, TEST_PROCESSORTYPE=.*, TEST_KERNEL=.*, TEST_DATE=.*, TEST_TIMEZONE=.*, TEST_DESCRIPTION=Decompilation of "[reserved]" has extra quotes: 1 expected: function ( ) { [ super ] = q ; } actual: function ( ) { [ " super " ] = q ; } reason: Expected value ' function ( ) { [ super ] = q ; } ', Actual value ' function ( ) { [ " super " ] = q ; } '