/maxscale-system-test

System level tests for MaxScale

Primary LanguageC++GNU General Public License v2.0GPL-2.0

maxscale-system-test

System level tests for MaxScale

Basics

  • every test is separate executable file
  • backend for test:
    • 1 machine for Maxscale
    • = 4 machines for Master/Slave

    • = 4 machines for Galera cluster

  • environmental variables contains all information about backend: IPs, user names, passwords, paths to tools, etc
  • backed can be created with help of MDBCI tool
  • configuring of Master/Slave and Galera can be done with help of build scripts package

Manuals

How to run tests

Hints: How to write a test

Build and test environment setup (if you want to play with MDBCI and Vagrant on your local machine

Jenkins instructions

Environmental variables

variable meaning
node_N Number of machines for Master/Slave
node_XXX_network IP address of Master/Slave machine number XXX
node_XXX_private_ip private IP address of Master/Slave machine XXX for AWS machines (for everything else - same as node_XXX
node_XXX_port MariaDB port of Master/Slave machine XXX
node_XXX_whoami user name to access Master/Slave machine XXX via ssh
node_XXX_access_sudo 'sudo ' if node_access_user_XXX does not have root rights, empty string if node_access_user_XXX has root rights
node_XXX_keyfile full name of secret key to access Master/Slave machine XXX via ssh
node_XXX_start_db_command bash command to start DB server on Master/Slave machine XXX
node_XXX_stop_db_command bash command to stop DB server on Master/Slave machine XXX
node_user DB user name to access Master/Slave nodes (have to have all priveligies with GRANT option)
node_password password for node_user
galera_N Number of machines for Galera
galera_XXX_network IP address of Galera machine number XXX
galera_XXX_private private IP address of Galera machine XXX for AWS machines (for everything else - same as node_XXX
galera_XXX_port MariaDB port of Galera machine XXX
galera_XXX_whoami user name to access Galera machine XXX via ssh
galera_XXX_access 'sudo ' if node_access_user_XXX does not have root rights, empty string if node_access_user_XXX has root rights
galera_XXX_keyfile full name of secret key to access Galera machine XXX via ssh
galera_XXX_start_db_command bash command to start DB server on Galera machine XXX
galera_XXX_stop_db_command bash command to stop DB server on Galera machine XXX
galera_user DB user name to access Galera nodes (have to have all priveligies with GRANT option)
galera_password password for node_user
maxdir Maxscale home dir
maxdir_bin path to Maxscale binary files
maxscale_cnf full name of Maxscale configuration file (maxscale.cnf)
maxscale_log_dir directory for Maxscale log files
maxscale_IP IP address of Maxscale machine
maxscale_sshkey full name of secret key to access Maxscale machine via ssh
maxscale_access_user user name to access Maxscale machine via ssh
maxscale_access_sudo 'sudo ' if maxscale_access_user does not have root rights, empty string if maxscale_access_user has root rights
maxscale_user DB user to access via Maxscale
maxscale_password password for maxscale_user
maxscale_hostname hostname of Maxscale machine
sysbench_dir directory where Sysbanch is installed
ssl 'yes' if tests should try to use ssl to connect to Maxscale and to backends (obsolete, now should be 'yes' in all cases)
smoke if 'yes' all tests are executed in 'quick' mode (less iterations, skip heavy operations)
backend_ssl if 'yes' ssl config will be added to all servers definition in maxscale.cnf
use_snapshots if TRUE every test is trying to revert snapshot before running the test
take_snapshot_command revert_snapshot_command
revert_snapshot_command Command line to revert a snapshot of all VMs
no_nodes_check if yes backend checks are not executed (needed in case of RDS or similar backend)
no_backend_log_copy if yes logs from backend nodes are not copied (needed in case of RDS or similar backend)
no_maxscale_start Do not start Maxscale automatically