Commit Graph

154 Commits

Author SHA1 Message Date
Brian Terlson 3883a2e906 Merge pull request #127 from smikes/asserts
add "assert.js" to python, website runners too
2014-12-01 20:14:47 -08:00
smikes e0fdc30078 add "assert.js" to python, website runners too 2014-12-01 20:04:35 -07:00
Domenic Denicola 2a01b54bb4 Fix whitespace for async test detection
Presumably since Python is whitespace-sensitive, this is actually quite important?
2014-12-01 15:53:27 -05:00
Domenic Denicola dd243a757c Remove trailing whitespace from the Python 2014-12-01 15:52:19 -05:00
smikes 64093f79d3 add some unit tests
add test to repro #114
fix issue #114
factor out PercentFormat function
new fn write; start factoring summary output
fix tests to match
consolidate "Failed Tests" message
add test for successful run
consolidate all_succeeded message
consolidate summary line
consolidate ntests
failing negative tests
squeeze whitespace
2014-11-11 17:07:48 -07:00
Brian Terlson 1f2812adeb Merge pull request #104 from smikes/monkeyYaml-loadfix
load monkeyYaml without assuming it is on path
2014-10-24 14:41:40 -07:00
Sam Mikes 9dc29da897 load monkeyYaml without assuming it is on path
use imp to import monkeyYaml locally
make monkeyYaml the backup again
2014-10-24 22:36:03 +01:00
Sam Mikes 89d71f56b2 additional fixes suggested by @anba 2014-10-24 15:18:37 +01:00
Sam Mikes 4f9cec2fa8 provide fallback parser if YAML not installed
parseTestRecord.py:
- recover from ImportError when YAML not defined
- use monkeyYaml as backup

monkeyYaml.py:
- parser for subset of YAML used in test262 frontmatter

test_monkeyYaml.py:
- unit tests
2014-08-28 12:47:58 +01:00
Sam Mikes 6b7e5d7747 bestPractice: supply error names to negative
pilot directory for replacing flags: [negative] with
negative: errorname

ch07-7.2,7.3: add error names
ch07-rest: insert error names rest of ch07
ch08: add expected error name
ch11: add error name to negative
ch12: put error name in negative

ch13: add error name to negative
only one test, did it manually

ch15: add error name to negative:

ch07: add error name to negative

these tests used flags: \n - negative and so
were not caught by the earlier naive grep for flags: [negative]

--- changes suggested by @anba

