Skip to content
/ mint Public
forked from minio/mint

Correctness tests for Minio server.

Notifications You must be signed in to change notification settings

ebozduman/mint

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mint Slack Docker Pulls

Collection of tests to detect overall correctness of Minio server.

Goals

  • To run tests in self contained manner, with various tools pre-installed
  • To assess the quality of the Minio server product

Roadmap

  • Add test cases under categories like correctness, stress/load, etc.
  • Add specific tests for distributed mode, shared-backend mode, gateway mode
  • Add other SDK/Client side tools to increase the test case variety
  • Add bench-marking tools

How to Run

The project will be published in Docker hub after further testing. Till then the docker image has to be built locally and run.

Build

$ git clone https://github.com/minio/mint.git
$ cd mint
$ docker build -t minio/mint .

Options

Env variables

Set environment variables to pass test target server details to the docker container. Supported envs:

  • SERVER_ENDPOINT- <IP/URL>: of the Minio server on which the tests has to be run
  • ACCESS_KEY - Access Key of the server
  • SECRET_KEY - Secret Key of the server
  • ENABLE_HTTPS - Optional value when set to 1 sends HTTPS requests on SSL enabled deployment
  • DATA_DIR - Optional value when set uses data from this directory for SDK tests

Note: With no env variables provided the tests are run on play.minio.io by default

Run

To run Mint image, use the docker run command. For example, to run Mint with Minio Play server as test target use the below command

$ docker run -e SERVER_ENDPOINT=play.minio.io:9000 -e ACCESS_KEY=Q3AM3UQ867SPQQA43P2F -e SECRET_KEY=zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG -e ENABLE_HTTPS=1 minio/mint 

After the tests are run, output is stored in /mint/log directory inside the container. You can access these logs via docker cp command. For example to store logs to /tmp/logs directory on your host, run

docker cp minio/mint:/mint/log /tmp/logs

Then navigate to /tmp/logs directory to access the test logs.

Current tests

Following SDKs/CLI tools are available:

  • aws-cli
  • mc
  • minio-go
  • minio-java
  • minio-js
  • minio-py

Adding tests

To add tests to an existing SDK folder:

  • Navigate to specific SDK test file in the path apps/<sdk_name>/.
  • Add test cases and update main method if applicable.
  • Refer test data section for using existing test data.

To add new SDK/CLI to Mint:

  • Create new directory in apps/ directory with corresponding tool name
  • Add a run.sh script. This script should set up the SDK/CLI tool and then execute the tests
  • Add an entry in config.yaml with name of folder, e.g test_folder

Test data

All test data used by SDK tests will reside in /mint/data/ directory on the container. To add additional test files, edit build/data/install.sh script

File name Size
datafile-1-b 1B
datafile-10-kB 10KB
datafile-33-kB 33KB
datafile-100-kB 100KB
datafile-1-MB 1MB
datafile-1.03-MB 1.03MB
datafile-5-MB 5MB
datafile-6-MB 6MB
datafile-11-MB 11MB
datafile-65-MB 65MB

About

Correctness tests for Minio server.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 34.9%
  • Java 30.4%
  • Shell 14.0%
  • JavaScript 13.5%
  • Python 7.2%