sqlx/tests
Thibs c4130d45e3 Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850)
* use native-tls API

* Add client cert and key to MySQL connector

* Add client ssl tests for PostgreSQL

* Add client ssl tests for MariaDB and MySQL

* Adapt GA tests

* Fix RUSTFLAGS to run all tests

* Remove containers to free the DB port before running SSL auth tests

* Fix CI bad naming

* Use docker-compose down to remove also the network

* Fix main rebase

* Stop trying to stop service using docker-compose, simply use docker cmd

* Fix RUSTFLAGS for Postgres

* Name the Docker images for MariaDB and MySQL so we can stop them using their name

* Add the exception for mysql 5.7 not supporting compatible TLS version with RusTLS

* Rebase fixes

* Set correctly tls struct (fix merge)

* Handle Elliptic Curve variant for private key

* Fix tests suite

* Fix features in CI

* Add tests for Postgres 15 + rebase

* Python tests: fix exception for MySQL 5.7 + remove unneeded for loops

* CI: run SSL tests only when building with TLS support

---------

Co-authored-by: Barry Simons <linuxuser586@gmail.com>
2023-02-21 13:25:25 -08:00
..
any Break drivers out into separate crates, clean up some technical debt (#2039) 2023-02-21 13:25:25 -08:00
certs Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850) 2023-02-21 13:25:25 -08:00
keys Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850) 2023-02-21 13:25:25 -08:00
migrate fix: ensure migration progress is not lost for PG, mysql and sqlite (#1991) 2022-09-12 17:52:04 -07:00
mssql fix: mssql uses unsigned for tinyint instead of signed (#2074) 2022-08-31 18:10:29 -07:00
mysql Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850) 2023-02-21 13:25:25 -08:00
postgres Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850) 2023-02-21 13:25:25 -08:00
sqlite Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850) 2023-02-21 13:25:25 -08:00
ui Update some postgres trybuild tests 2021-01-12 03:39:10 -08:00
.dockerignore Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850) 2023-02-21 13:25:25 -08:00
.env feat: introduce docker-compose based testing for running locally against many database combinations 2020-05-30 17:51:55 -07:00
.gitignore update todo examples to 0.4 and use migrations 2020-07-18 05:43:16 -07:00
docker-compose.yml Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850) 2023-02-21 13:25:25 -08:00
docker.py Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850) 2023-02-21 13:25:25 -08:00
README.md Fix GitHub Actions and integration test (#1346) 2021-07-28 14:00:34 -07:00
ui-tests.rs chore: replace dotenv with dotenvy (#2003) 2022-07-28 14:33:44 -07:00
x.py Add client SSL authentication using key-file for Postgres, MySQL and MariaDB (#1850) 2023-02-21 13:25:25 -08:00

Running Tests

SQLx uses docker to run many compatible database systems for integration testing. You'll need to install docker to run the full suite. You can validate your docker installation with:

$ docker run hello-world

Start the databases with docker-compose before running tests:

$ docker-compose up

Run all tests against all supported databases using:

$ ./x.py

If you see test failures, or want to run a more specific set of tests against a specific database, you can specify both the features to be tests and the DATABASE_URL. e.g.

$ DATABASE_URL=mysql://root:password@127.0.0.1:49183/sqlx cargo test --no-default-features --features macros,offline,any,all-types,mysql,runtime-async-std-native-tls