bestPractice - remove added NotEarlyError
ch07,ch11 - expect ReferenceError (req'd by ES6)
correct test descriptions to expect ReferenceError only
enforce parsing as block statement by adding `;`
remove needless include of $FAIL.js

effectively, a rebase of all changes onto master

    Merge branch 'negative-addErrorName-work' into negative-addErrorName-bestPractice

    Merge branch 'saved-bestPractice-negative' into negative-addErrorName-work

    Conflicts:
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T2.js
    	test/suite/ch12/12.1/S12.1_A4_T1.js
    	test/suite/ch12/12.5/S12.5_A2.js

    incorporate changes made on PR branch

    re-remove added NotEarlyError

    Merge branch 'negative-addErrorName-work' into negative-addErrorName-bestPractice

    Conflicts:
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T2.js
    	test/suite/ch12/12.1/S12.1_A4_T1.js
    	test/suite/ch12/12.5/S12.5_A2.js

    ch15: correct negative regexes

    ch10: avoid use of not-NotEarlyError regex

    ch14 error regexps

    ch13 error regexps

    ch12: negative error matching

    Merge branch 'console-runner-checkError' into negative-addErrorName-work

    test262.py: check negative tests with regex

    implement checking of negative tests =>

    negative: SyntaxError

    means that /SyntaxError/ must match stderr
    or test is reported as failure

    Fixes #78

    expect real errors

    bestPractice: supply error names to negative

    pilot directory for replacing flags: [negative] with
    negative: errorname

    ch07-7.2,7.3: add error names
    ch07-rest: insert error names rest of ch07
    ch08: add expected error name
    ch11: add error name to negative
    ch12: put error name in negative

    ch13: add error name to negative
    only one test, did it manually

    ch15: add error name to negative:

    ch07: add error name to negative

    these tests used flags: \n - negative and so
    were not caught by the earlier naive grep for flags: [negative]

    --- changes suggested by @anba

    bestPractice - remove added NotEarlyError
    ch07,ch11 - expect ReferenceError (req'd by ES6)
    correct test descriptions to expect ReferenceError only
    enforce parsing as block statement by adding `;`
    remove needless include of $FAIL.js

    Merge branch 'negative-addErrorName-work' into negative-addErrorName-bestPractice

    resolved Conflicts:
    	test/suite/ch07/7.9/S7.9_A5.7_T1.js
    	test/suite/ch11/11.13/11.13.1/S11.13.1_A2.1_T3.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T1.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T10.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T11.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T2.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T3.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T4.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T5.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T6.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T7.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T8.js
    	test/suite/ch11/11.13/11.13.2/S11.13.2_A2.2_T9.js
    	test/suite/ch11/11.3/11.3.1/S11.3.1_A2.1_T3.js
    	test/suite/ch11/11.3/11.3.2/S11.3.2_A2.1_T3.js
    	test/suite/ch11/11.4/11.4.4/S11.4.4_A2.1_T3.js
    	test/suite/ch11/11.4/11.4.5/S11.4.5_A2.1_T3.js
    	test/suite/ch12/12.5/S12.5_A2.js
    	test/suite/ch12/12.6/12.6.3/S12.6.3_A4_T2.js

    negative: second half of @anba notes

    correct test descriptions to expect ReferenceError only
    enforce parse as block statement by adding `;`
    remove needless include of $FAIL.js

    ch12: specify type

    negative: @anba fixes

    bestPractice - remove added NotEarlyError
    ch07,ch11 - expect ReferenceError (req'd by ES6)

    bestPractice: supply error names to negative

    pilot directory for replacing flags: [negative] with
    negative: errorname

    ch07-7.2,7.3: add error names
    ch07-rest: insert error names rest of ch07
    ch08: add expected error name
    ch11: add error name to negative
    ch12: put error name in negative

    ch13: add error name to negative
    only one test, did it manually

    ch15: add error name to negative:

    ch07: add error name to negative

    these tests used flags: \n - negative and so
    were not caught by the earlier naive grep for flags: [negative]

    expect a SyntaxError

    ch07: add error name to negative

    these tests used flags: \n - negative and so
    were not caught by the earlier naive grep for flags: [negative]

    ch15: add error name to negative:

    ch13: add error name to negative

    only one test, did it manually

    ch12: put error name in negative

    ch11: add error name to negative

    ch08: add expected error name
    ch07-rest: insert error names rest of ch07

    ch07-7.2,7.3: add error names

    negative-errorname: pilot

    pilot directory for replacing flags: [negative] with
    negative: errorname

    bestPractice: supply error names to negative

bestPractice: supply error names to negative

pilot directory for replacing flags: [negative] with
negative: errorname

ch07-7.2,7.3: add error names
ch07-rest: insert error names rest of ch07
ch08: add expected error name
ch11: add error name to negative
ch12: put error name in negative

ch13: add error name to negative
only one test, did it manually

ch15: add error name to negative:

ch07: add error name to negative

these tests used flags: \n - negative and so
were not caught by the earlier naive grep for flags: [negative]

bestPractice: supply error names to negative

negative-errorname: pilot

pilot directory for replacing flags: [negative] with
negative: errorname

ch07-7.2,7.3: add error names

ch07-rest: insert error names rest of ch07

ch08: add expected error name

ch11: add error name to negative

ch12: put error name in negative

ch13: add error name to negative

only one test, did it manually

ch15: add error name to negative:

ch07: add error name to negative

these tests used flags: \n - negative and so
were not caught by the earlier naive grep for flags: [negative]

expect a SyntaxError

negative: @anba fixes

bestPractice - remove added NotEarlyError
ch07,ch11 - expect ReferenceError (req'd by ES6)

ch12: specify type

negative: second half of @anba notes

correct test descriptions to expect ReferenceError only
enforce parse as block statement by adding `;`
remove needless include of $FAIL.js

expect real errors

ch12: negative error matching

ch13 error regexps

ch14 error regexps

add "description" header back

remove now-unused includes

remove needless include
2014-08-13 00:19:11 +01:00
Sam Mikes 4205a1da64 harness: remove unused code
sta.js:
slight change to Test262Error() semantics; message property now always set (default "")
make $ERROR a var
set $ERROR to function $ERROR so it can be overridden if needed
remove 2009 copyright in favor of 2012 copyright
REVERTED: remove never-used fn testFailed
testFailed actually used by $FAIL
remove obsolete fn $INCLUDE

ed.js:
remove commented-out obsolete code

test262.py:
remove always-included harness file that provides no functions used by any extant test
add comment line to nonstrict

cth.js: define `print` for node, cscript

use cth (console test harness) to define functions
for console runner.  V8, Spidermonkey (js) and JavaScriptCore (jsc)
provide a function `print`.  Provide a default `print` for node
and cscript

set print_handle to 'print' by default (can still override)
for cscript: wrap tests in try/catch so we get syntax errors
2014-08-03 00:33:08 +01:00
Sam Mikes c33bf0e043 tools, harness: support new YAML frontmatter
parseTestRecord: add support for YAML frontmatter
parseTestRecord: initial unit test for test record parser
parseTestRecord: refactor for testing

factor old parsing; add YAML parsing

runner: support "includes" from YAML frontmatter

support frontmatter "includes" in python runner
use test.includes if present instead of scanning test code with regex

harness: factor individual functions out into files

tools: handle YAML errors

tolerate missing keys in dictionary (flags, includes)
report filename when empty frontmatter block
new option --list-includes to test262.py

harness: factor helper functions into separate files

sth: remove extra close-paren (syntax error)

test_common: TDD; failing parse of YAML

common: use parseTestRecord (YAML-aware)
2014-07-30 15:39:04 -07:00
Sam Mikes d4a3479a1e test262.py: only include helper scripts when needed
test262.py: only supply async helper scripts when test is async
sth.js: factor out function isAsyncTest()
timer.js: improve workaround for async tests when Promise is defined but setTimeout is noot

timer.js emulates setTimeout using Promise by doing a busy loop that checks
if `timeout` milliseconds have elapsed.  Modified check to (timeLeft > 0) instead
of (!timeLeft) to prevent infinite loop when check does not happen to run
at precise millisecond timeout expires.

Because test262.py did not support the $INCLUDE directive, some helper
scripts were added to every test -- notably testIntl, timer, and donePrintHandle
Now that $INCLUDE is supported, these can be dropped, speeding overall test run time
2014-07-21 15:15:04 +01:00
Brian Terlson 33c8399de8 Merge pull request #31 from Constellation/fix-error-code
Propagate error code when test cases are failed
2014-07-18 11:38:31 -07:00
Brian Terlson 96c6efe0ef Merge pull request #43 from smikes/initial-Promise-tests
Initial promise tests
2014-07-18 11:22:48 -07:00
smikes 7032af4db8 packager: make packager runnable
packager.py cannot run due to syntax errors in a few script files

packagerConfig: use git instead of hg
test262: use pop instead of delete to avoid throw if property missing
S22.1.2.1_T*: fix docString header comment: s/b /**
S22.1.2.1_T3: fix docString header comment: s/b /**, fix end of docstring * / => */
2014-07-18 08:53:29 +01:00
Sam Mikes 7e07cc138d async,promises: initial tests of Promises
doneprintHandle.js: make $DONE accept any falsy argument as meaning 'pass'
PromiseHelper.js: checkSequence: new helper fn for async tests
.gitignore: port .hgignore to .gitignore syntax
test262.py: support $INCLUDE directive in python test runner

S25.4.4.1*: tests to cover Section 25.4.4.1, Promise.all( iterable )
A1.1: Promise.all is callable
A1.2: Promise.all expects 1 argument
A2.1: Promise.all([]) is a Promise
A2.2: Promise.all([]) is resolved immediately
A2.3: Promise.all([]) is resolved with a new empty array
A3.1: Promise.all expects an iterable argument
2014-07-18 05:37:08 +01:00
NikSurya 9aa6b917fa Adding Support for Async Tests 2014-07-15 13:47:59 -07:00
Yusuke Suzuki d83a16f46c Propagate error code when test cases are failed 2014-03-03 03:32:26 +09:00
Prashanth Srinivasan 87605ba3b5 Bug 1472: Adding JUnit Compatible XML and Logfile support for Python test runner 2013-06-10 11:51:24 -04:00
Dan Schaffer 06879c044f Bug 1466: add test262.py parameter to set loglevel 2013-05-10 16:19:32 -04:00
Dan Schaffer 1cb9ed439f Bug 1457: fix for Windows to remove quotes in test262.py 2013-05-10 16:16:51 -04:00
Norbert Lindenberg 46359091c7 Updated test402 main page to reflect that ECMA-402 is now an approved standard.
Fixed a property access in 6.4_c so that the error message shows the correct expected value.
2012-12-17 23:49:06 -08:00
Norbert Lindenberg 1ba4238d9a Made web site packager insert line breaks into JSON files for saner diffs. 2012-09-12 15:09:36 -07:00
Norbert Lindenberg 1af2425075 Added new tests for chapters 6 and 9 of ECMAScript Internationalization API Specification.
- Removed a few old test cases that were redundant with new, more comprehensive ones.
- Added testIntl.js as standard include for all console tests in test262.py – see related bug 574.
- Added .jshintrc file for settings for the JSHint tool.
2012-08-26 20:49:25 -07:00
Norbert Lindenberg 8cad7d03ce Added tests for requirements imposed on the built-in objects of the ECMAScript Internationalization API Specification by the introduction of chapter 15 of the ECMAScript Language Specification.
- Removed some old tests that were redundant with the new tests.
- Added testBuiltInObject.js as standard include for all console tests in test262.py – see related bug 574.
2012-08-26 20:48:49 -07:00
Norbert Lindenberg c3111850e3 Updated existing tests for June 2012 spec changes; removed LocaleList tests; fixed minor issues.
- Removed LocaleList tests; updated other tests so they don't depend on LocaleList.
- Updated tests so they no longer assume that the prototype object of a constructor is an instance of that constructor.
- Updated tests so that jshint is happy.
- Removed @path attributes from test files; updated comment in packager.py explaining why they're unnecessary.
- Removed "use strict" statements, which interfere with strict/non-strict testing.
- Removed testcase functions, which are unnecessary.
2012-08-22 17:53:26 -07:00
Norbert Lindenberg 9f4a513496 Merged changes. 2012-08-22 16:12:54 -07:00
Bill Ticehurst ebdd0a99e6 Fixing Intl402 and BestPractice pages as per bug https://bugs.ecmascript.org/show_bug.cgi?id=611 2012-08-09 12:29:48 -07:00
Norbert Lindenberg 9a4b4011f8 Got test402 web site into usable shape. Unified headers of test262/402 sites.
- Added table of contents for ECMA-402.
- Added ability to load the right table of contents into results display.
- Added meaningful text to test402 web page.
- Updated test262 web pages for 5.1 edition of ECMA-262.
- Unified headers of test262/402 web pages to ECMAScript <area> <test>.
- Replaced text logos with styled text.
- Decapitalized some text; fixed a typo; expanded an abbreviation.
- Fixed a few issues found by W3 HTML validator.
2012-07-18 12:32:54 -07:00
Norbert Lindenberg d371b39cb6 Fixed bug 443: packager.py fails on Mac because of .DS_Store files.
Running packager.py on Mac unfortunately also changes some line terminators in generated files (bug 444), so lots of additional files in this commit.
2012-07-18 12:19:53 -07:00
t-adamre 385b4f7163 Add capability to run chapters individually from the website 2012-06-12 14:54:30 -07:00
David Fugate 87be1bf6ec https://bugs.ecmascript.org/show_bug.cgi?id=65 fixed. 2012-03-28 16:05:03 -07:00
David Fugate 23598a3c67 Renamed AddLicenseHeader.py to FixLicenseHeader.py.
Modified it to switch us over to the Ecma license for everything
except Sputnik-based sources (someone from Google should make
this change on line 60 of FixLicenseHeader.py).
2012-03-01 11:06:50 -08:00
David Fugate 0612ad7bb3 Added a LICENSE file to the root of the enlistment.
All Microsoft-contributed *.js and *.py sources now have Ecma's copyright header.
2012-02-29 14:23:47 -08:00
David Fugate c3b41309c7 Made it clear on testcases_bestPractice.html that it's not the same as default.html. 2012-02-29 09:02:11 -08:00
David Fugate 4fb5071cd4 Migrated latest external\contributions\Microsoft\ietcLatest changes over to test\suite\*. 2012-02-27 15:46:23 -08:00
David Fugate 394e82c6c2 Fixed more license headers. 2012-02-08 15:33:30 -08:00
David Fugate e0cf97e344 A conversion tool ripped Microsoft license headers out of globally scoped tests. Fixed 2012-02-07 09:34:36 -08:00
David Fugate 0ff258fa1d Experimental test402 (internationalization testing) page added. 2012-01-25 14:29:00 -08:00
David Fugate 279825ea44 Added experimental test402 support (JS internationalization standard). 2012-01-25 14:04:40 -08:00
David Fugate d7619456fa Generate one *.html per *.json in addition to the default.html which includes all tests.
Added support to create testcases_bestPractice.html without also adding them to default.html.

Preliminary support for tests under test/suite/internationalization has been added.
2012-01-19 16:03:21 -08:00
David Fugate 43b58c99d0 Preserve only the first line of each test case's copyright header
when encoding to JSON which coincidentally preserves the BOM as well.
This shaved ~10 megs off of chapter15.json alone.
2011-11-04 12:04:46 -07:00
David Fugate 6d83f405b8 The Sputnik/IETC => test262 converter is no longer useful. 2011-11-04 11:16:13 -07:00
David Fugate edd1628de5 FindTestCaseIssues.py is a new helper script which can be used to detect issues with the format of test cases (e.g., runTestCase not being called).
FixPathsAndIds.py now preserves line endings and the BOM.
2011-11-04 11:13:23 -07:00
David Fugate dc9bd9601b Fewer Json files (experiment...). 2011-10-03 16:01:47 -07:00
David Fugate 5a665767e6 Re-gen'ed website using new Sputnik directory names. 2011-10-03 13:31:15 -07:00
Mark Miller 13b63c5486 test262 console runner working! 2011-09-30 08:24:38 -04:00
Mark Miller 64db10aa2d Just reformatting to 80 columns 2011-09-30 03:59:50 -04:00
David Fugate be82787a00 Do not include 'code' key in test object metadata. 2011-09-26 17:22:29 -07:00
David Fugate ffa85c2584 Moved all test helper functions into sta.js; removed sputnikLib.js.
Laid down the groundwork for a console-based test runner.
2011-09-26 16:12:46 -07:00
David Fugate 19ec143b0d Do not put 'best practice' tests on the live website. 2011-09-25 15:37:56 -07:00
Mark Miller f9fa3d1e82 Changed to convert into test/suite rather than test/suite/converted 2011-09-25 15:10:07 -07:00
Mark Miller caa9c2f11f Changed to get sputnik tests from sputnik_conformance_modified. 2011-09-25 12:58:24 -07:00
David Fugate ffbed26afd Updated convert.js to use new IETC directory. 2011-09-25 12:22:44 -07:00
David Fugate 5e0a22f420 Removed TestCaseHTMLPackager. Replacement is tools/packaging/*. 2011-09-25 11:47:50 -07:00
David Fugate 5534d810e8 Sputnik conversion tool has been removed. 2011-09-25 11:45:55 -07:00
David Fugate ba41d38511 Regenerated website using new package.py and test/suite/converted. 2011-09-25 11:41:04 -07:00
Mark Miller ede572eced Fixed EarlyError naming. Accepting and ignoring at-bestPractice.
Added .hgignore
2011-09-25 08:40:10 -07:00
David Fugate 2b0122ef82 All tests are globally scoped tests - Part I. 2011-09-24 16:35:45 -07:00
David Fugate ab1142e498 Merge. 2011-09-24 11:48:21 -07:00
David Fugate 54b6ae5e9c Moved resources and images directories (from website) up a couple levels.
Added new 'packaging' directory to tooling.
2011-09-24 11:47:48 -07:00
Mark Miller 2e320eddb7 Renamed .comment property to .commentary 2011-09-24 11:11:55 -07:00
Mark Miller 292ee6e92c Partial conversion of an older version of convert.js to Python. 2011-09-24 11:11:24 -07:00
David Fugate ff32b5c3fc New HTML+console packager. 2011-09-24 10:35:50 -07:00
Mark Miller ea9a2f4c4c Adjusted converter 2011-09-23 17:41:23 -07:00
Mark Miller 122550c5dd Merged 2011-09-23 16:21:12 -07:00
Mark Miller aac6432ae1 Updated converter to process the new IETCGlobalScope.js file. 2011-09-14 12:43:53 -07:00
Mark Miller fc18852cda Merge 2011-09-13 23:34:34 -07:00
Mark Miller 9f7d9f6ab5 Fixed test262.py to handle strict options correctly.
Fixed convert.py to convert a "use strict" into an @strict_only
2011-09-13 22:06:04 -07:00
David Fugate 807a3ba1b7 Merge. 2011-09-12 11:25:23 -07:00
Mark Miller dec1be4414 minor oversight 2011-09-11 22:04:55 -07:00
Mark Miller a2ca5b512b Adapted the sputnik command line testRunner to a command line
testRunner, test262.py, that can run all the converted tests.
2011-09-11 21:12:01 -07:00
Mark Miller 274b5514fa As David Fugate requested, changed the conversion of ietestcenter
style to append runTestCase(funcName); rather than
assertTrue(funcName.call(this)), giving the testing framework more
control.
2011-09-09 14:48:37 -07:00
Mark Miller 5c054fa412 First checkin of browserPlatform.js, even though it's far from ready. 2011-09-07 23:41:10 -07:00
Mark Miller ca417c93dc Now generating the format David Fugate and I agreed on this
morning. The rewrite of "function testcase()..." now puts the
assertTrue at the bottom. Preconditions, names, and ids are
removed. And the path in the file is ignored, and is instead set
accurately according to where the file is found.
2011-09-07 21:42:49 -07:00
Mark Miller 2f25dc8f0c Added copyright. 2011-09-06 23:37:30 -07:00
Mark Miller 1558636929 Converts test cases to proposed new canonical form 2011-09-06 23:32:28 -07:00
David Fugate 2871886420 test\harness\*:
- a lot of JS harness code written in strings have been moved out to actual physical files
  such as ed.js (syntax error detection for globally scoped tests) and gs.js (global scope test
  case validator).  This change makes it far easier to maintain the test harness code
- reorganized helper.js providing a clear indication which methods are used by external objects,
  which are implementation details, and which are unequivocally test262-specific.  I've also added,
  openErrorWindow, which will be used to open a descriptive error message window for each test case
  failure reported on the 'Run' tab
- improved the error message for syntax errors occurring when a test case fails to load
- sta.js no longer tries to pickle all helper functions it contains!  Instead, we load the file
  directly from sth.js.  The performance of fnGlobalObject has been improved.  Finally, the ES5Harness
  object has been moved from sth.js (in a string) to here
- sth.js now has a browser implementer hook, controller.implementerHook, which allows browser implementers
  to handle test case failures in their own way (e.g., log to the filesystem).  The 'run' function was
  basically re-written

Added 37 new test cases from the "IE Test Center" Build release.  There were 14 modifications to
existing test cases as well.  Refactored SputnikGlobalScope.js such that test case paths are now used
as indices into the GlobalScopeTests array.

TestCasePackager.py had the concept of templated test harnesses introduced - see templates\runner.test262.html.
Also added support for one HTML test harness per ES5 chapter.  Last but not least, TestCasePackagerConfig.py
now has a 'source control' abstraction class which abstracts away source control adds|edits when dynamically
generating *.json and *.html test chapters.
2011-08-25 11:18:44 -07:00
David Fugate c0b6d37ba0 Added some missing copyright headers. 2011-06-30 14:33:50 -07:00
David Fugate 42b534663f Added a small script, InvalidTestDetector.py, to help detect test dependencies on DOM and
host objects (which make them invalid for test262).  Using this, I found one benign 'alert'
usage (it was never even called) and removed it.
2011-06-30 14:31:11 -07:00
David Fugate b78c959d2a New Sputnik 'negative' metadata that included exception type was causing problems for SputnikConverter.
Took the easy fix and split the metadata into two: 'negative' and 'errortype'.
2011-06-29 11:11:12 -07:00
David Fugate c04a994e00 Added missing license header to TestCasePackager.py. Also, split
this module in two such that the configuration of the test case
packaging tool is separate from the implementation.
2011-06-02 15:41:54 -07:00
David Fugate 994e6f3049 A previous check-in made today lost generation of 'N.0' test section directories for
tests covering a given chapter, N, without delving into subsections.  This in turn
broken the Results page which was by default displaying individual results for chapters
13(.0) and 14(.0).  Fixed.
2011-04-20 16:52:14 -07:00
David Fugate b055423983 Removed (SputnikConverter) requirement that globally scoped tests be generated to a
'GlobalScope' directory.
2011-04-20 12:01:06 -07:00
David Fugate 545f2c34a0 *NOTE: this is a work-in-progress. Need to remove our dependency on a separate 'GlobalScope'
directory next*

SputnikConverter:
- ES5TestCase.cs
	* Case of JSON-based property names was wrong.  Fixed
	* Use the tests' 'id' instead of 'path' as the GlobalScopeTests keys
	* Added 'id' and 'path' as Global Scope test metadata.  The correct/clean solution here is to simply use 'path'
	  as the key to GlobalScopeTests, but this refactoring needs to be undertaken later when we can convert the
	  'normal' test cases over to use 'path' as the key as well
	* Turns out we cannot depend on the message received by window.onerror to have some form of "syntax"
	  contained within it.  Instead, we'll just rely on the regular expression ".", matches any one character,
	  for the short term
- SputnikTestCase.cs
	* Same case issue as for ES5TestCases.cs
	* Don't trust the Sputnik metadata for the ES5 section name or even test case id to be correct. Instead,
	  generate this information from the file path of the test case


TestCasePackager.py:
- added a new global, GLOBAL_SCOPE_FILES, which is a list of JS files found directly under test\suite\*.js
  which include metadata for so-called globally scoped tests.  These files are imported directly by the HTML
  test harness

test\suite\*:
- regenerated Sputnik tests based on new converter

default.html:
- import SputnikGlobalScope.js.  Really TestCasePackager.py should generate the global scope imports to
  default.html automatically...


website\resources\scripts\testcases\*:
- test cases have shuffled from existing *.json files into globalscope.json
2011-04-20 11:17:38 -07:00
David Fugate 06e62f878b A number of small improvements to Sputnik Test Converter:
- restructured the generated GlobalScope.js file such that the HTML test harness
  can import multiple such files without worrying about one blowing aways another's
  metadata
- inline with the last change, GlobalScope.js has been renamed to SputnikGlobalScope.js
  and generated directly to test\suite\*
- the path and ID properties for most entries in GlobalScope.js were incorrect.  That is,
  they were based on the metadata contained in the original Sputnik tests and not the
  new test262 directories and filenames
- generate global scope tests to test\suite\GlobalScope\* instead of
  test\suite\sputnik_converted\GlobalScope\*.  Going forward we need to move towards
  integrating all test sources into test262 directories (e.g., "GlobalScope"===good;
  "Sputnik\GlobalScope"===not-so-good)
- a few hacks to the sources (e.g., private vars to public vars) I'll fix in a refactoring
  later.  Just trying to get everything working first
2011-04-19 10:15:02 -07:00
David Fugate 24b2fcf78d Vendor did a bit of work to preserve Sputnik's negative test cases in their existing format.
Still needs a bit of integration work into the test harness.

A number of Sputnik tests were written outside the context of a chapter's sections.  E.g.,
"Chapter 13" versus "Chapter 13, Section 1".  We now fake a section number ("13.0" for the
example above) for such cases when generating test case metadata.
2011-04-08 13:29:16 -07:00
David Fugate 08a7f7433a Few minor changes to sta.js and sth.js to support Strict Mode.
Renamed move_test.py to FixTestCasePlacement.py. Still a work in progress.
2011-04-07 10:12:45 -07:00
David Fugate 09186bafb4 84 IE Test Center test cases had corrupted 'path' properties in
their test case objects.  Created an automated tool, FixPathsAndIds.py,
to fix these.

TestCasePackager.py no longer throws when it encounters a non-*.js
file where it expects test cases.  Instead, it simply ignores it.
2011-03-30 09:48:29 -07:00
David Fugate 76ac2946d5 Removed TestCasePackager.ps1. It's been supplanted by TestCasePackager.py. 2011-03-23 13:46:59 -07:00
David Fugate ba59cf13be More cleanup on TestCasePackager.py. 2011-03-23 13:46:15 -07:00
David Fugate 31e2bcacf6 Partial cleanup of TestCasePackager.py. Major change is the 'json'
module is now utilized.
2011-03-23 12:48:09 -07:00
David Fugate 61343f1b93 TestCasePackager.py is a verbatim port of TestCasePackager.ps1. The
rationale behind the addition of this file is it's meant to replace
TestCasePackager.ps1 outright and will be runnable on all major
operating systems.  There's still a bit of cleanup work needed as
the Python port was hardly optimized for the language.

A few side effects of this change:
- it now takes under ten seconds to generate the test262 website (PS
  version was taking over a minute)
- generated *.json files are ~5% smaller in size (PS was forcing
  '\r\n' and the Python version preserves the tests' newlines whether
  they're '\r\n' or '\n')
2011-03-23 10:37:21 -07:00
David Fugate 2a7b5435d7 Switched from using XML for encoded test cases to JSON. 2011-03-11 10:59:52 -08:00
David Fugate 0bcccaca10 Refactored TestCasePackager.ps1 such that it now produces test case XMLs according
to the following criteria:
1.  If a test case directory directly contains *.js files at the root level, package
    the entire directory as an XML regardless of how many *.js files are in
    subdirectories
2.  If the directory and subdirectories contain less than 1,000 test cases, package
    the entire directory as an XML.  Otherwise...
3.  Perform steps 1 and 2 on each subdirectory of the directory

The net effect of this change is that no test case XMLs are larger than 1.5 megs any longer,
although the total number of test XMLs has jumped from about a dozen to ~75.  This should
make running the test harness seem a little smoother across all browsers since we won't be
blocked downloading 4 meg files for several seconds any longer.
2011-03-02 10:24:58 -08:00
David Fugate d3d9d28c18 Sputnik tests were previously modified to ensure global objects with common names (e.g., 'obj')
were actually unique across the test cases.  This *was* needed prior to November as we weren't
running each test case in it's own private global environment.  The situation now is that
we're running each test within it's own iframe => the modifications are no longer needed.

Few small improvements to SputnikConverter:
- App.config file locations have been fixed
- template files get pushed alongside generated tool binaries
- the root path for Sputnik conformance files is "Conformance", not "tests"
- allow the main exe to throw exceptions so they can be properly debugged with VS
2011-02-10 17:58:47 -08:00
David Fugate 0252ed17af Added a tool to help analyze our coverage of ES5. 2011-01-14 15:07:29 -08:00
David Fugate 42b884b7ba TestCasePackager.ps1 had problems dealing with test case files that had valid test code
prior to the usage of "ES5Harness".  Specifically in cases like:
  var abc = ...;
  ES5Harness.registerTest( {
  //...abc gets used here

the declaration of "abc" would've been ripped out thereby corrupting the test.

This change fixes the issue for all existing IE Test Center and Sputnik test cases. Note
however that it could potentially fail for lines like this: "/*abc*/ /*".  If we ever add
cases including comments like this, the implementation of isTestStarted will need to be
revisited.

There were five such test cases that were being affected by this issue in IE Test
Center's chapter 10 and 15 tests.  These have all been fixed via the updated script.
2010-11-16 15:43:29 -08:00
David Fugate 2f34b4e050 TestCasePacker.ps1:
- The only parameter required for this script is now the test suite version.  All other
  parameters are generated relative to the location of this script
- This script now generates the XML'ized test cases directly to website\resources\scripts\testcases\.
  Likewise, it copies the test harness taken from test\harness\* to website\resources\scripts\global\
- Added tons of error checking and we now emit the current generation status to stdout
- Made the script more generic in the sense that it can take arbitrary directories under test\suite\*
  containing ES5 test chapters.  Previous behavior was it was looking for test chapters directly under website\
2010-11-16 07:46:42 -08:00