blob: 92be0cd784dea1a70a6d60b731859a41a5f80e4b [file] [log] [blame] [view]
# Dockerised test environment
## Prerequisites
* envsubst:
```bash
brew install gettext
brew link --force gettext
```
* wget:
```bash
brew install wget
```
## Instructions
The docker compose provided in this directory is meant to orchestrate the spin up
of a dockerised test environment with the latest stable Gerrit version.
Run it with:
```bash
make init_all
```
The spin up will take a while, check what is going on with:
```bash
docker-compose logs -f
```
*NOTE:* If you want to run any ssh command as admin you can use the ssh keys into the *gerrit-{1,2}/ssh* directory.
If you need to restart one of the Gerrit instances to simulate, for example,
an upgrade, you can do it this way:
```bash
make restart_gerrit_1 # (or make restart_gerrit_2)
```
## How to test
Consider the
[instructions](https://gerrit-review.googlesource.com/Documentation/dev-e2e-tests.html)
on how to use Gerrit core's Gatling framework, to run non-core test scenarios
such as this plugin one below:
```bash
sbt "gatling:testOnly com.googlesource.gerrit.plugins.multisite.scenarios.CloneUsingMultiGerrit1"
```
This is a scenario that can serve as an example for how to start testing a
multi-site Gerrit system, here such as this dockerized one. That scenario tries
to clone a project created on this dockerized multi Gerrit, from gerrit-1 (port
8081). The scenario therefore expects Gerrit multi-site to have properly
synchronized the new project from the up node gerrit-2 to gerrit-1. That
project gets deleted after by the (so aggregate) scenario.
Scenario scala source files and their companion json resource ones are stored
under the usual src/test directories. That structure follows the scala package
one from the scenario classes. The core framework expects such a directory
structure for both the scala and resources (json data) files.