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
CONTRIBUTING.md
- document `timeout` tag
- reorder tags in frontmatter doc
- minor cleanups
- minor fixes
- add style note
- reformat flags
- remove discussion of obsolete $INCLUDE
- incorporate line notes from @domenic
- integrate additional comments
- add links back, move arg notes down
- Raise outline level by one
README.md
- link to CONTRIBUTING
Test of spec language from 15.4.4.4,
5.b.iii.3.b states 'Call the [[DefineOwnProeprty]] internal method of A'
which means that the result of Array.prototype.concat
should return `true` from `hasOwnProperty` for every property
created by `concat`, up to `length`
Set length to 3.
a[0] is set to 0 on a
a[1] is unset
a[2] is set to 2 via a prototype of a
add assertions for values of b[0], b[1], b[2]
add assertions for b.hasOwnProperty('2')
Check with Array.prototype and Object.prototype, separate tests
fix typo in assertion message
test was correct, but assertion message was incorrect
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
Changed Number.isNaN_Boolean.js, String.prototype.endsWith_Fail.js and String.prototype.endsWith_Fail_2.js to test for the correct result. Also removed implicit coercion in a couple of other test files.
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
Add section on test environment
Add section on custom helpers
describe YAML frontmatter
Fix minor formatting errors
document $INCLUDE as obsolete
Change documentation of negative error
Move test environment and custom helpers down
indent copyright and frontmatter sections
better description of the async calls between a promise
and the functions in its `.then`
Correct Early Error example: don't throw a string
CONSOLE-RUNNER: split runner doc into new file
add troubleshooting section
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)
This commit normalizes the test case format used across test262. It applies the following transformations:
* Convert to YAML for frontmatter
* Remove of trailing whitespace
* Replace /r/n with /n except in chapters 6 and 7.
* Copyright header always uses // comments
* new includes attribute replaces $INCLUDE
* No implicit assumptions about test environment other than $ERROR. Everything else appears in the include array. This includes "runTestCase" which is now included in a substantial number of tests.
add a table showing which print handle to use when
running async tests through test262.py runner
@anba contributed information about async tests in
SpiderMonkey and JavaScriptCore
add a section on requirements for using console test runner test262.py
add a section on asynchronous tests
add subsection to authoring guidelines with suggestion for test names
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
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 * / => */