bw_verifier 0.3.1

The application which verifies and benchmarks KhulnaSoft Framework Benchmark test implementations.
# BWVerifier


[![Build Status](https://github.com/KhulnaSoft/BWVerifier/workflows/build/badge.svg?branch=master&event=push)](https://github.com/KhulnaSoft/BWVerifier/actions?query=workflow%3Abuild+branch%3Amaster)

The application that verifies the response from an application running in the
[KhulnaSoft Framework Benchmarks](https://github.com/KhulnaSoft/BenchWeb).

The goal of this application is to live in isolation from 
[test implementations](https://github.com/KhulnaSoft/BenchWeb) and 
even the [BWPlugins](https://github.com/KhulnaSoft/BWPlugins). This 
application contains a Dockerfile which is how the Docker Image is created and 
eventually published to Dockerhub.

The BWPlugins uses that published Docker image to verify test implementations
in the BenchWeb project.

## Getting Started


These instructions will get you a copy of the project up and running on your 
local machine for development and testing purposes.

### Prerequisites


* [Rust]https://rustup.rs/
* [Docker]https://docs.docker.com/engine/install/* or [Docker4Windows]https://docs.docker.com/docker-for-windows/install/*
* [KhulnaSoft Frameworks]https://github.com/KhulnaSoft/BenchWeb*
* [BWPlugins]https://github.com/KhulnaSoft/BWPlugins*

\* Not required for development or testing; only full-suite testing and deploying.

#### Windows Only


* [Expose daemon on `tcp://localhost:2375`]https://docs.docker.com/docker-for-windows/#general*

\* Not required for development or testing; only full-suite testing and deploying.

### Running the tests


```
$ cargo test
```

### Building


```
$ cargo build --release
```

### Installing


```
$ docker build -t khulnasoft/bw.verifier .
```

## Running


To run any verification, a test implementation must be running from the 
BWPlugins in `debug` mode, which will attach the test implementation to the
Docker Network `BWNetwork`.

```
$ docker run -it --network=BWNetwork -e "MODE=[probably verify, but maybe benchmark]" -e "CONCURRENCY_LEVELS=16,32,64,128,256,512" -e "PIPELINE_CONCURRENCY_LEVELS=256,1024,4096,16384" -e "DATABASE=[database you want to verify; this env var *can* be ignored]" -e "PORT=[the exposed port]" -e "TEST_TYPE=[the test type you want to verify]" -e "ENDPOINT=[the relative URL]" bw.verifier
```

## License


This project is licensed under the BSD-3-Clause License - see the [LICENSE.md](LICENSE.md) file for details