Source code

Revision control

Copy as Markdown

Other Tools

# Building
Building the project is not usually needed for local development.
However, for exports to WPT, NodeJS, [or deployment](https://gpuweb.github.io/cts/),
files can be pre-generated.
## Build types
The project can be built several different ways, each with a different output directory:
### 0. on-the-fly builds (no output directory)
Use `npm run start` to launch a server that live-compiles everything as needed.
Use `tools/run_node` and other tools to run under `ts-node` which compiles at runtime.
### 1. `out` directory
**Built with**: `npm run standalone`
**Serve locally with**: `npx grunt serve`
**Used for**: Static deployment of the CTS, primarily for [gpuweb.github.io/cts](https://gpuweb.github.io/cts/).
### 2. `out-wpt` directory
**Built with**: `npm run wpt`
**Used for**: Deploying into [Web Platform Tests](https://web-platform-tests.org/). See [below](#export-to-wpt) for more information.
Contains:
- An adapter for running WebGPU CTS tests under WPT
- A copy of the needed files from `out/`
- A copy of any `.html` test cases from `src/`
### 3. `out-node` directory
**Built with**: `npm run node`
**Used for**: Running NodeJS tools, if you want to specifically avoid the live-compilation overhead of the `tools/` versions, or are running on a deployment which no longer has access to `ts-node` (which is a build-time dependency). For example:
- `node out-node/common/runtime/cmdline.js` ([source](../src/common/runtime/cmdline.ts)) - A command line interface test runner
- `node out-node/common/runtime/server.js` ([source](../src/common/runtime/server.ts)) - An HTTP server for executing CTS tests with a REST interface
## Testing
To build and run all pre-submit checks (including type and lint checks and
unittests), use:
```sh
npm test
```
For checks only:
```sh
npm run check
```
## Export to WPT
Run `npm run wpt`.
Copy (or symlink) the `out-wpt/` directory as the `webgpu/` directory in your
WPT checkout or your browser's "internal" WPT test directory.