tests: updated for mariadb-10.1.12-0 changes

This commit is contained in:
Sameer Naik
2016-04-07 17:04:56 +05:30
parent 1c3f150987
commit 0634d4401e

View File

@@ -1,6 +1,5 @@
#!/usr/bin/env bats
MARIADB_DEFAULT_PASSWORD=password
MARIADB_DATABASE=test_database
MARIADB_USER=test_user
MARIADB_PASSWORD=test_password
@@ -9,7 +8,7 @@ MARIADB_PASSWORD=test_password
APP_NAME=mariadb
SLEEP_TIME=20
VOL_PREFIX=/bitnami/$APP_NAME
VOLUMES=$VOL_PREFIX/data
VOLUMES=$VOL_PREFIX
load tests/docker_helper
# Link to container and execute mysql client
@@ -33,76 +32,65 @@ cleanup_environment
@test "Port 3306 exposed and accepting external connections" {
container_create default -d
# ping mysqld server
run container_link_and_run_command default mysqladmin --no-defaults \
-h$APP_NAME -P3306 -uroot -p$MARIADB_DEFAULT_PASSWORD ping
-h$APP_NAME -P3306 -uroot ping
[[ "$output" =~ "mysqld is alive" ]]
}
@test "Root user can't access server without a password" {
@test "Root can login without a password" {
container_create default -d
# auth as root user and list all databases
run mysql_client default -uroot -e 'SHOW DATABASES\G;'
[[ "$output" =~ "Access denied for user" ]]
}
@test "Root user created with default password" {
container_create default -d
# auth as root user and list all databases
run mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e 'SHOW DATABASES\G;'
[[ "$output" =~ "Database: mysql" ]]
}
@test "Root user created with custom password" {
container_create default -d
container_create default -d \
-e MARIADB_PASSWORD=$MARIADB_PASSWORD
# auth as root with password and list all databases
run mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "SHOW DATABASES\G"
run mysql_client default -uroot -p$MARIADB_PASSWORD -e 'SHOW DATABASES\G;'
[[ "$output" =~ "Database: mysql" ]]
}
@test "Root user has access to admin database" {
container_create default -d
container_create default -d \
-e MARIADB_PASSWORD=$MARIADB_PASSWORD
run mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "SHOW DATABASES\G"
[[ "$output" =~ 'Database: mysql' ]]
run mysql_client default -uroot -p$MARIADB_PASSWORD mysql -e 'SHOW TABLES\G;'
[[ "$output" =~ "Tables_in_mysql: user" ]]
}
@test "Root user can create new databases" {
container_create default -d
@test "Root user can create databases" {
container_create default -d \
-e MARIADB_PASSWORD=$MARIADB_PASSWORD
mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "CREATE DATABASE \`$MARIADB_DATABASE\`;"
# check if database was created
run mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "SHOW DATABASES\G"
mysql_client default -uroot -p$MARIADB_PASSWORD -e "CREATE DATABASE \`$MARIADB_DATABASE\`;"
run mysql_client default -uroot -p$MARIADB_PASSWORD -e "SHOW DATABASES\G"
[[ "$output" =~ "Database: $MARIADB_DATABASE" ]]
}
@test "Root user can create new users" {
container_create default -d
@test "Root user can create users" {
container_create default -d \
-e MARIADB_PASSWORD=$MARIADB_PASSWORD
mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "CREATE USER '$MARIADB_USER'@'%' IDENTIFIED BY '$MARIADB_PASSWORD';"
mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "CREATE DATABASE \`$MARIADB_DATABASE\`;"
mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "GRANT ALL ON \`$MARIADB_DATABASE\`.* TO \`$MARIADB_USER\`@'%' ;"
mysql_client default -uroot -p$MARIADB_PASSWORD -e "CREATE USER '$MARIADB_USER'@'%' IDENTIFIED BY '$MARIADB_PASSWORD';"
mysql_client default -uroot -p$MARIADB_PASSWORD -e "CREATE DATABASE \`$MARIADB_DATABASE\`;"
mysql_client default -uroot -p$MARIADB_PASSWORD -e "GRANT ALL ON \`$MARIADB_DATABASE\`.* TO \`$MARIADB_USER\`@'%' ;"
# check if user was created
run mysql_client default -u$MARIADB_USER -p$MARIADB_PASSWORD -e "SHOW DATABASES\G"
[[ "$output" =~ "Database: $MARIADB_DATABASE" ]]
}
@test "Data is preserved on container restart" {
container_create default -d
container_create default -d \
-e MARIADB_PASSWORD=$MARIADB_PASSWORD
mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "CREATE USER '$MARIADB_USER'@'%' IDENTIFIED BY '$MARIADB_PASSWORD';"
mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "CREATE DATABASE \`$MARIADB_DATABASE\`;"
mysql_client default -uroot -p$MARIADB_DEFAULT_PASSWORD -e "GRANT ALL ON \`$MARIADB_DATABASE\`.* TO \`$MARIADB_USER\`@'%' ;"
mysql_client default -uroot -p$MARIADB_PASSWORD -e "CREATE USER '$MARIADB_USER'@'%' IDENTIFIED BY '$MARIADB_PASSWORD';"
mysql_client default -uroot -p$MARIADB_PASSWORD -e "CREATE DATABASE \`$MARIADB_DATABASE\`;"
mysql_client default -uroot -p$MARIADB_PASSWORD -e "GRANT ALL ON \`$MARIADB_DATABASE\`.* TO \`$MARIADB_USER\`@'%' ;"
# restart container
container_restart default
# auth as MARIADB_USER and check if MARIADB_DATABASE exists
run mysql_client default -u$MARIADB_USER -p$MARIADB_PASSWORD -e "SHOW DATABASES\G"
[[ "$output" =~ "Database: $MARIADB_DATABASE" ]]
}
@@ -110,31 +98,26 @@ cleanup_environment
@test "All the volumes exposed" {
container_create default -d
# get container introspection details and check if volumes are exposed
run container_inspect default --format {{.Mounts}}
[[ "$output" =~ "$VOL_PREFIX/data" ]]
[[ "$output" =~ "$VOL_PREFIX" ]]
}
@test "Data gets generated in data volume if bind mounted in the host" {
@test "Data gets generated in volume if bind mounted in the host" {
container_create_with_host_volumes default -d
# files expected in data volume (subset)
run container_exec default ls -la $VOL_PREFIX/data/
[[ "$output" =~ "mysql" ]]
[[ "$output" =~ "ibdata1" ]]
run container_exec default ls -la $VOL_PREFIX/conf/
[[ "$output" =~ "my.cnf" ]]
}
@test "If host mounted, password and settings are preserved after deletion" {
# known to fail
skip
container_create_with_host_volumes default -d \
-e MARIADB_PASSWORD=$MARIADB_PASSWORD
# stop and remove container
container_remove default
# recreate container without specifying any env parameters
container_create_with_host_volumes default -d
run mysql_client default -uroot -p$MARIADB_PASSWORD -e "SHOW DATABASES\G"