mirror of
https://github.com/bitnami/containers.git
synced 2026-03-20 14:58:20 +08:00
tests: updated for mariadb-10.1.12-0 changes
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user