From d2a57d2bddd23ef2afbf26452c7c747f9807aa5d Mon Sep 17 00:00:00 2001 From: David Fugate Date: Wed, 25 Jan 2012 14:04:40 -0800 Subject: Added experimental test402 support (JS internationalization standard). --- test/suite/intl402/ch01/1.2/1.2-1_1.js | 42 +++++++ tools/packaging/packagerConfig.py | 8 +- tools/packaging/templates/runner.intl402.html | 167 ++++++++++++++++++++++++++ website/json/default.json | 2 +- website/json/intl402.json | 1 + website/json/testcases_bestPractice.json | 2 +- website/json/testcases_ch07.json | 2 +- website/json/testcases_ch08.json | 2 +- website/json/testcases_ch09.json | 2 +- website/json/testcases_ch10.json | 2 +- website/json/testcases_ch11.json | 2 +- website/json/testcases_ch12.json | 2 +- website/json/testcases_ch13.json | 2 +- website/json/testcases_ch14.json | 2 +- website/json/testcases_ch15.json | 2 +- website/json/testcases_intl402.json | 1 + website/testcases_intl402.html | 167 ++++++++++++++++++++++++++ 17 files changed, 396 insertions(+), 12 deletions(-) create mode 100644 test/suite/intl402/ch01/1.2/1.2-1_1.js create mode 100644 tools/packaging/templates/runner.intl402.html create mode 100644 website/json/intl402.json create mode 100644 website/json/testcases_intl402.json create mode 100644 website/testcases_intl402.html diff --git a/test/suite/intl402/ch01/1.2/1.2-1_1.js b/test/suite/intl402/ch01/1.2/1.2-1_1.js new file mode 100644 index 000000000..220485f23 --- /dev/null +++ b/test/suite/intl402/ch01/1.2/1.2-1_1.js @@ -0,0 +1,42 @@ +/// Copyright (c) 2012 Microsoft Corporation +/// +/// Redistribution and use in source and binary forms, with or without modification, are permitted provided +/// that the following conditions are met: +/// * Redistributions of source code must retain the above copyright notice, this list of conditions and +/// the following disclaimer. +/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and +/// the following disclaimer in the documentation and/or other materials provided with the distribution. +/// * Neither the name of Microsoft nor the names of its contributors may be used to +/// endorse or promote products derived from this software without specific prior written permission. +/// +/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/** + * @path intl402/ch01/1.2/1.2-1_1.js + * @description This is an example showing how to create Ecma standard 402 tests alongside test262 tests. Should be removed once the 402 effort gets underway + */ + +//The first test case for a hypothetical Step 1 of section 1.2 in the Ecma +//standard 402. + +function testcase() { + "use strict"; + + //whether the test case passed or failed + var passed = false; + + //Here is where you'd actually test Step 1 of section 1.2 of the + //hypothetical standard. If the test passed against an + //implementation, you'd set passed to 'true'. + passed = true; + + return passed; +} +runTestCase(testcase); diff --git a/tools/packaging/packagerConfig.py b/tools/packaging/packagerConfig.py index 348a6b245..0cf86aaff 100644 --- a/tools/packaging/packagerConfig.py +++ b/tools/packaging/packagerConfig.py @@ -69,7 +69,7 @@ WEBSITE_CASES_PATH = "json/" EXCLUDED_FILENAME = os.path.join(TEST262_ROOT, "test", "config", "excludelist.xml") -WEBSITE_EXCLUDE_RE_LIST = ["bestPractice", "internationalization"] +WEBSITE_EXCLUDE_RE_LIST = ["bestPractice", "intl402"] WEBSITE_EXCLUDE_RE_LIST = [ re.compile(x) for x in WEBSITE_EXCLUDE_RE_LIST] #------------------------------------------------------------------------------ @@ -83,9 +83,15 @@ def generateHarness(harnessType, jsonName, title): if TEMPLATE_LINES==None or harnessType!=__lastHarnessType: __lastHarnessType = harnessType TEMPLATE_LINES = [] + + #TODO: temp hack to make internationalization tests work + if jsonName=="testcases_intl402.html": + harnessType = "intl402" + with open(os.path.join(os.getcwd(), "templates", "runner." + harnessType + ".html"), "r") as f: TEMPLATE_LINES = f.readlines() + fileName = os.path.join(TEST262_ROOT, WEBSITE_SHORT_NAME, jsonName.replace(".json", ".html")) fileNameExists = False diff --git a/tools/packaging/templates/runner.intl402.html b/tools/packaging/templates/runner.intl402.html new file mode 100644 index 000000000..1c17ca39c --- /dev/null +++ b/tools/packaging/templates/runner.intl402.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + +ECMAScript Test262 + + + +
+ +
+
+
+ Loading... + Loading... +
+
+
+ +
+ +
+
+ +
+ + +
+ +
+

