75 lines
2.3 KiB
Markdown
75 lines
2.3 KiB
Markdown
# PEG.js Test Suites
|
|
|
|
This directory contains various test suites and scripts to ensure PEG.js works correctly.
|
|
|
|
* [Spec Suite](spec): 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](benchmark): 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](impact): 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](node_modules/pegjs-dev.js)', which is an alias module for '[lib/peg.js](../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:
|
|
|
|
```console
|
|
$ git clone https://github.com/pegjs/pegjs.git
|
|
$ cd pegjs
|
|
```
|
|
|
|
3. Install all dependencies, including the development dependencies:
|
|
|
|
```console
|
|
$ npm install
|
|
```
|
|
|
|
4. Install Gulp globally:
|
|
|
|
```console
|
|
$ npm install gulp -g
|
|
```
|
|
|
|
5. Processed...
|
|
|
|
* [Running in Node.js](#running-in-nodejs)
|
|
* [Running in the Browser](#running-in-the-browser)
|
|
|
|
## 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:
|
|
|
|
```console
|
|
$ gulp lint
|
|
```
|
|
|
|
* Execute the spec test suite:
|
|
|
|
```console
|
|
$ gulp test
|
|
```
|
|
|
|
* Execute the benchmark suite:
|
|
|
|
```console
|
|
$ gulp benchmark
|
|
```
|
|
|
|
* Execute the impact suite:
|
|
|
|
```console
|
|
$ node test/impact
|
|
```
|
|
|
|
## Running in the Browser
|
|
|
|
* [Benchmark Suite](https://pegjs.org/benchmark)
|
|
* [Spec Suite](https://pegjs.org/spec)
|
|
|
|
You also have the option of running the website locally by running `node server.js` or `npm start` from the root of this repository. After that just go to the development page and click the link `Benchmark Suite` or `Spec Suite`.
|