commit 24053f81ef7e7345999ba2a5d91c921ffccf6e39
parent 469b97592330438bc9f2f04be28dd92ecba80a2a
Author: Antoine A <>
Date: Thu, 6 Feb 2025 22:24:49 +0100
common: fix test database creation
Diffstat:
2 files changed, 22 insertions(+), 25 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -1861,7 +1861,7 @@ checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94"
dependencies = [
"rand_chacha 0.9.0",
"rand_core 0.9.0",
- "zerocopy 0.8.16",
+ "zerocopy 0.8.17",
]
[[package]]
@@ -1900,7 +1900,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff"
dependencies = [
"getrandom 0.3.1",
- "zerocopy 0.8.16",
+ "zerocopy 0.8.17",
]
[[package]]
@@ -3367,11 +3367,11 @@ dependencies = [
[[package]]
name = "zerocopy"
-version = "0.8.16"
+version = "0.8.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b8c07a70861ce02bad1607b5753ecb2501f67847b9f9ada7c160fff0ec6300c"
+checksum = "aa91407dacce3a68c56de03abe2760159582b846c6a4acd2f456618087f12713"
dependencies = [
- "zerocopy-derive 0.8.16",
+ "zerocopy-derive 0.8.17",
]
[[package]]
@@ -3387,9 +3387,9 @@ dependencies = [
[[package]]
name = "zerocopy-derive"
-version = "0.8.16"
+version = "0.8.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5226bc9a9a9836e7428936cde76bb6b22feea1a8bfdbc0d241136e4d13417e25"
+checksum = "06718a168365cad3d5ff0bb133aad346959a2074bd4a85c121255a11304a8626"
dependencies = [
"proc-macro2",
"quote",
diff --git a/common/taler-test-utils/src/lib.rs b/common/taler-test-utils/src/lib.rs
@@ -14,7 +14,10 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-use std::sync::atomic::{AtomicUsize, Ordering};
+use std::sync::{
+ atomic::{AtomicUsize, Ordering},
+ OnceLock,
+};
use sqlx::{postgres::PgPoolOptions, PgPool};
@@ -30,23 +33,20 @@ pub async fn db_test_setup() -> PgPool {
db_pool().await
}
-static MASTER_POOL: tokio::sync::OnceCell<PgPool> = tokio::sync::OnceCell::const_new();
+static MASTER_POOL: OnceLock<PgPool> = OnceLock::new();
const DB: &str = "postgres:/taler_rust_check";
static NB_DB: AtomicUsize = AtomicUsize::new(0);
async fn db_pool() -> PgPool {
- let master = MASTER_POOL
- .get_or_init(|| async {
- PgPoolOptions::new()
- .min_connections(0)
- .max_connections(20)
- .test_before_acquire(true)
- .connect(DB)
- .await
- .expect("pg pool")
- })
- .await;
+ let master = MASTER_POOL.get_or_init(|| {
+ PgPoolOptions::new()
+ .max_connections(20)
+ .test_before_acquire(false)
+ .after_release(|_conn, _| Box::pin(async move { Ok(false) }))
+ .connect_lazy(DB)
+ .expect("pg pool")
+ });
let idx = NB_DB.fetch_add(1, Ordering::Relaxed);
// Cleanup test db
let name = format!("taler_rust_test_{idx}");
@@ -62,11 +62,8 @@ async fn db_pool() -> PgPool {
drop(conn);
PgPoolOptions::new()
- .min_connections(0)
- .max_connections(5)
- .test_before_acquire(true)
- .connect(&format!("postgresql:/{name}"))
- .await
+ .test_before_acquire(false)
+ .connect_lazy(&format!("postgresql:/{name}"))
.expect("pg pool")
}