> For the complete documentation index, see [llms.txt](https://tobanteaudio.gitbook.io/juce-cookbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tobanteaudio.gitbook.io/juce-cookbook/testing/pluginval.md).

# pluginval

[github.com/Tracktion/pluginval](https://github.com/Tracktion/pluginval)

* [Checks](/juce-cookbook/testing/pluginval.md#checks)
* [Install](/juce-cookbook/testing/pluginval.md#install)
* [GUI](/juce-cookbook/testing/pluginval.md#gui)
* [Command Line](/juce-cookbook/testing/pluginval.md#command-line)

The `pluginval` team describes there software as:

```
pluginval is a cross-platform plugin validator and tester application.
It is designed to be used by both plugin and host developers
to ensure stability and compatibility between plugins and hosts.
```

You can run `pluginval` both in command-line or GUI mode. So it's very easy to integrate into your `CI` pipeline.

## Checks

* Randomly automate UI/parameters
* Recall parameters
* Call audio callback with different sample rates & buffer sizes
* Checking for memory allocations on audio thread (macOS AU only)
* And more...

## Install

The simplest way to get pluginval is to download it directly from GitHub. See the [releases page](https://github.com/Tracktion/pluginval/releases).

### macOS

```bash
curl -L "https://github.com/Tracktion/pluginval/releases/download/latest_release/pluginval_macOS.zip" -o pluginval.zip
unzip pluginval
cp -r pluginval.app ~/Applications
```

### Windows

TODO

### Linux

```bash
curl -L "https://github.com/Tracktion/pluginval/releases/download/latest_release/pluginval_linux.zip" -o pluginval.zip
unzip pluginval
cp pluginval /usr/local/bin
```

## GUI

Should be the same an all platforms:

* Launch `pluginval`
* Scan for plug-ins
* Set strictness
* Select plug-in to test
* Test

## Command Line

### macOS

```bash
~/Applications/pluginval.app/Contents/MacOS/pluginval --validate-in-process --strictness-level 10 --validate "path/to/your.vst3" || exit 1
```

### Windows

Somehow `pluginval` doesn't like `powershell`, so `cmd` should be used or run it in GUI mode.

### Linux

```bash
pluginval --validate-in-process --strictness-level 10 --validate "path/to/your.vst3" || exit 1
```
