🚀 DAY 5 OF LAUNCH WEEK: Introducing Socket Firewall Enterprise.Learn more →
Socket
Book a DemoInstallSign in
Socket

test262-integrator

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

test262-integrator

Soothes attaching Test262 on different projects

latest
Source
npmnpm
Version
1.2.0
Version published
Maintainers
1
Created
Source

Test262-Integrator

Integrates any project the test262-stream API with any ES host execution applying filters from a JS object.

Install

npm install --save-dev test262-integrator

Usage

const Integrator = require('test262-integrator');

Integrator({
  testDir, // String: the path where Test262 is located.
  execute, // (Async/Sync) Function: this function is called for 
           // every non-skipped test file, the return should be a 
           // result object.
  filters, // (Optional) Object: a list of filters, see 'test/filters.yml' 
           //  for an example.
  paths: ['test/built-ins/Array/from'] // (Optional) Array of Strings: 
                                       // specifies exclusive paths to
                                       // run the test.
  verbose: // (Optional) Boolean: toggles a verbose mode for files 
           // execution (experimental).
}).then(results => {
  // `results` is an Array of objects. Each object contains all 
  // relevant information for a given test produced by the test stream, with
  // an additional `result` property which contains the results of
  // the execution. If a test was skipped via filtering parameters, the
  // value of result property is { skip: true }.

  // Anything returned from the `execute` method will be stored in the 
  // result property.
}, err => {
  // Any execution error will be available here
});

// The execute function signature:
function execute(test) {
  // `test` has the same properties used in test262-stream*

  // This function can return a promise for async operations.
}

** test262-stream

Filters

The filters object can include any properties known to Test262, as well as a special paths property whose value is an array of string paths relative to test262. All test file paths that match entries in paths will be skipped.

All tests that are matched by the filter object will have a property results whose value is { skip: true }.

Test262-Integrator recommends using a YAML file to store filters, as it's the most readable and maintainable format.

Examples

(See test/filters.yml for an extensive example)

YAML Filter File

features:
  - tail-call-optimization
  - generators
  - default-parameters

JSON Filter File

{
  "features": [
    "tail-call-optimization",
    "generators",
    "default-parameters"
  ]
}

JavaScript Object Filter

const filters = {
  features: [
    'tail-call-optimization',
    'generators',
    'default-parameters'
  ]
};

More Extensive Example

const filters = {
  // Filters by metadata:
  features: [
    'tail-call-optimization',
    'SharedArrayBuffer',
  ],
  esid: ['pending'],
  es5id: ['15.1.2.2_A8', '15.1.2.3_A6'],
  es6id: ['22.1.3.1_3'],
  flags: ['module', 'async'],

  // Filters by path location:
  paths: [
    // filters will apply to any match, as long as the path contains the string from any index.
    // In this example, any file path containing `harness` will be skipped.
    'harness',
    'intl402',
    'built-ins/Function/prototype/toString/',
    'built-ins/SharedArrayBuffer/',
    'built-ins/Atomics/',
    'annexB/',
  ],

  // Filter negative tests by any matching phases and type
  negative: {
    type: ['SyntaxError'],
    phase: [
      'early',
      'runtime',
    ],
  },
};

FAQs

Package last updated on 02 Nov 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts