package
0.17.0
Repository: https://github.com/protonmail/gluon.git
Documentation: pkg.go.dev

# README

ImapTest - Profiling & Compliance

This "benchmark" uses Dovecot's ImapTest tool to profile the performance of Gluon. The information present here can also be used to verify the compliance of Gluon with the IMAP protocol.

Build gluon demo in project root folder:

go build -o gluon-demo ./demo/demo.go

Installation of ImapTest

Follow the instructions outlined in the tools' installation page to build the binary. The test mailbox is already present in this folder.

Simple ImapTest run

Assuming gluon demo is running, the bare minimum required for running ImapTest is a username and a password:

imaptest host=127.0.0.1 port=1143 [email protected] pass=password1

Advance testing

The multiple scenario coverage can be run by

go test

The test cases are defined in benchmark.yml. Each case defines a number of clients and users to be used by ImapTest. One case can have multiple settings defined by name. The options are specified in settings section. The settings reflects ImapTest options as described in here. The ImapTest states are described in here.

We don't use for now the ImapTest scriptable scenarios but it is possible by defining the new test settings in file ./benchmark.yml and creating separate definition file like example here

Note about this tool

The execution of this tool is non-deterministic, this means it can't be used to compare profile runs of two different versions.

It should be only be used to profile and/or stress the codebase in an isolation.