Document staging folder

Most of the information taken from the discussion in the issue.

Closes: #3649
This commit is contained in:
Philip Chimento 2022-10-28 17:10:10 -07:00 committed by Ms2ger
parent c4759ec1f2
commit 29f321a4e9
2 changed files with 29 additions and 2 deletions

View File

@ -246,6 +246,29 @@ This key identifies the section number from the portion of the ES6 standard that
Read the [Test262 Technical Rationale Report](https://github.com/tc39/test262/wiki/Test262-Technical-Rationale-Report,-October-2017#specification-reference-ids) for reasoning behind deprecation. Read the [Test262 Technical Rationale Report](https://github.com/tc39/test262/wiki/Test262-Technical-Rationale-Report,-October-2017#specification-reference-ids) for reasoning behind deprecation.
## Staging
There is a `test/staging/` folder, containing tests that are subject to fewer requirements, in order to get tests running across more than one implementation as early as possible, and promote interoperability of in-progress features.
Tests in staging are not required to be split up into one test per file, or to conform to any particular style as long as they are runnable.
In particular, mechanically-converted tests from implementations' private test suites are encouraged, as sharing them with other implementations promotes interoperability.
These are the requirements for adding a test to staging:
1. Just as with a test outside of staging, it must test an existing language feature, a Stage 3 TC39 proposal, or a normative pull request.
2. It is correct.
3. It is runnable using the usual test262 runner.
4. It is reviewed by someone with permission to land tests in the staging folder, not necessarily a test262 maintainer.
5. If it requires the implementation to support ECMA-402, it must be in `test/staging/intl402/` or a subfolder thereof.
Tests are intended to live temporarily in staging.
Once the feature they test has stabilized, contributors are encouraged to refine them to meet the additional requirements of the main test262 suite, and move them out of the staging folder.
Tests in staging do not count towards the test262 coverage requirement for a TC39 proposal to reach Stage 4.
Implementations may designate a group of people who have permission to review and land tests in the staging folder.
To add or remove people from this group, please open an issue.
## Test Environment ## Test Environment
Each test case is run in a fresh JavaScript environment; in a browser, this will be a new <iframe>; for a console runner, this will be a new process. Each test case is run in a fresh JavaScript environment; in a browser, this will be a new <iframe>; for a console runner, this will be a new process.

View File

@ -160,10 +160,14 @@ located at `test/language/import/nested/dep.js`.
Files bearing a name ending in `.json` are intended to be interpreted as JSON. Files bearing a name ending in `.json` are intended to be interpreted as JSON.
### Staging
Tests in the `test/staging/` folder are expected to be executed just like all the other tests, in order to promote interoperability as soon as possible.
### Implementations without ECMA-402 ### Implementations without ECMA-402
Tests in the `test/intl402/` folder assume that the implementation supports [ECMA-402, the ECMAScript Internationalization API Specification](https://tc39.github.io/ecma402/). Tests in the `test/intl402/` and `test/staging/intl402/` folders assume that the implementation supports [ECMA-402, the ECMAScript Internationalization API Specification](https://tc39.github.io/ecma402/).
When testing an implementation lacking the capabilities in ECMA-402, the tests in that folder should be skipped. When testing an implementation lacking the capabilities in ECMA-402, the tests in those folders should be skipped.
## Test Results ## Test Results