github.com/drud/ddev@v1.21.5-alpha1.0.20230226034409-94fcc4b94453/containers/ddev-dbserver/test/basic_database.bats (about) 1 #!/usr/bin/env bats 2 3 # Run these tests from the repo root directory, for example 4 # ./test/bats tests 5 6 load functions.sh 7 8 function setup { 9 basic_setup 10 11 echo "# Starting container using: docker run --rm -u "$MOUNTUID:$MOUNTGID" -v $VOLUME:/var/lib/mysql --name=$CONTAINER_NAME -p $HOSTPORT:3306 -d $IMAGE" >&3 12 docker run -u "$MOUNTUID:$MOUNTGID" -v $VOLUME:/var/lib/mysql:nocopy --name=$CONTAINER_NAME -p $HOSTPORT:3306 -d $IMAGE 13 containercheck 14 } 15 16 17 @test "test user root and db access for ${DB_TYPE} ${DB_VERSION}" { 18 mysql --user=root --password=root --database=mysql --host=127.0.0.1 --port=$HOSTPORT -e "SELECT 1;" 19 mysql -udb -pdb --database=db --host=127.0.0.1 --port=$HOSTPORT -e "SHOW TABLES;" 20 } 21 22 @test "make sure trigger capability works correctly on ${DB_TYPE} ${DB_VERSION}" { 23 mysql -udb -pdb --database=db --host=127.0.0.1 --port=$HOSTPORT -e 'CREATE TABLE account (acct_num INT, amount DECIMAL(10,2)); CREATE TRIGGER ins_sum BEFORE INSERT ON account 24 FOR EACH ROW SET @sum = @sum + NEW.amount;' 25 } 26 27 @test "check correct mysql/mariadb version for ${DB_TYPE} ${DB_VERSION}" { 28 reported_version=$(mysql --user=root --password=root --skip-column-names --host=127.0.0.1 --port=$HOSTPORT -e "SHOW VARIABLES like \"version\";" | awk '{sub( /\.[0-9]+(-.*)?$/, "", $2); print $2 }') 29 echo "# Reported mysql/mariadb version=$reported_version and DB_VERSION=${DB_VERSION}" 30 [ "${reported_version}" = ${DB_VERSION} ] 31 } 32 33 @test "look for utf8mb4_general_ci configured on ${DB_TYPE} ${DB_VERSION}" { 34 mysql --user=root --password=root --skip-column-names --host=127.0.0.1 --port=$HOSTPORT -e "SHOW GLOBAL VARIABLES like \"collation_server\";" | grep "utf8mb4_general_ci" 35 } 36