The Wayback Machine - https://web.archive.org/web/20201007021459/https://github.com/arangodb/resilience-tests
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

ArangoDB resilience tests

This repo contains a testsuite to test some of ArangoDBs resilience capabilities.

Under the hood it is just a more or less standard mocha testsuite plus some stuff to keep arangodb running.

Requirements

You need a pretty recent v7.6+ nodejs and yarn or npm and either a compiled ArangoDB source directory or a docker container you want to test

Installation

yarn will install all required libraries. npm install should work too.

Executing

Simply execute

yarn test-jenkins or npm run test-jenkins

This will bail out like this:

Error: Must specify RESILIENCE_ARANGO_BASEPATH (source root dir including a "build" folder containing compiled binaries or RESILIENCE_DOCKER_IMAGE to test a docker container

Specify the path to your arangodb source directory containing a build directory where you created an arangodb build.

Then reexecute like this (replace path of course):

RESILIENCE_ARANGO_BASEPATH=../arangodb yarn test-jenkins

Options

via environment variables

RESILIENCE_ARANGO_BASEPATH

Path to your arangodb source directory containing a build directory with arango executables. Example: "../arangodb"

RESILIENCE_DOCKER_IMAGE

Docker image to test. Example: "arangdb/arangodb"

LOG_IMMEDIATE

Set to `1` for debug log output from the tests and the instance manager.

ARANGO_STORAGE_ENGINE

One of rocksdb or mmfiles (default: mmfiles)

MIN_PORT

From where the tests should start searching for a free port. defaults to 4000

MAX_PORT

MAX_PORT. defaults to 65535

PORT_OFFSET

Port offset. For every request this will be added to the startPort to keep the ports somewhat predicatable. Default 50
The first request would reveal for example 4000. The second instance would then be assigned port 4050, then 4100 and so forth.

RESILIENCE_ARANGO_WRAPPER

Wrapper command for arangod, e.g. rr.

LOG_AGENCY,

LOG_COMMUNICATION,

LOG_REPLICATION,

LOG_REQUESTS

Set log level for agency, communication, replication or requests,
values are e.g. `debug` or `trace`.
Will be passed to arangod appended to `--log.level=agency=`,
`--log.level=communication=` etc..

ARANGO_INSTANCES_DIR

Directory where the instance manager creates its instances. Useful for
collecting artifacts after failed tests. May be relative to the current
working directory. Will be created if non existent, but not recursively.
If unset, the systems tmp directory will be used.

AGENCY_COMPACTION_STEP

Will be passed via `--agency.compaction-step-size=` to arangod. Defaults
to 200.

AGENCY_COMPACTION_KEEP

Will be passed via `--agency.compaction-keep-size=` to arangod. Defaults
to 100.

ARANGO_EXTRA_ARGS

Extra arguments that will be passed to arangod. Will be split on spaces
and then passed as separate arguments.

Mocha options

The tests itself are run through mocha so you can append mocha commands to the package.json script as you would expect:

Some Examples:

RESILIENCE_ARANGO_BASEPATH=../arangodb yarn test -- --grep "Move shards"
RESILIENCE_ARANGO_BASEPATH=../arangodb ARANGO_STORAGE_ENGINE=rocksdb yarn test -- test/cluster/shard-move.js

About

ArangoDB resilience tests

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.