Commit Graph

450 Commits

Author SHA1 Message Date
Sam Mikes 4debe08707 browser runner: check negative regex
1. use negative regex (instead of ".") to check iframeError
2. make Test262Error.prototype.toString() always include
   the string Test262Error (no spaces) so it matches /Test262Error/
3. modify check for supportsWindowOnerror - require that
   first argument (message) to onerror() contains the error name
   by checking for /Error:/.

Change (3) above forces IE11 onto the !supportsWindowOnerror path.
Test262 tests are run inside an eval() on IE11, and errors are
caught and explicitly have toString() called.  Without this,
IE11 passes only the `message` property to onerror(), and regexes
that expect to match error name fail.

sth: revert to simple `onerror` checking

gs: refactor function `$DONE`

refactor logic tree
add support for async test failures

ed.js: crude support for error typing

S8.7.1_A2: cache result of delete

`delete` has a side-effect and its
return value depends on this; cache result of
delete so when reporting result, we are always
reporting the result that made us fail, not the
result of a new delete
[pedantic]

ed: explicitly pass cooked error to $DONE

gs: only let $DONE be called once
2014-08-13 12:24:12 +01:00
Brian Terlson a794e0eb54 Merge pull request #76 from anba/issue-61/wrong-test-assertions
Correct test assertion (Fixes issue#61)
2014-08-05 23:52:06 -07:00
Brian Terlson 7f5310b4d5 Merge pull request #77 from anba/issue-63/correct-array-fill-test
Correct Array.prototype.fill tests (Fixes #63)
2014-08-05 23:51:28 -07:00
Brian Terlson f04573e583 Merge pull request #79 from anba/issue-41/move-clz-to-math
Move tests to Math.clz32 (Fixes #41)
2014-08-05 23:50:05 -07:00
André Bargull f0ac90a5fd Move tests to Math.clz32 (Fixes #41)
Number.prototype.clz() was renamed to Math.clz32(). Also removed superfluous 'spec' entry in test descriptor.
2014-08-04 20:57:02 +02:00
André Bargull e256a76e9d Correct Array.prototype.fill tests (Fixes #63)
The expected results weren't correct.
2014-08-04 19:44:22 +02:00
André Bargull 28649e8772 Correct test assertion (Fixes issue#61)
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.
2014-08-04 19:10:41 +02:00
Brian Terlson 64756c252e Merge pull request #68 from smikes/remove-unused-harness
harness: remove unused code
2014-08-02 20:40:40 -07: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
Brian Terlson 479a6dd442 Merge pull request #66 from smikes/Math-isNaN
es6/Math: use Number.isNaN
2014-07-31 15:31:42 -07:00
Brian Terlson 2230f90e06 Merge pull request #59 from smikes/CONTRIBUTING-clarify
CONTRIBUTING: more notes on test writing
2014-07-31 15:30:16 -07:00
smikes 240635c99a CONTRIBUTING.md: minor fixes
Minor fixes: typos, formatting, verb tense&agreement
Add example of short-list `includes: []` and long-list `includes: \n - \n -`
2014-07-31 14:41:08 -06:00
Sam Mikes bd80bf7dfc es6/Math: use Number.isNaN
use number.isNaN to test for NaN
pointed out by @anba in #60
2014-07-31 13:53:12 -06:00
Sam Mikes 23ef85c9a7 CONTRIBUTING: more notes on test writing
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
2014-07-31 20:17:15 +01:00
Brian Terlson 413e16e355 Merge pull request #51 from bterlson/normalize-format
Normalize testcase format
2014-07-30 15:50:14 -07: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
Brian Terlson 0defa37385 Add path attribute. 2014-07-30 15:39:01 -07:00
Brian Terlson d4354d14d5 Normalize testcase format
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.
2014-07-30 15:38:26 -07:00
Brian Terlson 07ccd199d9 Merge pull request #65 from mathiasbynens/patch-1
Delete `Number.toInteger` test
2014-07-30 14:24:35 -07:00
Mathias Bynens a824f44727 Delete `Number.toInteger` test
`Number.toInteger` was removed from the ES6 draft. Fixes #62.
2014-07-30 23:17:00 +02:00
Brian Terlson 509472bb74 Fix suspect formatting in S15.2.3.1_A3 2014-07-24 15:29:21 -07:00
Brian Terlson fcba15ff11 Merge pull request #53 from smikes/CONTRIBUTING-async-printhandles
CONTRIBUTING: add notes on async
2014-07-23 17:21:07 -07:00
smikes 99706a2786 CONTRIBUTING: add notes on async
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
2014-07-23 21:55:16 +01:00
Brian Terlson dd821f2700 Merge pull request #52 from smikes/syntax-error-isAsyncTest-sth
sth: correct syntax error in new fn isAsyncTest
2014-07-22 17:33:02 -07:00
smikes a8c49d8b47 sth: correct syntax error in new fn isAsyncTest 2014-07-22 10:41:32 -06:00
Brian Terlson 66aab6025d Fix comment formatting for S22.1.2.3_T1.js 2014-07-21 15:47:50 -07:00
Brian Terlson 66366d6961 Merge pull request #49 from smikes/faster-python-runner
test262.py: only include helper scripts when needed
2014-07-21 14:32:03 -07:00
Brian Terlson 1cbf603a2d Merge pull request #50 from smikes/additional-CONTRIBUTING-notes
CONTRIBUTING: document test262.py, async tests
2014-07-21 13:16:29 -07:00
Sam Mikes d180b84e01 CONTRIBUTING: document test262.py, async tests
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
2014-07-21 10:19:06 -06: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 e09d62bba3 Merge pull request #17 from hankyates/array-fill-tests
* hankyates/array-fill-tests:
  Adding Array.prototype#fill tests
2014-07-18 15:20:03 -07:00
Hank Yates cae283b563 Adding Array.prototype#fill tests 2014-07-18 15:17:33 -07: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
Brian Terlson 821e06e3f1 Merge pull request #44 from smikes/fix-packager
packager: make packager runnable
2014-07-18 11:21:52 -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
Brian Terlson 0efbedeaa1 Merge pull request #20 from mgmeyers/Array.prototype.find
* mgmeyers/Array.prototype.find:
  Adds tests for Array.prototype.find
2014-07-17 11:28:15 -07:00
Matthew Meyers c451a33299 Adds tests for Array.prototype.find 2014-07-17 11:24:50 -07:00
Brian Terlson 880a7e9316 Merge pull request #12 from ryanmurakami/es6Tests
* es6Tests:
  first batch of ES6 tests
2014-07-16 17:34:23 -07:00
ryanmurakami eb0ff48938 first batch of ES6 tests 2014-07-16 17:31:37 -07:00
Brian Terlson 382b844b23 Merge pull request #11 from hankyates/array-of-tests
* hankyates/array-of-tests:
  Adding Array#of tests
2014-07-16 17:15:19 -07:00
Hank Yates 9244107ebf Adding Array#of tests 2014-07-16 17:03:52 -07:00
Brian Terlson e30c0b3183 Remove external folder 2014-07-16 13:59:52 -07:00
Brian Terlson 5278df4721 Merge pull request #5 from hankyates/array-from-tests
* array-from-tests:
  Adding test for Array.from
2014-07-16 13:51:19 -07:00
Hank Yates 7edb891fff Adding test for Array.from 2014-07-16 13:34:37 -07:00
Brian Terlson 262ce4d0d8 Merge pull request #9 from tdahlstrom/bug_596
* tdahlstrom/bug_596:
  Bug 596 - Coverage: 15.4.4.11 - identical elements and array holes
2014-07-16 12:58:54 -07:00
Thomas Dahlstrom 2f5ec53aad Bug 596 - Coverage: 15.4.4.11 - identical elements and array holes 2014-07-16 12:56:46 -07:00
Brian Terlson 50696f69f6 Merge pull request #34 from niksurya/master
Adding Support for Async Tests
2014-07-16 12:10:56 -07:00
NikSurya 9aa6b917fa Adding Support for Async Tests 2014-07-15 13:47:59 -07:00