diff --git a/CHANGELOG.md b/CHANGELOG.md index 823a7d333e7017334b3bb1817a1fc650fb254780..4dedd48931822c4c9b3c4a20e47410dbbc2b6acb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 `get_head_version`, `get_head_relative`, `get_version_history`. The versions are tracked internally by the `_iversion` field which is an integer and which should not be used outside of the backend. +* New makefile targets for testing with MariaDB instance from Docker image: call + `make test-docker` to temporarily start a Docker container with MariaDB which + will be used for the unit tests. ### Changed ### diff --git a/makefile b/makefile index 0c9ddabafadaacf14a122ea1c0df9463558219ac..ddac9eda131f804f694ac99af1f495637af3a0aa 100644 --- a/makefile +++ b/makefile @@ -51,3 +51,21 @@ drop-%: .PHONY: test test: ./utils/make_db test --fresh + +# Run tests with a database which is started in a Docker container +.PHONY: test-docker +test-docker: + @docker kill caosdb-mysqlserver-test || true + @docker container rm caosdb-mysqlserver-test || true + @docker run --name caosdb-mysqlserver-test -p "3306:3306" \ + -e MYSQL_ROOT_PASSWORD="pass-for-test" -d mariadb + @sleep 10 + MAINPATH=$(realpath tests/docker_env) utils/make_db test --fresh + @docker kill caosdb-mysqlserver-test + @docker container rm caosdb-mysqlserver-test + +# if automatic stopping failed +.PHONY: test-docker-stop +test-docker-stop: + docker kill caosdb-mysqlserver-test + docker container rm caosdb-mysqlserver-test diff --git a/tests/docker_env/.config b/tests/docker_env/.config new file mode 100644 index 0000000000000000000000000000000000000000..393b835526d3082442f24ae6f68355fa00a93b6f --- /dev/null +++ b/tests/docker_env/.config @@ -0,0 +1,11 @@ +# Config for tests with a Docker SQL server + +# The host of the MySQL server. +MYSQL_HOST=127.0.0.1 +# The port number of the MySQL server. +MYSQL_PORT=3306 +# The user for the installation. Note: This is not the user +# which will then be used by the CaosDB Server. +MYSQL_USER=root +MYSQL_USER_PASSWORD=pass-for-test +DATABASE_USER_HOST_LIST=127.0.0.1,%, \ No newline at end of file diff --git a/tests/docker_env/config.defaults b/tests/docker_env/config.defaults new file mode 120000 index 0000000000000000000000000000000000000000..149ebfcfa2af9f924d46a202ad4d5af6af0c9834 --- /dev/null +++ b/tests/docker_env/config.defaults @@ -0,0 +1 @@ +../../config.defaults \ No newline at end of file