From 6c0e4f94e2156fd25dd2126395d0be756e0c1ca8 Mon Sep 17 00:00:00 2001 From: Nicolas Blanc Date: Thu, 18 Sep 2014 14:46:15 +0200 Subject: [PATCH] Add serverspec test, to verify that mysql listen on the good port when changed --- .kitchen.yml | 8 +++ .../port_changed/serverspec/install_spec.rb | 11 ++++ .../port_changed/serverspec/mysql_spec.rb | 66 +++++++++++++++++++ .../port_changed/serverspec/spec_helper.rb | 4 ++ 4 files changed, 89 insertions(+) create mode 100644 test/integration/port_changed/serverspec/install_spec.rb create mode 100644 test/integration/port_changed/serverspec/mysql_spec.rb create mode 100644 test/integration/port_changed/serverspec/spec_helper.rb diff --git a/.kitchen.yml b/.kitchen.yml index 75c9f9ab..2aecdd8a 100644 --- a/.kitchen.yml +++ b/.kitchen.yml @@ -19,3 +19,11 @@ suites: attributes: mariadb: use_default_repository: true + - name: port_changed + run_list: + - recipe[mariadb::default] + attributes: + mariadb: + use_default_repository: true + mysqld: + port: 3307 diff --git a/test/integration/port_changed/serverspec/install_spec.rb b/test/integration/port_changed/serverspec/install_spec.rb new file mode 100644 index 00000000..d52b7231 --- /dev/null +++ b/test/integration/port_changed/serverspec/install_spec.rb @@ -0,0 +1,11 @@ +require 'spec_helper' + +package_server_name = 'mariadb-server-10.0' +case backend.check_os[:family] +when 'Fedora', 'CentOS', 'RedHat' + package_server_name = 'MariaDB-server' +end + +describe package(package_server_name) do + it { should be_installed } +end diff --git a/test/integration/port_changed/serverspec/mysql_spec.rb b/test/integration/port_changed/serverspec/mysql_spec.rb new file mode 100644 index 00000000..d40d55be --- /dev/null +++ b/test/integration/port_changed/serverspec/mysql_spec.rb @@ -0,0 +1,66 @@ +require 'spec_helper' + +describe service('mysql') do + it { should be_enabled } + it { should be_running } +end + +describe port('3307') do + it { should be_listening } +end + +includedir = '/etc/mysql/conf.d' +mysql_config_file = '/etc/mysql/my.cnf' +case backend.check_os[:family] +when 'Fedora', 'CentOS', 'RedHat' + includedir = '/etc/my.cnf.d' + mysql_config_file = '/etc/my.cnf' +end + +describe "verify the tuning attributes set in #{mysql_config_file}" do + { + query_cache_size: '64M', + thread_cache_size: 128, + max_connections: 100, + wait_timeout: 600, + max_heap_table_size: '32M', + read_buffer_size: '2M', + read_rnd_buffer_size: '1M', + long_query_time: 10, + key_buffer_size: '128M', + max_allowed_packet: '16M', + sort_buffer_size: '4M', + myisam_sort_buffer_size: '512M' + }.each do |attribute, value| + describe command("grep -E \"^#{attribute}\\s+\" #{mysql_config_file}") do + it { should return_stdout(/#{value}/) } + end + end +end + +describe 'verify the tuning attributes set in ' + includedir + '/innodb.cnf' do + { + innodb_buffer_pool_size: '256M', + innodb_flush_method: 'O_DIRECT', + innodb_file_per_table: 1, + innodb_open_files: 400 + }.each do |attribute, value| + describe command("grep -E \"^#{attribute}\\s+\" " \ + "#{includedir}/innodb.cnf") do + it { should return_stdout(/#{value}/) } + end + end +end + +describe 'verify the tuning attributes set in ' \ + + includedir + '/replication.cnf' do + { + max_binlog_size: '100M', + expire_logs_days: 10 + }.each do |attribute, value| + describe command("grep -E \"^#{attribute}\\s+\" " \ + "#{includedir}/replication.cnf") do + it { should return_stdout(/#{value}/) } + end + end +end diff --git a/test/integration/port_changed/serverspec/spec_helper.rb b/test/integration/port_changed/serverspec/spec_helper.rb new file mode 100644 index 00000000..53f3055e --- /dev/null +++ b/test/integration/port_changed/serverspec/spec_helper.rb @@ -0,0 +1,4 @@ +require 'serverspec' + +include Serverspec::Helper::Exec +include Serverspec::Helper::DetectOS