diff options
author | Elliot Kroo <kroo@appjet.com> | 2010-03-11 15:21:30 -0800 |
---|---|---|
committer | Elliot Kroo <kroo@appjet.com> | 2010-03-11 15:21:30 -0800 |
commit | 98e2821b38a775737e42a2479a6bc65107210859 (patch) | |
tree | 55939a8ba1dce4f4e48ebb13b658061d62bf1b9a /trunk/infrastructure/rhino1_7R1/testsrc | |
parent | c1894c8e0a52f4e3d2f89fa92f0066bbf0fcf1b1 (diff) | |
download | etherpad-98e2821b38a775737e42a2479a6bc65107210859.tar.gz etherpad-98e2821b38a775737e42a2479a6bc65107210859.tar.xz etherpad-98e2821b38a775737e42a2479a6bc65107210859.zip |
reorganizing the first level of folders (trunk/branch folders are not the git way :)
Diffstat (limited to 'trunk/infrastructure/rhino1_7R1/testsrc')
10 files changed, 0 insertions, 2632 deletions
diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/base.skip b/trunk/infrastructure/rhino1_7R1/testsrc/base.skip deleted file mode 100644 index 35d6c54..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/base.skip +++ /dev/null @@ -1,685 +0,0 @@ -# Rhino base skip list: these are tests that are always skipped for Rhino - -# These tests are skipped by Rhino either because a bug with a regression -# test has yet to be fixed, or because the test is not applicable to Rhino. -# - -# timer resolution test -js1_5/extensions/regress-363258.js - -# Needs investigation -js1_7/regress/regress-406477.js -e4x/extensions/regress-410192.js - -# should be investigated: OutOfMemoryError -js1_5/Regress/regress-330352.js - -# test consumes much memory, will get OutOfMemoryError depending on JVM -# settings -js1_5/extensions/regress-367501-04.js - -# stress test that can potentially time out -js1_5/Regress/regress-404755.js - -# should be investigated: semicolon insertion -ecma_3/LexicalConventions/7.9.1.js -ecma_3/extensions/7.9.1.js - -# tests that do not work on non-English locales or for timezones outside the US -ecma_3/Date/15.9.5.5.js -js1_5/Regress/regress-58116.js - -# Fails on Macs? -lc2/JavaToJS/char-002.js - -# Stress test; Reports of StackOverflowError (Mac only?) -js1_5/Regress/regress-98901.js - -# performance regression test -js1_5/Array/regress-99120-01.js -js1_5/extensions/regress-371636.js - -# large concatenation of strings -js1_5/Function/regress-338121-01.js -js1_5/Function/regress-338121-02.js -js1_5/Function/regress-338121-03.js - -# needs investigation: Date corner case -ecma_3/Date/15.9.5.5-02.js - -# Infinite recursion -e4x/Regress/regress-394941.js - -# GC tests -js1_5/GC - -# bad test: random string generated will be too long about 1% of the time -lc3/JavaArray/ToArray-001.js - -# would imply we would always need an activation for every non-leaf func -js1_5/Regress/regress-383682.js - -# test depends on E4X, but test framework calls version(150) -js1_5/Regress/regress-309242.js - -# performance test: Global vars should not be more than 2.5 times slower than local -js1_5/Regress/regress-169559.js - -# infinite recursion -js1_5/Regress/regress-234389.js - -# object watch not implemented -js1_5/Regress/regress-240577.js -js1_5/Function/regress-364023.js -js1_5/Object/regress-362872-01.js -js1_5/Object/regress-362872-02.js -js1_5/Regress/regress-385393-06.js -js1_5/extensions/regress-385393-09.js -js1_7/GC/regress-381374.js - -# toLocaleFormat not implemented -js1_5/extensions/toLocaleFormat-01.js -js1_5/extensions/toLocaleFormat-02.js - -# source too complex -js1_5/Expressions/regress-394673.js - -# import, export not implemented -js1_5/Regress/regress-249211.js -js1_7/lexical/regress-346642-03.js - -# concatentated string too large -js1_5/Regress/regress-280769-1.js - -# stack overflow -js1_5/Regress/regress-280769-2.js - -# performance tests -js1_5/Regress/regress-313967-01.js -js1_5/Regress/regress-313967-02.js -js1_5/Array/regress-99120-02.js - -# concatentated string too large -js1_5/Regress/regress-347306-01.js - -# import, export not implemented -js1_5/decompilation/regress-349484.js - -# concatenated string too large -js1_5/String/regress-157334-01.js -js1_5/String/regress-56940-01.js -js1_5/String/regress-56940-02.js - -# runs out of heap -js1_5/Regress/regress-271716-n.js -js1_5/Regress/regress-303213.js -js1_5/Regress/regress-312588.js -js1_5/Array/regress-157652.js -js1_5/Regress/regress-330352.js - -# Tests that create very large strings by concatentation -js1_5/extensions/regress-336409-1.js -js1_5/extensions/regress-336409-2.js -js1_5/extensions/regress-336410-1.js -js1_5/extensions/regress-336410-2.js -e4x/XML/regress-324422-1.js -js1_5/Function/regress-338001.js -js1_5/Regress/regress-159334.js -js1_5/Regress/regress-191633.js -js1_5/Regress/regress-280769-3.js -js1_5/Regress/regress-280769-4.js -js1_5/String/regress-314890.js -js1_5/String/regress-322772.js -js1_5/extensions/regress-363988.js - -# bug 152646 Will not fix this in Rhino; too much of a corner case -js1_5/Regress/regress-152646.js - -#Verify error for bad branch -js1_5/Regress/regress-96526-001.js -js1_5/Regress/regress-96526-002.js -js1_5/Regress/regress-96526-003.js - -# JSObject not used for Rhino LiveConnect -lc3/ConvertJSObject -lc3/Exceptions/throw_js_types.js -lc3/JavaClass/ToJSObject-001.js -lc3/JSObject/ToJSObject-001.js - -#Rhino implements Date.toLocaleTimeString() differently than SpiderMonkey -ecma_3/Date/15.9.5.7.js - -#Rhino - as permitted by ECMA - does not allow indirect calls to eval -js1_4/Eval/eval-001.js -js1_4/Eval/eval-002.js -js1_4/Eval/eval-003.js -js1_5/Regress/regress-68498-003.js - -#Rhino compiled mode is limited by Java classfile size limitations -#js1_5/Regress/regress-80981.js -#js1_5/Regress/regress-90445.js -#js1_5/Regress/regress-111557.js - -#Rhino relies on JVM to throw StackOverflow exception and does not -#detect too deep recursion explicitly. -js1_5/extensions/regress-192465.js -js1_5/extensions/regress-226507.js -js1_5/Regress/regress-89443.js - -# Skip these two; see http://bugzilla.mozilla.org/show_bug.cgi?id=81086, large -# switch statement -#ecma_3/Statements/regress-74474-002.js -#ecma_3/Statements/regress-74474-003.js -#Compiled mode cannot catch infinite recursion errors -js1_5/Regress/regress-96128-n.js -js1_5/Exceptions/regress-121658.js - -# This test uses the (non-ECMA) 'it' object of SpiderMonkey -js1_2/version120/regress-99663.js - -# This test uses the gc() function of SpiderMonkey -ecma_3/Function/regress-104584.js - -#This test uses the Error.stack property of SpiderMonkey (non-ECMA) -js1_5/Exceptions/errstack-001.js - -#This test uses the clone() function in SpiderMonkey's js.c file -#js1_5/Regress/regress-127557.js # apparently works, which doesn't make sense - -#These tests break with new Unicode in JDK 1.4 -ecma/String/15.5.4.11-2.js -ecma/String/15.5.4.11-5.js -ecma/String/15.5.4.12-1.js -ecma/String/15.5.4.12-4.js -ecma/String/15.5.4.12-5.js - -# Rhino doesn't implement the (non-ECMA) f.caller property -js1_5/Function/regress-222029-001.js -js1_5/Function/regress-222029-002.js - -# WONTFIX bug 119719 -js1_5/Regress/regress-119719.js - -# Bug Number 240317 relaxed errors for reserved identifiers but Rhino did not -js1_5/Regress/regress-240317.js - -# Spidermonkey now defaults lineNumber and fileName -# to the location and file where the exception occured. -# exclude new test which assumes the defaults are -# set according to Spidermonkey. -js1_5/extensions/regress-50447-1.js - -# Invalid bug -e4x/Regress/regress-278112.js - -# Invalid test? Cannot convert NaN to java.lang.Long -lc3/template.js - -# Depends on generators being closed due to a call to gc(). Java finalizers -# are not run immediately in a call to gc(), but instead usuallly are run -# later on a different thread. -js1_7/geniter/regress-347739.js -js1_7/geniter/regress-349012-01.js -js1_7/geniter/regress-349331.js - -# function named "yield" -js1_7/lexical/regress-351515.js - -# unimplemented "options" shell function -js1_7/block/regress-347559.js -js1_5/Regress/regress-383674.js - -# decompilation -js1_7/block/regress-344601.js -js1_7/block/regress-351794.js -js1_5/Regress/regress-10278.js - -# bad test: will fail if time of day increments a second between calls to Date() -ecma/Date/15.9.2.1.js -ecma/Date/15.9.2.2-2.js - -# JS 1.7 not yet implemented -js1_7/decompilation -# "y" flag for regexps -js1_7/regexp/yflag.js -# yield and xml-filtering predicate -js1_7/geniter/regress-352605.js -# js1_7 needs investigation -js1_7/extensions/basic-for-each.js -js1_7/extensions/regress-346642-06.js -js1_7/extensions/regress-351102-03.js -js1_7/extensions/regress-351102-04.js -js1_7/extensions/regress-351102-05.js -js1_7/extensions/regress-351102-07.js -js1_7/extensions/regress-353214-01.js -js1_7/extensions/regress-353214-02.js -js1_7/extensions/regress-353249.js -js1_7/extensions/regress-353454.js -js1_7/extensions/regress-354945-02.js -js1_7/extensions/regress-355145.js -js1_7/extensions/regress-367629.js -js1_7/extensions/regress-368213.js -js1_7/extensions/regress-368224.js -js1_7/extensions/regress-379482.js -js1_7/extensions/regress-379566.js -js1_7/extensions/regress-381301.js -js1_7/extensions/regress-381303.js -js1_7/iterable/regress-340526-02.js -js1_7/regress/regress-350387.js -js1_7/regress/regress-351503-01.js -js1_7/regress/regress-351503-02.js -js1_7/regress/regress-352870-01.js -js1_7/regress/regress-352870-02.js -js1_7/regress/regress-363040-01.js -js1_7/regress/regress-363040-02.js -js1_7/regress/regress-375695.js -js1_7/regress/regress-379483.js - -# JS 1.8 not yet implemented -js1_8 - -# nondeterministic -js1_5/Regress/regress-211590.js - -# long-running tests -ecma/Date/15.9.5.10-2.js -ecma/Date/15.9.5.11-2.js -ecma/Date/15.9.5.12-2.js -ecma/Date/15.9.5.8.js -js1_5/Regress/regress-366122.js - -# "options" built-in function -ecma_2/Exceptions/lexical-011.js -ecma_2/Exceptions/lexical-014.js -ecma_2/Exceptions/lexical-016.js -ecma_2/Exceptions/lexical-021.js -ecma_2/LexicalConventions/keywords-001.js -js1_6/Regress/regress-378492.js -js1_5/Regress/regress-115436.js -js1_5/Regress/regress-214761.js -js1_5/Regress/regress-253150.js -js1_5/Regress/regress-306633.js -js1_7/iterable/regress-355075-01.js -js1_7/iterable/regress-355075-02.js - -# Function "exec" must be called directly, and not by way of a function of -# another name. -js1_5/extensions/regress-367119-01.js -js1_5/extensions/regress-367119-02.js - -# Obsolete JS 1.2 behavior -js1_2/operator/equality.js -js1_3/regress/function-001-n.js -js1_3/Script/function-001-n.js -js1_2/function/function-001-n.js -ecma_2/Exceptions/function-001.js - -# likely bugs. need investigation -js1_6/Array/regress-386030.js -ecma_3/Array/regress-387501.js -js1_7/lexical/regress-336376-01.js - -# minor decompilation incompatibility -js1_5/extensions/regress-384680.js - -# uninvestigated failures. May be some bugs in here. -e4x/Regress/regress-373082.js -e4x/XML/regress-376773.js -e4x/decompilation/regress-352013.js -e4x/decompilation/regress-352789.js -e4x/extensions/regress-374163.js -js1_5/Regress/regress-346237.js -js1_5/decompilation/regress-351219.js -js1_5/decompilation/regress-352453.js -js1_5/decompilation/regress-353146.js -js1_5/decompilation/regress-375882.js -js1_5/extensions/regress-330569.js -js1_5/extensions/regress-351448.js -js1_5/extensions/regress-355736.js -js1_5/extensions/regress-374589.js -e4x/Expressions/11.1.4-01.js -e4x/Expressions/11.1.4-02.js -e4x/Expressions/11.1.4-03.js -e4x/Expressions/11.1.4-04.js -e4x/Expressions/11.1.4-08.js -e4x/Expressions/11.1.4.js -e4x/Expressions/11.6.1.js -e4x/GC/regress-280844-1.js -e4x/GC/regress-280844-1.js -e4x/GC/regress-280844-2.js -e4x/GC/regress-280844-2.js -e4x/GC/regress-313952-02.js -e4x/GC/regress-324278.js -e4x/GC/regress-324278.js -e4x/GC/regress-339785.js -e4x/GC/regress-357063-01.js -e4x/GC/regress-357063-02.js -e4x/Global/13.1.2.1.js -e4x/Regress/regress-257679.js -e4x/Regress/regress-278112.js -e4x/Regress/regress-308111.js -e4x/Regress/regress-308111.js -e4x/Regress/regress-309897.js -e4x/Regress/regress-309897.js -e4x/Regress/regress-311580.js -e4x/Regress/regress-319872.js -e4x/Regress/regress-319872.js -e4x/Regress/regress-321547.js -e4x/Regress/regress-322499.js -e4x/Regress/regress-323338-1.js -e4x/Regress/regress-323338-2.js -e4x/Regress/regress-327564.js -e4x/Regress/regress-329257.js -e4x/Regress/regress-331558.js -e4x/Regress/regress-344455.js -e4x/Regress/regress-347155.js -e4x/Regress/regress-347155.js -e4x/decompilation/regress-350226.js -e4x/Regress/regress-350238.js -e4x/decompilation/regress-350531.js -e4x/Regress/regress-350629.js -e4x/decompilation/regress-351706.js -e4x/decompilation/regress-351988.js -e4x/Regress/regress-352097.js -e4x/Regress/regress-352223.js -e4x/decompilation/regress-352649.js -e4x/Regress/regress-354998.js -e4x/Regress/regress-355478.js -e4x/Regress/regress-356238-02.js -e4x/Regress/regress-356238-03.js -e4x/Regress/regress-361451.js -e4x/Regress/regress-364017.js -e4x/Regress/regress-369740.js -e4x/Regress/regress-370016.js -e4x/Regress/regress-370048-01.js -e4x/Regress/regress-370048-02.js -e4x/Regress/regress-370372.js -e4x/Regress/regress-371369.js -e4x/Regress/regress-372563.js -e4x/TypeConversion/10.2.1.js -e4x/TypeConversion/10.5.1.js -e4x/TypeConversion/10.5.js -e4x/TypeConversion/10.6.1.js -e4x/TypeConversion/10.6.js -e4x/TypeConversion/regress-302097.js -e4x/Types/9.1.1.10.js -e4x/Types/9.1.1.11.js -e4x/Types/9.1.1.12.js -e4x/Types/9.1.1.13.js -e4x/Types/9.1.1.4.js -e4x/Types/9.1.1.5.js -e4x/Types/9.1.1.7.js -e4x/Types/9.1.1.8.js -e4x/Types/9.1.1.9.js -e4x/Types/9.2.1.10.js -e4x/Types/9.2.1.3.js -e4x/Types/9.2.1.4.js -e4x/Types/9.2.1.5.js -e4x/Types/9.2.1.6.js -e4x/Types/9.2.1.7.js -e4x/Types/9.2.1.9.js -e4x/XML/13.4.3.js -e4x/XML/13.4.4.1.js -e4x/XML/13.4.4.10.js -e4x/XML/13.4.4.17.js -e4x/XML/13.4.4.26.js -e4x/XML/13.4.4.28.js -e4x/XML/13.4.4.3-01.js -e4x/XML/13.4.4.3-02.js -e4x/XML/regress-324422-2.js -e4x/XMLList/regress-373072.js -e4x/decompilation/decompile-xml-escapes.js -e4x/extensions/regress-312196.js -e4x/extensions/regress-313080.js -e4x/extensions/regress-337226.js -e4x/extensions/regress-352846-01.js -e4x/extensions/regress-352846-02.js -e4x/extensions/regress-352846-03.js -e4x/extensions/regress-353165.js -ecma/Array/15.4.3.1-2.js -ecma/Array/15.4.5.1-1.js -ecma/Boolean/15.6.3.1-1.js -ecma/FunctionObjects/15.3.3.1-2.js -ecma/Number/15.7.3.1-3.js -ecma/ObjectObjects/15.2.3.1-1.js -ecma/Statements/12.6.3-11.js -ecma/Statements/12.6.3-2.js -ecma/String/15.5.3.1-1.js -ecma/String/15.5.4.11-2.js -ecma/String/15.5.4.11-5.js -ecma/String/15.5.4.12-1.js -ecma/String/15.5.4.12-4.js -ecma/String/15.5.4.12-5.js -ecma_2/RegExp/exec-001.js -ecma_2/RegExp/regexp-enumerate-001.js -ecma_2/String/replace-001.js -ecma_2/instanceof/instanceof-003.js -ecma_3/Array/regress-322135-02.js -ecma_3/Array/regress-322135-03.js -ecma_3/Array/regress-322135-04.js -ecma_3/Date/15.9.3.2-1.js -ecma_3/Exceptions/15.11.7.6-001.js -ecma_3/Object/8.6.1-01.js -ecma_3/RegExp/regress-188206.js -ecma_3/RegExp/regress-289669.js -ecma_3/RegExp/regress-307456.js -ecma_3/RegExp/regress-309840.js -ecma_3/RegExp/regress-311414.js -ecma_3/RegExp/regress-330684.js -ecma_3/RegExp/regress-334158.js -ecma_3/RegExp/regress-367888.js -ecma_3/Statements/regress-121744.js -ecma_3/String/15.5.4.14.js -ecma_3/String/regress-304376.js -ecma_3/extensions/regress-274152.js -js1_1/regress/function-001.js -js1_2/function/Function_object.js -js1_2/function/regexparg-1.js -js1_2/function/tostring-1.js -js1_2/function/tostring-2.js -js1_2/version120/regress-99663.js -js1_4/Eval/eval-001.js -js1_4/Eval/eval-002.js -js1_4/Eval/eval-003.js -js1_5/Array/regress-313153.js -js1_5/Array/regress-330812.js -js1_5/Array/regress-345961.js -js1_5/Array/regress-350256-03.js -js1_5/Array/regress-364104.js -js1_5/Date/regress-301738-02.js -js1_5/Date/regress-309925-02.js -js1_5/Date/regress-346363.js -js1_5/Date/toLocaleFormat.js -js1_5/Exceptions/errstack-001.js -js1_5/Exceptions/regress-121658.js -js1_5/Exceptions/regress-315147.js -js1_5/Exceptions/regress-332472.js -js1_5/Exceptions/regress-333728.js -js1_5/Exceptions/regress-342359.js -js1_5/Exceptions/regress-350650-n.js -js1_5/decompilation/regress-346902.js -js1_5/decompilation/regress-346904.js -js1_5/Expressions/regress-96526-delelem.js -js1_5/Function/regress-222029-001.js -js1_5/Function/regress-222029-002.js -js1_5/Function/regress-344120.js -js1_5/GC/regress-203278-2.js -js1_5/GC/regress-278725.js -js1_5/GC/regress-316885-01.js -js1_5/GC/regress-324278.js -js1_5/GC/regress-346794.js -js1_5/GC/regress-348532.js -js1_5/GetSet/getset-002.js -js1_5/GetSet/regress-353264.js -js1_5/LexicalConventions/regress-343675.js -js1_5/Object/regress-308806-01.js -js1_5/Regress/regress-103602.js -js1_5/Regress/regress-106244.js -js1_5/Regress/regress-119719.js -js1_5/Regress/regress-139316.js -js1_5/Regress/regress-173067.js -js1_5/Regress/regress-203278-1.js -js1_5/Regress/regress-213482.js -js1_5/Regress/regress-247179.js -js1_5/Regress/regress-248444.js -js1_5/Regress/regress-252892.js -js1_5/Regress/regress-261886.js -js1_5/Regress/regress-261887.js -js1_5/Regress/regress-274035.js -js1_5/Regress/regress-280769-5.js -js1_5/Regress/regress-280769.js -js1_5/Regress/regress-281606.js -js1_5/Regress/regress-290575.js -js1_5/Regress/regress-294302.js -js1_5/Regress/regress-315974.js -js1_5/Regress/regress-317533.js -js1_5/Regress/regress-319391.js -js1_5/Regress/regress-320119.js -js1_5/Regress/regress-321971.js -js1_5/Regress/regress-323314-1.js -js1_5/Regress/regress-325925.js -js1_5/Regress/regress-328664.js -js1_5/Regress/regress-329530.js -js1_5/Regress/regress-334807-02.js -js1_5/Regress/regress-334807-04.js -js1_5/Regress/regress-336100.js -js1_5/decompilation/regress-346892.js -js1_5/decompilation/regress-346915.js -js1_5/decompilation/regress-349491.js -js1_5/decompilation/regress-349596.js -js1_5/Regress/regress-349648.js -js1_5/decompilation/regress-349650.js -js1_5/decompilation/regress-350242.js -js1_5/decompilation/regress-350263.js -js1_5/Regress/regress-350268.js -js1_5/decompilation/regress-350271.js -js1_5/decompilation/regress-350666.js -js1_5/Regress/regress-350692.js -js1_5/decompilation/regress-351104.js -js1_5/decompilation/regress-351597.js -js1_5/decompilation/regress-351693.js -js1_5/decompilation/regress-351793.js -js1_5/Regress/regress-352009.js -js1_5/decompilation/regress-352013.js -js1_5/Regress/regress-352197.js -js1_5/decompilation/regress-352202.js -js1_5/decompilation/regress-352375.js -js1_5/decompilation/regress-352649.js -js1_5/decompilation/regress-353000.js -js1_5/Regress/regress-354924.js -js1_5/Regress/regress-355341.js -js1_5/Regress/regress-355344.js -js1_5/Regress/regress-355556.js -js1_5/decompilation/regress-355992.js -js1_5/Regress/regress-356693.js -js1_5/Regress/regress-360969-05.js -js1_5/Regress/regress-360969-06.js -js1_5/Regress/regress-361467.js -js1_5/Regress/regress-3649-n.js -js1_5/Regress/regress-372364.js -js1_5/Regress/regress-68498-003.js -js1_5/Regress/regress-96526-002.js -js1_5/extensions/getset-001.js -js1_5/extensions/getset-003.js -js1_5/extensions/regress-164697.js -js1_5/extensions/regress-192465.js -js1_5/extensions/regress-245148.js -js1_5/extensions/regress-254375.js -js1_5/extensions/regress-303277.js -js1_5/extensions/regress-306738.js -js1_5/extensions/regress-313630.js -js1_5/extensions/regress-333541.js -js1_5/extensions/regress-335700.js -js1_5/extensions/regress-338804-02.js -js1_5/extensions/regress-342960.js -js1_5/extensions/regress-345967.js -js1_5/extensions/regress-346494.js -js1_5/extensions/regress-347306-02.js -js1_5/extensions/regress-348986.js -js1_5/extensions/regress-349616.js -js1_5/extensions/regress-350531.js -js1_5/extensions/regress-352060.js -js1_5/extensions/regress-352094.js -js1_5/extensions/regress-352372.js -js1_5/extensions/regress-352455.js -js1_5/extensions/regress-353214.js -js1_5/extensions/regress-354541-02.js -js1_5/extensions/regress-354541-04.js -js1_5/extensions/regress-355339.js -js1_5/extensions/regress-355497.js -js1_5/extensions/regress-355820.js -js1_5/extensions/regress-356085.js -js1_5/extensions/regress-361346.js -js1_5/extensions/regress-361360.js -js1_5/extensions/regress-361552.js -js1_5/extensions/regress-361558.js -js1_5/extensions/regress-361571.js -js1_5/extensions/regress-361964.js -js1_5/extensions/regress-365869.js -js1_5/extensions/regress-367923.js -js1_5/extensions/regress-368859.js -js1_5/extensions/regress-50447-1.js -js1_6/Array/regress-290592.js -js1_6/Array/regress-310425-01.js -js1_6/Array/regress-320887.js -js1_6/Regress/regress-350417.js -js1_6/decompilation/regress-352084.js -js1_6/decompilation/regress-352613-01.js -js1_6/decompilation/regress-352613-02.js -js1_6/Regress/regress-355002.js -js1_6/Regress/regress-372565.js -js1_6/String/regress-306591.js -js1_6/extensions/regress-312385-01.js -js1_6/extensions/regress-352392.js -lc2/Arrays/array-008-n.js -js1_5/Regress/regress-240317.js -js1_5/Regress/regress-252892.js -e4x/Expressions/regress-366123.js -e4x/decompilation/regress-352459.js -ecma/Date/15.9.5.31-1.js -ecma/Date/15.9.5.35-1.js -ecma_3/RegExp/regress-375642.js -js1_5/Regress/regress-306727.js -js1_5/Regress/regress-308566.js -js1_5/Regress/regress-312260.js -js1_5/Regress/regress-322430.js -js1_5/decompilation/regress-356083.js -js1_5/decompilation/regress-356248.js -js1_5/extensions/regress-361856.js -js1_5/extensions/regress-365527.js -js1_5/extensions/regress-376052.js -js1_6/Regress/regress-353078.js -ecma_3/RegExp/regress-375715-01-n.js -js1_5/extensions/regress-380581.js -js1_5/extensions/regress-381205.js -js1_5/extensions/regress-381211.js -e4x/Regress/regress-383255.js -ecma_3/RegExp/regress-375711.js -ecma_3/RegExp/regress-375715-04.js -js1_5/Regress/regress-367561-03.js -js1_5/extensions/regress-367630.js -js1_5/extensions/regress-375801.js -js1_5/extensions/regress-380831.js -js1_5/extensions/regress-382509.js -js1_5/extensions/regress-383965.js -js1_6/Regress/regress-382509.js -js1_5/Function/regress-364023.js -e4x/Regress/regress-380833.js -js1_5/extensions/regress-358594-01.js -js1_5/extensions/regress-358594-02.js -js1_5/extensions/regress-358594-03.js -js1_5/extensions/regress-358594-04.js -js1_5/extensions/regress-358594-05.js -js1_5/extensions/regress-358594-06.js -js1_7/extensions/regress-380933.js -ecma_3/extensions/regress-368516.js -js1_5/extensions/regress-351463-01.js -js1_5/extensions/regress-355655.js -js1_7/block/regress-352422.js -js1_7/block/regress-352786.js -js1_7/block/regress-352907.js -js1_7/block/regress-376410.js -js1_7/block/regress-411279.js -ecma_3/Number/15.7.4.2-01.js -ecma_3/Number/15.7.4.3-01.js -ecma_3/Number/15.7.4.7-2.js diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/build.xml b/trunk/infrastructure/rhino1_7R1/testsrc/build.xml deleted file mode 100644 index bc05516..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/build.xml +++ /dev/null @@ -1,183 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project name="testsrc" basedir=".."> - <!-- - Location of mozilla/js/tests directory - --> - <property name="test.library.dir" location="../tests" /> - - <!-- - Destination to which testing classes should be built - --> - <property name="test.classes" value="${build.dir}/test/classes" /> - - <!-- - Output directory for HTML files generated by jsdriver - --> - <property name="test.output" value="${build.dir}/test/output" /> - - <!-- - Timeout in milliseconds for tests - --> - <property name="test.timeout" value="60000" /> - - <!-- - Maximum heap size for VM executing test cases. - --> - <property name="test.vm.mx" value="256m" /> - - <target name="junit-compile"> - <mkdir dir="${test.classes}" /> - <get src="http://mirrors.ibiblio.org/pub/mirrors/maven2/junit/junit/3.8.2/junit-3.8.2.jar" dest="lib/junit.jar" usetimestamp="true"/> - <javac - srcdir="testsrc" - destdir="${test.classes}" debug="true" - target="${target-jvm}" - source="${source-level}" - > - <classpath> - <pathelement path="lib/junit.jar" /> - <pathelement path="${classes}" /> - <pathelement path="${test-classes}" /> - </classpath> - <include name="org/mozilla/javascript/drivers/StandardTests.java" /> - </javac> - <antcall target="copy-files" /> - </target> - - <target name="compile"> - <mkdir dir="${test.classes}" /> - <javac - srcdir="testsrc" - destdir="${test.classes}" debug="true" - target="${target-jvm}" - source="${source-level}" - > - <classpath> - <pathelement path="${classes}" /> - </classpath> - <sourcepath path="testsrc" /> - <include name="org/mozilla/javascript/drivers/JsDriver.java" /> - </javac> - <antcall target="copy-files" /> - </target> - - <target name="copy-files"> - <copy todir="${test.classes}"> - <fileset dir="testsrc"> - <exclude name="**/*.java build.xml"/> - </fileset> - </copy> - </target> - - <target name="clean"> - <delete dir="${test.classes}" /> - </target> - - <target name="coverage-instrument"> - <get src="http://mirrors.ibiblio.org/pub/mirrors/maven2/emma/emma/2.0.5312/emma-2.0.5312.jar" dest="lib/emma.jar" usetimestamp="true"/> - <get src="http://mirrors.ibiblio.org/pub/mirrors/maven2/emma/emma_ant/2.0.5312/emma_ant-2.0.5312.jar" dest="lib/emma_ant.jar" usetimestamp="true"/> - <property name="coverage.dir" location="${build.dir}/coverage"/> - <property name="coverage.classes.dir" location="${build.dir}/coverage/classes"/> - <mkdir dir="${coverage.classes.dir}"/> - <path id="emma.lib"> - <pathelement location="lib/emma.jar" /> - <pathelement location="lib/emma_ant.jar" /> - </path> - <taskdef resource="emma_ant.properties" classpathref="emma.lib" /> - <property name="coverage.instrumentationfile" location="${coverage.dir}/instrumentation"/> - <emma enabled="true"> - <instr - instrpath="${classes}" outdir="${coverage.classes.dir}" - outfile="${coverage.instrumentationfile}" mode="copy"/> - </emma> - <copy todir="${coverage.classes.dir}"> - <fileset dir="src" excludes="**/*.java"/> - </copy> - <copy todir="${coverage.classes.dir}"> - <fileset dir="${classes}"/> - </copy> - <property name="coverage.outfile" location="${coverage.dir}/coverage"/> - </target> - - <target name="junit" depends="junit-compile,coverage-instrument"> - <junit printsummary="on" fork="true" forkmode="once" maxmemory="${test.vm.mx}" showoutput="true"> - <sysproperty key="java.awt.headless" value="true" /> - <sysproperty key="mozilla.js.tests" value="${test.library.dir}" /> - <sysproperty key="mozilla.js.tests.timeout" value="${test.timeout}" /> - <sysproperty key="emma.coverage.out.file" value="${coverage.outfile}"/> - <classpath> - <pathelement location="${xbean.jar}"/> - <pathelement location="${jsr173.jar}"/> - <pathelement path="${coverage.classes.dir}" /> - <pathelement path="${classes}" /> - <pathelement path="${test.classes}" /> - <pathelement path="lib/emma.jar"/> - <pathelement path="lib/junit.jar" /> - </classpath> - <batchtest todir="build/test"> - <fileset dir="${test.classes}" includes="**/*Tests.class"/> - </batchtest> - <formatter type="plain" usefile="false" /> - <formatter type="xml"/> - </junit> - <mkdir dir="build/test/report"/> - <junitreport todir="build/test/report"> - <fileset dir="build/test" includes="*.xml"/> - <report todir="build/test/report"/> - </junitreport> - </target> - - <target name="junit-coveragereport" depends="junit"> - <property name="coverage.report.dir" location="${build.dir}/coverage/report"/> - <mkdir dir="${coverage.report.dir}"/> - <delete dir="${coverage.report.dir}"/> - <mkdir dir="${coverage.report.dir}"/> - <emma enabled="true"> - <report> - <fileset dir="${basedir}"> - <include name="build/coverage/instrumentation"/> - <include name="build/coverage/coverage"/> - </fileset> - <sourcepath> - <dirset dir="${basedir}"> - <include name="src"/> - </dirset> - </sourcepath> - <html outfile="${coverage.report.dir}/index.html"/> - </report> - </emma> - </target> - - <target name="jsdriver" depends="compile"> - <tstamp> - <format property="test.timestamp" pattern="yyyy.MM.dd.HH.mm.ss" /> - </tstamp> - <mkdir dir="${test.output}" /> - <java - fork="true" - classname="org.mozilla.javascript.drivers.JsDriver" - maxmemory="${test.vm.mx}" - > - <classpath> - <pathelement location="${xbean.jar}"/> - <pathelement location="${jsr173.jar}"/> - <pathelement path="${classes}" /> - <pathelement path="${test.classes}" /> - </classpath> - <arg value="-p" /> - <arg file="${test.library.dir}" /> - <arg value="-f" /> - <arg value="${test.output}/rhino-test-results.${test.timestamp}.html" /> - <arg value="--timeout" /> - <arg value="${test.timeout}" /> - </java> - </target> - - <target name="copy-source"> - <mkdir dir="${dist.dir}/testsrc"/> - <copy todir="${dist.dir}/testsrc"> - <fileset dir="testsrc" - includes="**/*.java,**/*.properties,**/*.xml,**/*.html,**/*.skip" /> - </copy> - </target> -</project> diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/opt1.skip b/trunk/infrastructure/rhino1_7R1/testsrc/opt1.skip deleted file mode 100644 index 7006882..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/opt1.skip +++ /dev/null @@ -1,26 +0,0 @@ -# Rhino skip list: opt1.skip. Tests to be run at -opt 1 -# These tests are skipped by Rhino either because a bug with a regression -# test has yet to be fixed, or because the test is not applicable to Rhino. - -# program too large/complex -ecma_3/Statements/regress-302439.js -ecma_3/Statements/regress-324650.js -ecma_3/Statements/regress-74474-002.js -ecma_3/Statements/regress-74474-003.js -js1_5/Regress/regress-244470.js -js1_5/Regress/regress-308085.js -js1_5/Regress/regress-80981.js -js1_5/Regress/regress-89443.js -js1_5/extensions/regress-226507.js - -# program too large/complex; could have better error message -js1_5/Regress/regress-111557.js -js1_5/Regress/regress-155081-2.js -js1_5/Regress/regress-155081.js -js1_5/extensions/regress-311161.js - -# Missing line number information on error -js1_5/Regress/regress-167328.js -js1_5/extensions/regress-50447.js -js1_5/Exceptions/regress-257751.js - diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/JsDriver.java b/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/JsDriver.java deleted file mode 100644 index 8bae79f..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/JsDriver.java +++ /dev/null @@ -1,838 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0 - * - * 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 the Java port of jsDriver.pl. - * - * The Initial Developer of the Original Code is - * David P. Caldwell. - * Portions created by David P. Caldwell are Copyright (C) - * 2007 David P. Caldwell. All Rights Reserved. - * - * - * Contributor(s): - * David P. Caldwell <inonit@inonit.com> - * Norris Boyd <norrisboyd@gmail.com> - * - * Alternatively, the contents of this file may be used under the terms of - * the GNU General Public License Version 2 or later (the "GPL"), in which - * case the provisions of the GPL are applicable instead of those above. If - * you wish to allow use of your version of this file only under the terms of - * the GPL and not to allow others to use your version of this file under the - * MPL, indicate your decision by deleting the provisions above and replacing - * them with the notice and other provisions required by the GPL. If you do - * not delete the provisions above, a recipient may use your version of this - * file under either the MPL or the GPL. - * - * ***** END LICENSE BLOCK ***** */ - -package org.mozilla.javascript.drivers; - -import java.io.*; -import java.util.*; - -import org.w3c.dom.*; - -import org.mozilla.javascript.tools.shell.*; - -/** - * @version $Id: JsDriver.java,v 1.5 2007/10/11 19:44:10 szegedia%freemail.hu Exp $ - */ -public class JsDriver { - private JsDriver() { - } - - private static String join(String[] list) { - String rv = ""; - for (int i=0; i<list.length; i++) { - rv += list[i]; - if (i+1 != list.length) { - rv += ","; - } - } - return rv; - } - - private static class Tests { - private File testDirectory; - private String[] list; - private String[] skip; - - Tests(File testDirectory, String[] list, String[] skip) { - this.testDirectory = testDirectory; - this.list = getTestList(list); - this.skip = getTestList(skip); - } - - private String[] getTestList(String[] tests) { - ArrayList list = new ArrayList(); - for (int i=0; i < tests.length; i++) { - if (tests[i].startsWith("@")) - addTestsFromFile(tests[i].substring(1), list); - else - list.add(tests[i]); - } - return (String[])list.toArray(new String[0]); - } - - private void addTestsFromFile(String filename, ArrayList list) { - try { - Properties props = new Properties(); - props.load(new FileInputStream(new File(filename))); - list.addAll(props.keySet()); - } catch (IOException e) { - throw new RuntimeException("Could not read file '" + filename + "'", e); - } - } - - private boolean matches(String[] patterns, String path) { - for (int i=0; i<patterns.length; i++) { - if (path.startsWith(patterns[i])) { - return true; - } - } - return false; - } - - private boolean matches(String path) { - if (list.length == 0) return true; - return matches(list, path); - } - - private boolean excluded(String path) { - if (skip.length == 0) return false; - return matches(skip, path); - } - - private void addFiles(List rv, String prefix, File directory) { - File[] files = directory.listFiles(); - if (files == null) throw new RuntimeException("files null for " + directory); - for (int i=0; i<files.length; i++) { - String path = prefix + files[i].getName(); - if (ShellTest.DIRECTORY_FILTER.accept(files[i])) { - addFiles(rv, path + "/", files[i]); - } else { - boolean isTopLevel = prefix.length() == 0; - if (ShellTest.TEST_FILTER.accept(files[i]) && matches(path) && !excluded(path) && !isTopLevel) { - rv.add(new Script(path, files[i])); - } - } - } - } - - static class Script { - private String path; - private File file; - - Script(String path, File file) { - this.path = path; - this.file = file; - } - - String getPath() { - return path; - } - - File getFile() { - return file; - } - } - - Script[] getFiles() { - ArrayList rv = new ArrayList(); - addFiles(rv, "", testDirectory); - return (Script[])rv.toArray(new Script[0]); - } - } - - private static class ConsoleStatus extends ShellTest.Status { - private File jsFile; - - private Arguments.Console console; - private boolean trace; - - private boolean failed; - - ConsoleStatus(Arguments.Console console, boolean trace) { - this.console = console; - this.trace = trace; - } - - void running(File jsFile) { - try { - console.println("Running: " + jsFile.getCanonicalPath()); - this.jsFile = jsFile; - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - void failed(String s) { - console.println("Failed: " + jsFile + ": " + s); - failed = true; - } - - void threw(Throwable t) { - console.println("Failed: " + jsFile + " with exception."); - console.println(ShellTest.getStackTrace(t)); - failed = true; - } - - void timedOut() { - console.println("Failed: " + jsFile + ": timed out."); - failed = true; - } - - void exitCodesWere(int expected, int actual) { - if (expected != actual) { - console.println("Failed: " + jsFile + " expected " + expected + " actual " + actual); - failed = true; - } - } - - void outputWas(String s) { - if (!failed) { - console.println("Passed: " + jsFile); - if (trace) { - console.println(s); - } - } - } - } - - // returns true if node was found, false otherwise - private static boolean setContent(Element node, String id, String content) { - if (node.getAttribute("id").equals(id)) { - node.setTextContent(node.getTextContent() + "\n" + content); - return true; - } else { - NodeList children = node.getChildNodes(); - for (int i=0; i<children.getLength(); i++) { - if (children.item(i) instanceof Element) { - Element e = (Element)children.item(i); - boolean rv = setContent( e, id, content ); - if (rv) { - return true; - } - } - } - } - return false; - } - - private static Element getElementById(Element node, String id) { - if (node.getAttribute("id").equals(id)) { - return node; - } else { - NodeList children = node.getChildNodes(); - for (int i=0; i<children.getLength(); i++) { - if (children.item(i) instanceof Element) { - Element rv = getElementById( (Element)children.item(i), id ); - if (rv != null) { - return rv; - } - } - } - } - return null; - } - - private static String newlineLineEndings(String s) { - StringBuffer rv = new StringBuffer(); - for (int i=0; i<s.length(); i++) { - if (s.charAt(i) == '\r') { - if (i+1<s.length() && s.charAt(i+1) == '\n') { - // just skip \r - } else { - // Macintosh, substitute \n - rv.append('\n'); - } - } else { - rv.append(s.charAt(i)); - } - } - return rv.toString(); - } - - private static class HtmlStatus extends ShellTest.Status { - private String testPath; - private String bugUrl; - private String lxrUrl; - private Document html; - private Element failureHtml; - private boolean failed; - - private String output; - - HtmlStatus(String lxrUrl, String bugUrl, String testPath, Document html, Element failureHtml) { - this.testPath = testPath; - this.bugUrl = bugUrl; - this.lxrUrl = lxrUrl; - this.html = html; - this.failureHtml = failureHtml; - } - - void running(File file) { - } - - void failed(String s) { - failed = true; - setContent(failureHtml, "failureDetails.reason", "Failure reason: \n" + s); - } - - void exitCodesWere(int expected, int actual) { - if (expected != actual) { - failed = true; - setContent(failureHtml, "failureDetails.reason", "expected exit code " + expected + " but got " + actual); - } - } - - void threw(Throwable e) { - failed = true; - setContent(failureHtml, "failureDetails.reason", "Threw Java exception:\n" + newlineLineEndings(ShellTest.getStackTrace(e))); - } - - void timedOut() { - failed = true; - setContent(failureHtml, "failureDetails.reason", "Timed out."); - } - - void outputWas(String s) { - this.output = s; - } - - private String getLinesStartingWith(String prefix) { - BufferedReader r = new BufferedReader(new StringReader(output)); - String line = null; - String rv = ""; - try { - while( (line = r.readLine()) != null ) { - if (line.startsWith(prefix)) { - if (rv.length() > 0) { - rv += "\n"; - } - rv += line; - } - } - return rv; - } catch (IOException e) { - throw new RuntimeException("Can't happen."); - } - } - - boolean failed() { - return failed; - } - - void finish() { - if (failed) { - getElementById(failureHtml, "failureDetails.status").setTextContent(getLinesStartingWith("STATUS:")); - - String bn = getLinesStartingWith("BUGNUMBER:"); - Element bnlink = getElementById(failureHtml, "failureDetails.bug.href"); - if (bn.length() > 0) { - String number = bn.substring("BUGNUMBER: ".length()); - if (!number.equals("none")) { - bnlink.setAttribute("href", bugUrl + number); - getElementById(bnlink, "failureDetails.bug.number").setTextContent(number); - } else { - bnlink.getParentNode().removeChild(bnlink); - } - } else { - bnlink.getParentNode().removeChild(bnlink); - } - - getElementById(failureHtml, "failureDetails.lxr").setAttribute("href", lxrUrl + testPath); - getElementById(failureHtml, "failureDetails.lxr.text").setTextContent(testPath); - - getElementById(html.getDocumentElement(), "retestList.text").setTextContent( - getElementById(html.getDocumentElement(), "retestList.text").getTextContent() - + testPath - + "\n" - ); - - getElementById(html.getDocumentElement(), "failureDetails").appendChild(failureHtml); - } - } - } - - private static class XmlStatus extends ShellTest.Status { - private Element target; - private Date start; - - XmlStatus(String path, Element root) { - this.target = root.getOwnerDocument().createElement("test"); - this.target.setAttribute("path", path); - root.appendChild(target); - } - - void running(File file) { - this.start = new Date(); - } - - private Element createElement(Element parent, String name) { - Element rv = parent.getOwnerDocument().createElement(name); - parent.appendChild(rv); - return rv; - } - - private void finish() { - Date end = new Date(); - long elapsed = end.getTime() - start.getTime(); - this.target.setAttribute("elapsed", String.valueOf(elapsed)); - } - - private void setTextContent(Element e, String content) { - e.setTextContent( newlineLineEndings(content) ); - } - - void exitCodesWere(int expected, int actual) { - finish(); - Element exit = createElement(target, "exit"); - exit.setAttribute("expected", String.valueOf(expected)); - exit.setAttribute("actual", String.valueOf(actual)); - } - - void timedOut() { - finish(); - createElement(target, "timedOut"); - } - - void failed(String s) { - finish(); - Element failed = createElement(target, "failed"); - setTextContent(failed, s); - } - - void outputWas(String message) { - finish(); - Element output = createElement(target, "output"); - setTextContent(output, message); - } - - void threw(Throwable t) { - finish(); - Element threw = createElement(target, "threw"); - setTextContent(threw, ShellTest.getStackTrace(t)); - } - } - - private static class Results { - private ShellContextFactory factory; - private Arguments arguments; - private File output; - private boolean trace; - - private Document html; - private Element failureHtml; - - private Document xml; - - private Date start; - private int tests; - private int failures; - - Results(ShellContextFactory factory, Arguments arguments, boolean trace) { - this.factory = factory; - this.arguments = arguments; - - File output = arguments.getOutputFile(); - if (output == null) { - output = new File("rhino-test-results." + new java.text.SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()) + ".html"); - } - this.output = output; - - this.trace = trace; - } - - private Document parse(InputStream in) { - try { - javax.xml.parsers.DocumentBuilderFactory factory = javax.xml.parsers.DocumentBuilderFactory.newInstance(); - factory.setValidating(false); - javax.xml.parsers.DocumentBuilder dom = factory.newDocumentBuilder(); - return dom.parse(in); - } catch (Throwable t) { - throw new RuntimeException("Parser failure", t); - } - } - - private Document getTemplate() { - return parse(getClass().getResourceAsStream("results.html")); - } - - private void write(Document template, boolean xml) { - try { - File output = this.output; - javax.xml.transform.TransformerFactory factory = javax.xml.transform.TransformerFactory.newInstance(); - javax.xml.transform.Transformer xform = factory.newTransformer(); - if (xml) { - xform.setOutputProperty(javax.xml.transform.OutputKeys.METHOD, "xml"); - xform.setOutputProperty(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, "yes"); - output = new File(output.getCanonicalPath() + ".xml"); - } - xform.transform( - new javax.xml.transform.dom.DOMSource(template), - new javax.xml.transform.stream.StreamResult( new FileOutputStream(output) ) - ); - } catch (IOException e) { - arguments.getConsole().println("Could not write results file to " + output + ": "); - e.printStackTrace(System.err); - } catch (javax.xml.transform.TransformerConfigurationException e) { - throw new RuntimeException("Parser failure", e); - } catch (javax.xml.transform.TransformerException e) { - throw new RuntimeException("Parser failure", e); - } - } - - void start() { - this.html = getTemplate(); - this.failureHtml = getElementById(html.getDocumentElement(), "failureDetails.prototype"); - if (this.failureHtml == null) { - try { - javax.xml.transform.TransformerFactory.newInstance().newTransformer().transform( - new javax.xml.transform.dom.DOMSource(html), - new javax.xml.transform.stream.StreamResult(System.err) - ); - } catch (Throwable t) { - throw new RuntimeException(t); - } - throw new RuntimeException("No"); - } - this.failureHtml.getParentNode().removeChild(this.failureHtml); - - try { - this.xml = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder() - .getDOMImplementation().createDocument(null, "results", null) - ; - xml.getDocumentElement().setAttribute("timestamp", String.valueOf(new Date().getTime())); - xml.getDocumentElement().setAttribute("optimization", String.valueOf(arguments.getOptimizationLevel())); - xml.getDocumentElement().setAttribute("strict", String.valueOf(arguments.isStrict())); - xml.getDocumentElement().setAttribute("timeout", String.valueOf(arguments.getTimeout())); - } catch (javax.xml.parsers.ParserConfigurationException e) { - throw new RuntimeException(e); - } - - this.start = new Date(); - } - - void run(Tests.Script script, ShellTest.Parameters parameters) { - String path = script.getPath(); - File test = script.getFile(); - ConsoleStatus cStatus = new ConsoleStatus(arguments.getConsole(), trace); - HtmlStatus hStatus = new HtmlStatus(arguments.getLxrUrl(), arguments.getBugUrl(), path, html, (Element)failureHtml.cloneNode(true)); - XmlStatus xStatus = new XmlStatus(path, this.xml.getDocumentElement()); - ShellTest.Status status = ShellTest.Status.compose(new ShellTest.Status[] { cStatus, hStatus, xStatus }); - try { - ShellTest.run(factory, test, parameters, status); - } catch (Exception e) { - throw new RuntimeException(e); - } - tests++; - if (hStatus.failed()) { - failures++; - } - hStatus.finish(); - } - - private void set(Document document, String id, String value) { - getElementById(document.getDocumentElement(), id).setTextContent(value); - } - - void finish() { - Date end = new Date(); - long elapsedMs = end.getTime() - start.getTime(); - set(html, "results.testlist", join(arguments.getTestList())); - set(html, "results.skiplist", join(arguments.getSkipList())); - String pct = new java.text.DecimalFormat("##0.00").format( (double)failures / (double)tests * 100.0 ); - set(html, "results.results", "Tests attempted: " + tests + " Failures: " + failures + " (" + pct + "%)"); - set(html, "results.platform", "java.home=" + System.getProperty("java.home") - + "\n" + "java.version=" + System.getProperty("java.version") - + "\n" + "os.name=" + System.getProperty("os.name") - ); - set(html, "results.classpath", System.getProperty("java.class.path").replace(File.pathSeparatorChar, ' ')); - int elapsedSeconds = (int)(elapsedMs / 1000); - int elapsedMinutes = elapsedSeconds / 60; - elapsedSeconds = elapsedSeconds % 60; - String elapsed = "" + elapsedMinutes + " minutes, " + elapsedSeconds + " seconds"; - set(html, "results.elapsed", elapsed); - set(html, "results.time", new java.text.SimpleDateFormat("MMMM d yyyy h:mm:ss aa").format(new java.util.Date())); - write(html, false); - write(xml, true); - } - } - - private static class ShellTestParameters extends ShellTest.Parameters { - private int timeout; - - ShellTestParameters(int timeout) { - this.timeout = timeout; - } - - int getTimeoutMilliseconds() { - return timeout; - } - } - - void run(Arguments arguments) throws Throwable { - if (arguments.help()) { - System.out.println("See mozilla/js/tests/README-jsDriver.html; note that some options are not supported."); - System.out.println("Consult the Java source code at testsrc/org/mozilla/javascript/JsDriver.java for details."); - System.exit(0); - } - - ShellContextFactory factory = new ShellContextFactory(); - factory.setOptimizationLevel(arguments.getOptimizationLevel()); - factory.setStrictMode(arguments.isStrict()); - - File path = arguments.getTestsPath(); - if (path == null) { - path = new File("../tests"); - } - if (!path.exists()) { - throw new RuntimeException("JavaScript tests not found at " + path.getCanonicalPath()); - } - Tests tests = new Tests(path, arguments.getTestList(), arguments.getSkipList()); - Tests.Script[] all = tests.getFiles(); - arguments.getConsole().println("Running " + all.length + " tests."); - - Results results = new Results(factory, arguments, arguments.trace()); - - results.start(); - for (int i=0; i<all.length; i++) { - results.run(all[i], new ShellTestParameters(arguments.getTimeout())); - } - results.finish(); - } - - public static void main(Arguments arguments) throws Throwable { - JsDriver driver = new JsDriver(); - driver.run(arguments); - } - - private static class Arguments { - private ArrayList options = new ArrayList(); - - private Option bugUrl = new Option("b", "bugurl", false, false, "http://bugzilla.mozilla.org/show_bug.cgi?id="); - private Option optimizationLevel = new Option("o", "optimization", false, false, "-1"); - private Option strict = new Option(null, "strict", false, true, null); - private Option outputFile = new Option("f", "file", false, false, null); - private Option help = new Option("h", "help", false, true, null); - private Option logFailuresToConsole = new Option("k", "confail", false, true, null); - private Option testList = new Option("l", "list", true, false, null); - private Option skipList = new Option("L", "neglist", true, false, null); - private Option testsPath = new Option("p", "testpath", false, false, null); - private Option trace = new Option("t", "trace", false, true, null); - private Option lxrUrl = new Option("u", "lxrurl", false, false, "http://lxr.mozilla.org/mozilla/source/js/tests/"); - private Option timeout = new Option(null, "timeout", false, false, "60000"); - - public static class Console { - public void print(String message) { - System.out.print(message); - } - public void println(String message) { - System.out.println(message); - } - } - private Console console = new Console(); - - private class Option { - private String letterOption; - private String wordOption; - private boolean array; - private boolean flag; - private boolean ignored; - - private ArrayList values = new ArrayList(); - - // array: can this option have multiple values? - // flag: is this option a simple true/false switch? - Option(String letterOption, String wordOption, boolean array, boolean flag, String unspecified) { - this.letterOption = letterOption; - this.wordOption = wordOption; - this.flag = flag; - this.array = array; - if (!flag && !array) { - this.values.add(unspecified); - } - options.add(this); - } - - Option ignored() { - this.ignored = true; - return this; - } - - int getInt() { - return Integer.parseInt( getValue() ); - } - - String getValue() { - return (String)values.get(0); - } - - boolean getSwitch() { - return values.size() > 0; - } - - File getFile() { - if (getValue() == null) return null; - return new File(getValue()); - } - - String[] getValues() { - return (String[])values.toArray(new String[0]); - } - - void process(List arguments) { - String option = (String)arguments.get(0); - String dashLetter = (letterOption == null) ? (String)null : "-" + letterOption; - if (option.equals(dashLetter) || option.equals("--" + wordOption)) { - arguments.remove(0); - if (flag) { - values.add(0, (String)null ); - } else if (array) { - while( arguments.size() > 0 && !( (String)arguments.get(0) ).startsWith("-") ) { - values.add(arguments.remove(0)); - } - } else { - values.set(0, arguments.remove(0)); - } - if (ignored) { - System.err.println("WARNING: " + option + " is ignored in the Java version of the test driver."); - } - } - } - } - - // -b URL, --bugurl=URL - public String getBugUrl() { - return bugUrl.getValue(); - } - - // -c PATH, --classpath=PATH - // Does not apply; we will use the VM's classpath - - // -e TYPE ..., --engine=TYPE ... - // Does not apply; was used to select between SpiderMonkey and Rhino - - // Not in jsDriver.pl - public int getOptimizationLevel() { - return optimizationLevel.getInt(); - } - - // --strict - public boolean isStrict() { - return strict.getSwitch(); - } - - // -f FILE, --file=FILE - public File getOutputFile() { - return outputFile.getFile(); - } - - // -h, --help - public boolean help() { - return help.getSwitch(); - } - - // -j PATH, --javapath=PATH - // Does not apply; we will use this JVM - - // -k, --confail - // TODO Currently this is ignored; not clear precisely what it means (perhaps we should not be logging ordinary - // pass/fail to the console currently?) - public boolean logFailuresToConsole() { - return logFailuresToConsole.getSwitch(); - } - - // -l FILE,... or --list=FILE,... - public String[] getTestList() { - return testList.getValues(); - } - - // -L FILE,... or --neglist=FILE,... - public String[] getSkipList() { - return skipList.getValues(); - } - - // -p PATH, --testpath=PATH - public File getTestsPath() { - return testsPath.getFile(); - } - - // -s PATH, --shellpath=PATH - // Does not apply; we will use the Rhino shell with any classes given on the classpath - - // -t, --trace - public boolean trace() { - return trace.getSwitch(); - } - - // -u URL, --lxrurl=URL - public String getLxrUrl() { - return lxrUrl.getValue(); - } - - // - // New arguments - // - - // --timeout - // Milliseconds to wait for each test - public int getTimeout() { - return timeout.getInt(); - } - - public Console getConsole() { - return console; - } - - void process(List arguments) { - while(arguments.size() > 0) { - String option = (String)arguments.get(0); - if (option.startsWith("--")) { - // preprocess --name=value options into --name value - if (option.indexOf("=") != -1) { - arguments.set(0, option.substring(option.indexOf("="))); - arguments.add(1, option.substring(option.indexOf("=") + 1)); - } - } else if (option.startsWith("-")) { - // could be multiple single-letter options, e.g. -kht, so preprocess them into -k -h -t - if (option.length() > 2) { - for (int i=2; i<option.length(); i++) { - arguments.add(1, "-" + option.substring(i,i+1)); - } - arguments.set(0, option.substring(0,2)); - } - } - int lengthBefore = arguments.size(); - for (int i=0; i<options.size(); i++) { - if (arguments.size() > 0) { - ((Option)options.get(i)).process(arguments); - } - } - - if (arguments.size() == lengthBefore) { - System.err.println("WARNING: ignoring unrecognized option " + arguments.remove(0)); - } - } - } - } - - public static void main(String[] args) throws Throwable { - ArrayList arguments = new ArrayList(); - arguments.addAll(Arrays.asList(args)); - Arguments clArguments = new Arguments(); - clArguments.process(arguments); - main(clArguments); - } -} diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/ShellTest.java b/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/ShellTest.java deleted file mode 100644 index 9acf64e..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/ShellTest.java +++ /dev/null @@ -1,346 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0 - * - * 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 the Java port of jsDriver.pl. - * - * The Initial Developer of the Original Code is - * David P. Caldwell. - * Portions created by David P. Caldwell are Copyright (C) - * 2007 David P. Caldwell. All Rights Reserved. - * - * - * Contributor(s): - * David P. Caldwell <inonit@inonit.com> - * - * Alternatively, the contents of this file may be used under the terms of - * the GNU General Public License Version 2 or later (the "GPL"), in which - * case the provisions of the GPL are applicable instead of those above. If - * you wish to allow use of your version of this file only under the terms of - * the GPL and not to allow others to use your version of this file under the - * MPL, indicate your decision by deleting the provisions above and replacing - * them with the notice and other provisions required by the GPL. If you do - * not delete the provisions above, a recipient may use your version of this - * file under either the MPL or the GPL. - * - * ***** END LICENSE BLOCK ***** */ - -package org.mozilla.javascript.drivers; - -import org.mozilla.javascript.*; -import java.io.*; -import java.util.*; - -import org.mozilla.javascript.tools.shell.*; - -/** - * @version $Id: ShellTest.java,v 1.5 2007/10/11 19:44:10 szegedia%freemail.hu Exp $ - */ -class ShellTest { - static final FileFilter DIRECTORY_FILTER = new FileFilter() { - public boolean accept(File pathname) - { - return pathname.isDirectory() && !pathname.getName().equals("CVS"); - } - }; - - static final FileFilter TEST_FILTER = new FileFilter() { - public boolean accept(File pathname) - { - return pathname.getName().endsWith(".js") && !pathname.getName().equals("shell.js") && !pathname.getName().equals("browser.js") && !pathname.getName().equals("template.js"); - } - }; - - static String getStackTrace(Throwable t) { - ByteArrayOutputStream bytes = new ByteArrayOutputStream(); - t.printStackTrace(new PrintStream(bytes)); - return new String(bytes.toByteArray()); - } - - private static void runFileIfExists(Context cx, Scriptable global, File f) - { - if(f.isFile()) - { - Main.processFile(cx, global, f.getPath()); - } - } - - private static class TestState - { - boolean finished; - ErrorReporterWrapper errors; - int exitCode = 0; - } - - static abstract class Status { - private boolean negative; - - final void setNegative() { - this.negative = true; - } - - final boolean isNegative() { - return this.negative; - } - - final void hadErrors(JsError[] errors) { - if (!negative && errors.length > 0) { - failed("JavaScript errors:\n" + JsError.toString(errors)); - } else if (negative && errors.length == 0) { - failed("Should have produced runtime error."); - } - } - - abstract void running(File jsFile); - - abstract void failed(String s); - abstract void threw(Throwable t); - abstract void timedOut(); - abstract void exitCodesWere(int expected, int actual); - abstract void outputWas(String s); - - static Status compose(final Status[] array) { - return new Status() { - void running(File file) { - for (int i=0; i<array.length; i++) { - array[i].running(file); - } - } - void threw(Throwable t) { - for (int i=0; i<array.length; i++) { - array[i].threw(t); - } - } - void failed(String s) { - for (int i=0; i<array.length; i++) { - array[i].failed(s); - } - } - void exitCodesWere(int expected, int actual) { - for (int i=0; i<array.length; i++) { - array[i].exitCodesWere(expected, actual); - } - } - void outputWas(String s) { - for (int i=0; i<array.length; i++) { - array[i].outputWas(s); - } - } - void timedOut() { - for (int i=0; i<array.length; i++) { - array[i].timedOut(); - } - } - }; - } - - static class JsError { - static String toString(JsError[] e) { - String rv = ""; - for (int i=0; i<e.length; i++) { - rv += e[i].toString(); - if (i+1 != e.length) { - rv += "\n"; - } - } - return rv; - } - - private String message; - private String sourceName; - private int line; - private String lineSource; - private int lineOffset; - - JsError(String message, String sourceName, int line, String lineSource, int lineOffset) { - this.message = message; - this.sourceName = sourceName; - this.line = line; - this.lineSource = lineSource; - this.lineOffset = lineOffset; - } - - public String toString() { - String locationLine = sourceName + ":" + line + ": " + message; - String sourceLine = this.lineSource; - String errCaret = null; - if (lineSource != null) { - errCaret = ""; - for (int i=0; i<lineSource.length(); i++) { - char c = lineSource.charAt(i); - if (i < lineOffset-1) { - if (c == '\t') { - errCaret += "\t"; - } else { - errCaret += " "; - } - } else if (i == lineOffset-1) { - errCaret += "^"; - } - } - } - String rv = locationLine; - if (sourceLine != null) { - rv += "\n" + sourceLine; - } - if (errCaret != null) { - rv += "\n" + errCaret; - } - return rv; - } - - String getMessage() { - return message; - } - - String getSourceName() { - return sourceName; - } - - int getLine() { - return line; - } - - String getLineSource() { - return lineSource; - } - - int getLineOffset() { - return lineOffset; - } - } - } - - private static class ErrorReporterWrapper implements ErrorReporter { - private ErrorReporter original; - private ArrayList errors = new ArrayList(); - - ErrorReporterWrapper(ErrorReporter original) { - this.original = original; - } - - private void addError(String string, String string0, int i, String string1, int i0) { - errors.add( new Status.JsError(string, string0, i, string1, i0) ); - } - - public void warning(String string, String string0, int i, String string1, int i0) { - original.warning(string, string0, i, string1, i0); - } - - public EvaluatorException runtimeError(String string, String string0, int i, String string1, int i0) { - return original.runtimeError(string, string0, i, string1, i0); - } - - public void error(String string, String string0, int i, String string1, int i0) { - addError(string, string0, i, string1, i0); - } - } - - static abstract class Parameters { - abstract int getTimeoutMilliseconds(); - } - - static void run(final ShellContextFactory shellContextFactory, final File jsFile, final Parameters parameters, final Status status) throws Exception { - final Global global = new Global(); - final ByteArrayOutputStream out = new ByteArrayOutputStream(); - final PrintStream p = new PrintStream(out); - global.setOut(p); - global.setErr(p); - final TestState testState = new TestState(); - if (jsFile.getName().endsWith("-n.js")) { - status.setNegative(); - } - Thread t = new Thread(new Runnable() - { - public void run() - { - try - { - shellContextFactory.call(new ContextAction() - { - public Object run(Context cx) - { - System.out.println("Running " + jsFile); - status.running(jsFile); - testState.errors = new ErrorReporterWrapper(cx.getErrorReporter()); - cx.setErrorReporter( testState.errors ); - global.init(cx); - try { - runFileIfExists(cx, global, new File(jsFile.getParentFile().getParentFile().getParentFile(), "shell.js")); - runFileIfExists(cx, global, new File(jsFile.getParentFile().getParentFile(), "shell.js")); - runFileIfExists(cx, global, new File(jsFile.getParentFile(), "shell.js")); - runFileIfExists(cx, global, jsFile); - // Emulate SpiderMonkey enum value from mozilla/js/src/js.c - for (int i=0; i<testState.errors.errors.size(); i++) { - Status.JsError thisOne = (Status.JsError)testState.errors.errors.get(i); - if (thisOne.getMessage().indexOf("java.lang.OutOfMemoryError") != -1) { - testState.exitCode = 5; - testState.errors.errors.remove(thisOne); - } - } - status.hadErrors( (Status.JsError[])testState.errors.errors.toArray(new Status.JsError[0]) ); - } catch (ThreadDeath e) { - } catch (Throwable t) { - status.threw(t); - } - return null; - } - }); - } finally { - synchronized(testState) - { - testState.finished = true; - } - } - } - }, jsFile.getPath()); - t.setDaemon(true); - t.start(); - t.join(parameters.getTimeoutMilliseconds()); - synchronized(testState) - { - if(!testState.finished) - { - t.stop(); - status.timedOut(); - } - } - int expectedExitCode = 0; - p.flush(); - status.outputWas(new String(out.toByteArray())); - BufferedReader r = new BufferedReader(new InputStreamReader( - new ByteArrayInputStream(out.toByteArray()))); - String failures = ""; - for(;;) - { - String s = r.readLine(); - if(s == null) - { - break; - } - if(s.indexOf("FAILED!") != -1) - { - failures += s + '\n'; - } - int expex = s.indexOf("EXPECT EXIT CODE "); - if(expex != -1) - { - expectedExitCode = s.charAt(expex + "EXPECT EXIT CODE ".length()) - '0'; - } - } - status.exitCodesWere(expectedExitCode, testState.exitCode); - if(failures != "") - { - status.failed(failures); - } - } -} diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/StandardTests.java b/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/StandardTests.java deleted file mode 100644 index 9c05df6..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/StandardTests.java +++ /dev/null @@ -1,212 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0 - * - * 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 Rhino code, released May 6, 1999. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1997-1999 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Attila Szegedi - * David P. Caldwell <inonit@inonit.com> - * - * Alternatively, the contents of this file may be used under the terms of - * the GNU General Public License Version 2 or later (the "GPL"), in which - * case the provisions of the GPL are applicable instead of those above. If - * you wish to allow use of your version of this file only under the terms of - * the GPL and not to allow others to use your version of this file under the - * MPL, indicate your decision by deleting the provisions above and replacing - * them with the notice and other provisions required by the GPL. If you do - * not delete the provisions above, a recipient may use your version of this - * file under either the MPL or the GPL. - * - * ***** END LICENSE BLOCK ***** */ - -package org.mozilla.javascript.drivers; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Arrays; -import java.util.Properties; - -import junit.framework.Assert; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.mozilla.javascript.tools.shell.ShellContextFactory; - -/** - * Executes the tests in the js/tests directory, much like jsDriver.pl does. - * Excludes tests found in the js/tests/rhino-n.tests file. - * @author Attila Szegedi - * @version $Id: StandardTests.java,v 1.6.2.2 2008/02/11 16:57:16 nboyd%atg.com Exp $ - */ -public class StandardTests extends TestSuite -{ - public static TestSuite suite() throws Exception - { - TestSuite suite = new TestSuite("Standard JavaScript tests"); - - File testDir = null; - if (System.getProperty("mozilla.js.tests") != null) { - testDir = new File(System.getProperty("mozilla.js.tests")); - } else { - URL url = StandardTests.class.getResource("."); - String path = url.getFile(); - int jsIndex = path.lastIndexOf("/js"); - if(jsIndex == -1) - { - throw new IllegalStateException("You aren't running the tests from within the standard mozilla/js directory structure"); - } - path = path.substring(0, jsIndex + 3).replace('/', File.separatorChar); - testDir = new File(path, "tests"); - } - if(!testDir.isDirectory()) - { - throw new FileNotFoundException(testDir + " is not a directory"); - } - Properties excludes = new Properties(); - loadExcludes(excludes, "/base.skip"); - Properties opt1Excludes = new Properties(); - loadExcludes(opt1Excludes, "/opt1.skip"); - opt1Excludes.putAll(excludes); - for(int i = -1; i < 2; ++i) - { - TestSuite optimizationLevelSuite = new TestSuite("Optimization level " + i); - addSuites(optimizationLevelSuite, testDir, i == -1 ? excludes : opt1Excludes, i); - suite.addTest(optimizationLevelSuite); - } - return suite; - } - - private static void loadExcludes(Properties excludes, String excludeFileName) throws IOException - { - InputStream in = StandardTests.class.getResourceAsStream(excludeFileName); - try - { - excludes.load(in); - } - finally - { - in.close(); - } - } - - private static void addSuites(TestSuite topLevel, File testDir, Properties excludes, int optimizationLevel) - { - File[] subdirs = testDir.listFiles(ShellTest.DIRECTORY_FILTER); - Arrays.sort(subdirs); - for (int i = 0; i < subdirs.length; i++) - { - File subdir = subdirs[i]; - String name = subdir.getName(); - TestSuite testSuite = new TestSuite(name); - addCategories(testSuite, subdir, name + "/", excludes, optimizationLevel); - topLevel.addTest(testSuite); - } - } - - private static void addCategories(TestSuite suite, File suiteDir, String prefix, Properties excludes, int optimizationLevel) - { - File[] subdirs = suiteDir.listFiles(ShellTest.DIRECTORY_FILTER); - Arrays.sort(subdirs); - for (int i = 0; i < subdirs.length; i++) - { - File subdir = subdirs[i]; - String name = subdir.getName(); - TestSuite testCategory = new TestSuite(name); - addTests(testCategory, subdir, prefix + name + "/", excludes, optimizationLevel); - suite.addTest(testCategory); - } - } - - private static void addTests(TestSuite suite, File suiteDir, String prefix, Properties excludes, int optimizationLevel) - { - File[] jsFiles = suiteDir.listFiles(ShellTest.TEST_FILTER); - Arrays.sort(jsFiles); - for (int i = 0; i < jsFiles.length; i++) - { - File jsFile = jsFiles[i]; - String name = jsFile.getName(); - if(!excludes.containsKey(prefix + name)) - { - suite.addTest(new JsTestCase(jsFile, optimizationLevel)); - } - } - } - - private static class JunitStatus extends ShellTest.Status { - final void running(File jsFile) { - // do nothing - } - - final void failed(String s) { - Assert.fail(s); - } - - final void exitCodesWere(int expected, int actual) { - Assert.assertEquals("Unexpected exit code", expected, actual); - } - - final void outputWas(String s) { - System.out.print(s); - } - - final void threw(Throwable t) { - Assert.fail(ShellTest.getStackTrace(t)); - } - - final void timedOut() { - failed("Timed out."); - } - } - - private static final class JsTestCase extends TestCase - { - private final File jsFile; - private final int optimizationLevel; - - JsTestCase(File jsFile, int optimizationLevel) - { - super(jsFile.getName() + (optimizationLevel == 1 ? "-compiled" : "-interpreted")); - this.jsFile = jsFile; - this.optimizationLevel = optimizationLevel; - } - - public int countTestCases() - { - return 1; - } - - private static class ShellTestParameters extends ShellTest.Parameters { - int getTimeoutMilliseconds() { - if (System.getProperty("mozilla.js.tests.timeout") != null) { - return Integer.parseInt(System.getProperty("mozilla.js.tests.timeout")); - } - return 60000; - } - } - - public void runBare() throws Exception - { - final ShellContextFactory shellContextFactory = new ShellContextFactory(); - shellContextFactory.setOptimizationLevel(optimizationLevel); - ShellTest.run(shellContextFactory, jsFile, new ShellTestParameters(), new JunitStatus()); - } - } -} diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/results.html b/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/results.html deleted file mode 100644 index 36bd729..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/drivers/results.html +++ /dev/null @@ -1,105 +0,0 @@ -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title>Rhino: Test Results</title> -</head> -<body> - <a name="top"><span /></a> - <h1>Results of JavaScript Test Library for Rhino</h1> - <div id="summary"> - <h2>Summary</h2> - <p> - <table> - <tr> - <td> - Test List - </td> - <td> - <span id="results.testlist"> - </span> - </td> - </tr> - <tr> - <td> - Skip List - </td> - <td> - <span id="results.skiplist"> - </span> - </td> - </tr> - <tr> - <td> - Results - </td> - <td> - <span id="results.results"> - </span> - </td> - </tr> - <tr> - <td> - Platform, JRE - </td> - <td> - <!-- - Should include os.name, java.home, java.version, java.class.path - --> - <span id="results.platform"></span> - </td> - </tr> - <tr> - <td> - Classpath - </td> - <td> - <span id="results.classpath"></span> - </td> - </tr> - <tr> - <td> - Time - </td> - <td> - Execution took <span id="results.elapsed"></span>, ending at <span id="results.time"></span> - </td> - </tr> - </table> - </p> - <p> - <a href="#failureDetails">Failure Details</a> - <a href="#retestList">Retest List</a> - </p> - </div> - <div id="failureDetails"> - <a name="failureDetails"><span /></a> - <h2>Failure Details</h2> - <div id="failureDetails.prototype"> - <h3> - Testcase <a id="failureDetails.lxr" href=""><span id="failureDetails.lxr.text">path</span></a> failed - <a id="failureDetails.bug.href" href="">Bug Number <span id="failureDetails.bug.number">XXX</span></a> - </h3> - <div> - <pre id="failureDetails.status"> - </pre> - <pre id="failureDetails.reason"> - </pre> - <pre id="failureDetails.output"> - </pre> - </div> - <div> - <a href="#top">Top of Page</a> - </div> - </div> - </div> - <div> - <a href="#failureDetails">Top of Failures</a> - </div> - <div> - <a name="retestList"><span /></a> - <h2>Retest List</h2> - <pre id="retestList.text"></pre> - <a href="#top">Top of Page</a> - <a href="#retestList">Top of Retest List</a> - </div> -</body> -</html> diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/Bug409702Test.java b/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/Bug409702Test.java deleted file mode 100644 index e9793cb..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/Bug409702Test.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * - */ -package org.mozilla.javascript.tests; - -import junit.framework.TestCase; - -import org.mozilla.javascript.*; - -/** - * See https://bugzilla.mozilla.org/show_bug.cgi?id=409702 - * @author Norris Boyd - */ -public class Bug409702Test extends TestCase { - - public static abstract class Test { - public Test() { - } - - public abstract void a(); - - public abstract int b(); - - public static abstract class Subclass extends Test { - - @Override - public final void a() { - } - } - } - - public void testAdapter() { - final int value = 12; - String source = - "var instance = " + - " new JavaAdapter(" + getClass().getName() + ".Test.Subclass," + - "{ b: function () { return " + value + "; } });" + - "instance.b();"; - - Context cx = ContextFactory.getGlobal().enterContext(); - try { - Scriptable scope = cx.initStandardObjects(); - Object result = cx.evaluateString(scope, source, "source", 1, null); - assertEquals(new Integer(value), result); - } finally { - Context.exit(); - } - } -} diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java b/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java deleted file mode 100644 index b6cf3ca..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java +++ /dev/null @@ -1,99 +0,0 @@ -/** - * - */ -package org.mozilla.javascript.tests; - -import junit.framework.TestCase; - -import org.mozilla.javascript.Context; -import org.mozilla.javascript.ContextAction; -import org.mozilla.javascript.ContextFactory; -import org.mozilla.javascript.NativeJavaObject; -import org.mozilla.javascript.Script; -import org.mozilla.javascript.tools.shell.Global; -import org.mozilla.javascript.tools.shell.ShellContextFactory; - -/** - * @author donnamalayeri - */ -public class JavaAcessibilityTest extends TestCase { - - protected final Global global = new Global(); - String importClass = "importClass(Packages.org.mozilla.javascript.tests.PrivateAccessClass)\n"; - - public JavaAcessibilityTest() { - global.init(contextFactory); - } - - private ContextFactory contextFactory = new ShellContextFactory() { - protected boolean hasFeature(Context cx, int featureIndex) { - if (featureIndex == Context.FEATURE_ENHANCED_JAVA_ACCESS) - return true; - return super.hasFeature(cx, featureIndex); - } - }; - - public void testAccessingFields() { - Object result = runScript(importClass + "PrivateAccessClass.staticPackagePrivateInt"); - assertEquals(new Integer(0), result); - - result = runScript(importClass + "PrivateAccessClass.staticPrivateInt"); - assertEquals(new Integer(1), result); - - result = runScript(importClass + "PrivateAccessClass.staticProtectedInt"); - assertEquals(new Integer(2), result); - - result = runScript(importClass + "new PrivateAccessClass().packagePrivateString"); - assertEquals("package private", ((NativeJavaObject) result).unwrap()); - - result = runScript(importClass + "new PrivateAccessClass().privateString"); - assertEquals("private", ((NativeJavaObject) result).unwrap()); - - result = runScript(importClass + "new PrivateAccessClass().protectedString"); - assertEquals("protected", ((NativeJavaObject) result).unwrap()); - - result = runScript(importClass + "new PrivateAccessClass.PrivateNestedClass().packagePrivateInt"); - assertEquals(new Integer(0), result); - - result = runScript(importClass + "new PrivateAccessClass.PrivateNestedClass().privateInt"); - assertEquals(new Integer(1), result); - - result = runScript(importClass + "new PrivateAccessClass.PrivateNestedClass().protectedInt"); - assertEquals(new Integer(2), result); - } - - public void testAccessingMethods() { - Object result = runScript(importClass + "PrivateAccessClass.staticPackagePrivateMethod()"); - assertEquals(new Integer(0), result); - - result = runScript(importClass + "PrivateAccessClass.staticPrivateMethod()"); - assertEquals(new Integer(1), result); - - result = runScript(importClass + "PrivateAccessClass.staticProtectedMethod()"); - assertEquals(new Integer(2), result); - - result = runScript(importClass + "new PrivateAccessClass().packagePrivateMethod()"); - assertEquals(new Integer(3), result); - - result = runScript(importClass + "new PrivateAccessClass().privateMethod()"); - assertEquals(new Integer(4), result); - - result = runScript(importClass + "new PrivateAccessClass().protectedMethod()"); - assertEquals(new Integer(5), result); - } - - public void testAccessingConstructors() { - runScript(importClass + "new PrivateAccessClass(\"foo\")"); - runScript(importClass + "new PrivateAccessClass(5)"); - runScript(importClass + "new PrivateAccessClass(5, \"foo\")"); - } - - private Object runScript(final String scriptSourceText) { - return this.contextFactory.call(new ContextAction() { - public Object run(Context context) { - Script script = context.compileString(scriptSourceText, "", 1, null); - return script.exec(context, global); - } - }); - } -} diff --git a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/PrivateAccessClass.java b/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/PrivateAccessClass.java deleted file mode 100644 index 08f95a3..0000000 --- a/trunk/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/PrivateAccessClass.java +++ /dev/null @@ -1,89 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0 - * - * 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 Rhino code, released May 6, 1999. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1997-1999 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Attila Szegedi - * David P. Caldwell <inonit@inonit.com> - * - * Alternatively, the contents of this file may be used under the terms of - * the GNU General Public License Version 2 or later (the "GPL"), in which - * case the provisions of the GPL are applicable instead of those above. If - * you wish to allow use of your version of this file only under the terms of - * the GPL and not to allow others to use your version of this file under the - * MPL, indicate your decision by deleting the provisions above and replacing - * them with the notice and other provisions required by the GPL. If you do - * not delete the provisions above, a recipient may use your version of this - * file under either the MPL or the GPL. - * - * ***** END LICENSE BLOCK ***** */ - -package org.mozilla.javascript.tests; - -/** - * A class with private/protected/package private members, to test the Rhino - * feature Context.FEATURE_ENHANCED_JAVA_ACCESS, that allows bypassing Java - * member access restrictions. - * @author Donna Malayeri - */ - -public class PrivateAccessClass -{ - private PrivateAccessClass() { } - PrivateAccessClass(String s) { } - private PrivateAccessClass(int x) { } - protected PrivateAccessClass(int x, String s) { } - - private static class PrivateNestedClass - { - private PrivateNestedClass() { } - - int packagePrivateInt = 0; - private int privateInt = 1; - protected int protectedInt = 2; - } - - static int staticPackagePrivateInt = 0; - private static int staticPrivateInt = 1; - protected static int staticProtectedInt = 2; - - String packagePrivateString = "package private"; - private String privateString = "private"; - protected String protectedString = "protected"; - - static int staticPackagePrivateMethod() { return 0; } - static private int staticPrivateMethod() { return 1; } - static protected int staticProtectedMethod() { return 2; } - - int packagePrivateMethod() { return 3; } - private int privateMethod() { return 4; } - protected int protectedMethod() { return 5; } - - /* - * Suppress warnings about unused private members. - */ - public int referenceToPrivateMembers() { - PrivateAccessClass pac = new PrivateAccessClass(); - PrivateAccessClass pac2 = new PrivateAccessClass(2); - PrivateNestedClass pnc = new PrivateNestedClass(); - System.out.println(privateString); - return pnc.privateInt + staticPrivateInt + staticPrivateMethod() + - pac.privateMethod(); - } -} |