You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mingun 669f782a5f Partial fix #194 - nonsenses error messages with semantic predicates (#547)
* Remove stack manipulations from FAIL opcode and rename FAIL to EXPECT
* Always save the expected values regardless of the match result of expression
* Remove unnecessary check for match result in the `named` node
* Collect and process expectations from predicates
7 years ago
..
benchmark Ensure usage of 'lib/peg.d.ts' 7 years ago
node_modules Ensure usage of 'lib/peg.d.ts' 7 years ago
server Update code format and style 7 years ago
spec Partial fix #194 - nonsenses error messages with semantic predicates (#547) 7 years ago
.eslintrc.js Update code format and style 7 years ago
README.md Ensure usage of 'lib/peg.d.ts' 7 years ago
impact Fix compatibility for older bins 7 years ago

README.md

PEG.js Test Suites

This directory contains various test suites and scripts to ensure PEG.js works correctly.

  • Spec Suite: Runs various test's that ensure PEG.js and it's generated parsers are working as intended. All tests should always pass on all supported platforms.
  • Benchmark Suite: It measures speed of the parsers generated by PEG.js on various inputs. Its main goal is to provide data for code generator optimizations.
  • Impact Script: Measures impact of a Git commit (or multiple commits) on generated parsers speed and size.

Note: The package pegjs-dev, used by the benchmark and spec modules within this directory, points to 'test/node_modules/pegjs-dev.js', which is an alias module for 'lib/peg.js'

Download and Install

To run the PEG.js test suites you most download the and install the module via the git repository:

  1. Make sure you have Node.js and Git installed.

  2. Download via Git and change the currently working directory:

    $ git clone https://github.com/pegjs/pegjs.git
    $ cd pegjs
    
  3. Install all dependencies, including the development dependencies:

    $ npm install
    
  4. Install Gulp globally:

    $ npm install gulp -g
    
  5. Processed...

Running in Node.js

The commands below need to be executed via the console from the PEG.js root directory (one level up from this one), after which they will output their results (if any).

  • Execute source code linting:

    $ gulp lint
    
  • Execute the spec test suite:

    $ gulp test
    
  • Execute the benchmark suite:

    $ gulp benchmark
    
  • Execute the impact suite:

    $ node test/impact
    

Running in the Browser

  1. Serve the test suites using a web server:

    $ node test/server/run
    
  2. Point your browser to the test suite