What is test262?

+

test262 is a test suite intended to check agreement between JavaScript implementations and the ECMA-262 Specification (currently 5th Edition). The test suite contains thousands of individual tests, each of which tests some specific requirements of the ECMAScript specification.

+

What is ECMAScript?

+

"ECMAScript" is the name under which the language more commonly known as "JavaScript" is standardized. Development of the ECMAScript standard is the responsibility of Technical Committee 39 (TC39) of Ecma International. The ECMAScript standard is officially known as ECMA-262. ECMAScript 5 (or just ES5) is short hand for the "ECMA-262, 5th Edition ECMAScript Language Specification" the official name of the current edition of the standard. ECMAScript 5 was approved as an official Ecma standard by the Ecma General Assembly on December 3, 2009. The ECMAScript 5 Specification (PDF) is available from the Ecma International web site.

+

Who creates and maintains test262?

+

Development of test262 is a project of Ecma TC39. The testing framework and individual tests are created by member organizations of TC39 and contributed to Ecma for use in test262. For more information about how test262 is developed and maintained click the “Development” tab at the top of this page.

+

What is the status of test262?

+

test262 is not yet complete. It is still undergoing active development. Some portions of the ES5 specification have very complete test coverage while other portions of the specification have only partial test coverage. Some tests may be invalid or may yield false positive or false negative results. A perfect passing score on test262 does not guarantee that a JavaScript implementation perfectly supports ES5. Because tests are being actively added and modified, tests results from different days or times may not be directly comparable. Click the “Development” tab at the top of this page for instructions for reporting test262 bugs.

+

Where can I found out more?

+

Please visit our Frequently Asked Questions section on the ECMAScript Wiki.

+ +

Running the Tests

+

Click the “Run” tab at the top of this page for instructions and follow the instructions to run the tests.

+ + + +
+ +
+

Development

+

Test262 is being developed by the members of Ecma TC39. Ecma's intellectual property policies, permit only Ecma + members to directly contribute code to the project. However, a public mailing list is used to coordinate development of Test262. If you wish to participate in the discussion please subscribe. Bug reports and suggestions should be sent to the mailing list. +

+

+ Ecma members can find detailed instructions on Test262 development procedures at the Test262 Wiki. +

+
+ +
+ +

Please click on the Start button to start the test. Once you start the test you may pause the test anytime by clicking on the Pause button. You can click on the Results tab once the test is completed or after pausing the test. The Reset button is for restarting the test run.

+ + +
+
+
+   +
+
+
+

> + Timer Value(ms) : +

+ +
+ + Tests To Run:  | + Total Tests Ran: | Pass: | Fail: + | Failed To Load: +

+
+ +
+
+
+
+ Test Suite Ver.:  | Test Suite Date: +
+
+ +
+
+
+ +
+
+
Total Tests:
+ Passed: | Failed: | + Failed To Load: +
+ +
+
+
Test results will be displayed after the tests are executed using the Run page.
+
+
+ Test Suite Ver.:  | Test Suite Date: +
+ +
+  100%  +  75% to 99.9%  +  50% to 75%   +  less than 50% +
+
+
+
+ + + + + diff --git a/website/json/default.json b/website/json/default.json index 0c84f4bf4..ceb631d04 100644 --- a/website/json/default.json +++ b/website/json/default.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":11181,"testSuite":["json/ch07.json","json/ch08.json","json/ch09.json","json/ch10.json","json/ch11.json","json/ch12.json","json/ch13.json","json/ch14.json","json/ch15.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":11181,"testSuite":["json/ch07.json","json/ch08.json","json/ch09.json","json/ch10.json","json/ch11.json","json/ch12.json","json/ch13.json","json/ch14.json","json/ch15.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/intl402.json b/website/json/intl402.json new file mode 100644 index 000000000..ec2531885 --- /dev/null +++ b/website/json/intl402.json @@ -0,0 +1 @@ +{"testsCollection":{"name":"Chapter - intl402","numTests":"1","tests":[{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGludGw0MDIvY2gwMS8xLjIvMS4yLTFfMS5qcw0KICogQGRlc2NyaXB0aW9uIFRoaXMgaXMgYW4gZXhhbXBsZSBzaG93aW5nIGhvdyB0byBjcmVhdGUgRWNtYSBzdGFuZGFyZCA0MDIgdGVzdHMgYWxvbmdzaWRlIHRlc3QyNjIgdGVzdHMuIFNob3VsZCBiZSByZW1vdmVkIG9uY2UgdGhlIDQwMiBlZmZvcnQgZ2V0cyB1bmRlcndheQ0KICovDQoNCi8vVGhlIGZpcnN0IHRlc3QgY2FzZSBmb3IgYSBoeXBvdGhldGljYWwgU3RlcCAxIG9mIHNlY3Rpb24gMS4yIGluIHRoZSBFY21hIA0KLy9zdGFuZGFyZCA0MDIuDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICJ1c2Ugc3RyaWN0IjsNCiAgICANCiAgICAvL3doZXRoZXIgdGhlIHRlc3QgY2FzZSBwYXNzZWQgb3IgZmFpbGVkDQogICAgdmFyIHBhc3NlZCA9IGZhbHNlOw0KICAgIA0KICAgIC8vSGVyZSBpcyB3aGVyZSB5b3UnZCBhY3R1YWxseSB0ZXN0IFN0ZXAgMSBvZiBzZWN0aW9uIDEuMiBvZiB0aGUgDQogICAgLy9oeXBvdGhldGljYWwgc3RhbmRhcmQuICBJZiB0aGUgdGVzdCBwYXNzZWQgYWdhaW5zdCBhbiANCiAgICAvL2ltcGxlbWVudGF0aW9uLCB5b3UnZCBzZXQgcGFzc2VkIHRvICd0cnVlJy4NCiAgICBwYXNzZWQgPSB0cnVlOw0KICAgIA0KICAgIHJldHVybiBwYXNzZWQ7IA0KfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"This is an example showing how to create Ecma standard 402 tests alongside test262 tests. Should be removed once the 402 effort gets underway","path":"TestCases/intl402/ch01/1.2/1.2-1_1.js"}]}} \ No newline at end of file diff --git a/website/json/testcases_bestPractice.json b/website/json/testcases_bestPractice.json index fb8237f99..8067093fd 100644 --- a/website/json/testcases_bestPractice.json +++ b/website/json/testcases_bestPractice.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":13,"testSuite":["json/bestPractice.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":13,"testSuite":["json/bestPractice.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_ch07.json b/website/json/testcases_ch07.json index 624cad272..78a20944a 100644 --- a/website/json/testcases_ch07.json +++ b/website/json/testcases_ch07.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":716,"testSuite":["json/ch07.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":716,"testSuite":["json/ch07.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_ch08.json b/website/json/testcases_ch08.json index 6c1261fb9..fc9f13faf 100644 --- a/website/json/testcases_ch08.json +++ b/website/json/testcases_ch08.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":124,"testSuite":["json/ch08.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":124,"testSuite":["json/ch08.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_ch09.json b/website/json/testcases_ch09.json index 929db6faf..b5ac4056f 100644 --- a/website/json/testcases_ch09.json +++ b/website/json/testcases_ch09.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":128,"testSuite":["json/ch09.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":128,"testSuite":["json/ch09.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_ch10.json b/website/json/testcases_ch10.json index 2e7b49ddd..fc84408e3 100644 --- a/website/json/testcases_ch10.json +++ b/website/json/testcases_ch10.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":184,"testSuite":["json/ch10.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":184,"testSuite":["json/ch10.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_ch11.json b/website/json/testcases_ch11.json index caaefe138..1341029f6 100644 --- a/website/json/testcases_ch11.json +++ b/website/json/testcases_ch11.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":1310,"testSuite":["json/ch11.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":1310,"testSuite":["json/ch11.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_ch12.json b/website/json/testcases_ch12.json index 7022527e5..dec120575 100644 --- a/website/json/testcases_ch12.json +++ b/website/json/testcases_ch12.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":525,"testSuite":["json/ch12.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":525,"testSuite":["json/ch12.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_ch13.json b/website/json/testcases_ch13.json index 0e7b43d04..7af9dd594 100644 --- a/website/json/testcases_ch13.json +++ b/website/json/testcases_ch13.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":200,"testSuite":["json/ch13.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":200,"testSuite":["json/ch13.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_ch14.json b/website/json/testcases_ch14.json index df46f4ec3..a05d18bc2 100644 --- a/website/json/testcases_ch14.json +++ b/website/json/testcases_ch14.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":24,"testSuite":["json/ch14.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":24,"testSuite":["json/ch14.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_ch15.json b/website/json/testcases_ch15.json index 57e1d618a..1ef3d5f60 100644 --- a/website/json/testcases_ch15.json +++ b/website/json/testcases_ch15.json @@ -1 +1 @@ -{"date":"2012-01-19","numTests":7970,"testSuite":["json/ch15.json"],"version":"ES5.1"} \ No newline at end of file +{"date":"2012-01-25","numTests":7970,"testSuite":["json/ch15.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/json/testcases_intl402.json b/website/json/testcases_intl402.json new file mode 100644 index 000000000..4eabfa45f --- /dev/null +++ b/website/json/testcases_intl402.json @@ -0,0 +1 @@ +{"date":"2012-01-25","numTests":1,"testSuite":["json/intl402.json"],"version":"ES5.1"} \ No newline at end of file diff --git a/website/testcases_intl402.html b/website/testcases_intl402.html new file mode 100644 index 000000000..2364e0ece --- /dev/null +++ b/website/testcases_intl402.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + +ECMAScript Test262 + + + +
+ +
+
+
+ Loading... + Loading... +
+
+
+ +
+ +
+
+ +
+ + +
+ +
+

What is test262?

+

test262 is a test suite intended to check agreement between JavaScript implementations and the ECMA-262 Specification (currently 5th Edition). The test suite contains thousands of individual tests, each of which tests some specific requirements of the ECMAScript specification.

+

What is ECMAScript?

+

"ECMAScript" is the name under which the language more commonly known as "JavaScript" is standardized. Development of the ECMAScript standard is the responsibility of Technical Committee 39 (TC39) of Ecma International. The ECMAScript standard is officially known as ECMA-262. ECMAScript 5 (or just ES5) is short hand for the "ECMA-262, 5th Edition ECMAScript Language Specification" the official name of the current edition of the standard. ECMAScript 5 was approved as an official Ecma standard by the Ecma General Assembly on December 3, 2009. The ECMAScript 5 Specification (PDF) is available from the Ecma International web site.

+

Who creates and maintains test262?

+

Development of test262 is a project of Ecma TC39. The testing framework and individual tests are created by member organizations of TC39 and contributed to Ecma for use in test262. For more information about how test262 is developed and maintained click the “Development” tab at the top of this page.

+

What is the status of test262?

+

test262 is not yet complete. It is still undergoing active development. Some portions of the ES5 specification have very complete test coverage while other portions of the specification have only partial test coverage. Some tests may be invalid or may yield false positive or false negative results. A perfect passing score on test262 does not guarantee that a JavaScript implementation perfectly supports ES5. Because tests are being actively added and modified, tests results from different days or times may not be directly comparable. Click the “Development” tab at the top of this page for instructions for reporting test262 bugs.

+

Where can I found out more?

+

Please visit our Frequently Asked Questions section on the ECMAScript Wiki.

+ +

Running the Tests

+

Click the “Run” tab at the top of this page for instructions and follow the instructions to run the tests.

+ + + +
+ +
+

Development

+

Test262 is being developed by the members of Ecma TC39. Ecma's intellectual property policies, permit only Ecma + members to directly contribute code to the project. However, a public mailing list is used to coordinate development of Test262. If you wish to participate in the discussion please subscribe. Bug reports and suggestions should be sent to the mailing list. +

+

+ Ecma members can find detailed instructions on Test262 development procedures at the Test262 Wiki. +

+
+ +
+ +

Please click on the Start button to start the test. Once you start the test you may pause the test anytime by clicking on the Pause button. You can click on the Results tab once the test is completed or after pausing the test. The Reset button is for restarting the test run.

+ + +
+
+
+   +
+
+
+

> + Timer Value(ms) : +

+ +
+ + Tests To Run:  | + Total Tests Ran: | Pass: | Fail: + | Failed To Load: +

+
+ +
+
+
+
+ Test Suite Ver.:  | Test Suite Date: +
+
+ +
+
+
+ +
+
+
Total Tests:
+ Passed: | Failed: | + Failed To Load: +
+ +
+
+
Test results will be displayed after the tests are executed using the Run page.
+
+
+ Test Suite Ver.:  | Test Suite Date: +
+ +
+  100%  +  75% to 99.9%  +  50% to 75%   +  less than 50% +
+
+
+
+ + + + + -- cgit v1.2.1