Skip to content

Commit

Permalink
Make test-suite Tester::new async (gluesql#1004)
Browse files Browse the repository at this point in the history
  • Loading branch information
ShaddyDC committed Nov 16, 2022
1 parent 3b24587 commit 7804d43
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 11 deletions.
1 change: 1 addition & 0 deletions pkg/javascript/web/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ memory-storage = { package = "gluesql_memory_storage", path = "../../../storages

[dev-dependencies]
wasm-bindgen-test = "0.3.13"
async-trait = "0.1"

[dev-dependencies.test-suite]
package = "gluesql-test-suite"
Expand Down
6 changes: 4 additions & 2 deletions pkg/javascript/web/tests/memory_storage.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#![cfg(target_arch = "wasm32")]

use {
gluesql_core::prelude::Glue, memory_storage::MemoryStorage, test_suite::*, wasm_bindgen_test::*,
async_trait::async_trait, gluesql_core::prelude::Glue, memory_storage::MemoryStorage,
test_suite::*, wasm_bindgen_test::*,
};

wasm_bindgen_test_configure!(run_in_browser);
Expand All @@ -10,8 +11,9 @@ struct MemoryTester {
glue: Glue<MemoryStorage>,
}

#[async_trait(?Send)]
impl Tester<MemoryStorage> for MemoryTester {
fn new(_: &str) -> Self {
async fn new(_: &str) -> Self {
let storage = MemoryStorage::default();
let glue = Glue::new(storage);

Expand Down
8 changes: 6 additions & 2 deletions storages/memory-storage/tests/memory_storage.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
use {gluesql_core::prelude::Glue, gluesql_memory_storage::MemoryStorage, test_suite::*};
use {
async_trait::async_trait, gluesql_core::prelude::Glue, gluesql_memory_storage::MemoryStorage,
test_suite::*,
};

struct MemoryTester {
glue: Glue<MemoryStorage>,
}

#[async_trait(?Send)]
impl Tester<MemoryStorage> for MemoryTester {
fn new(_: &str) -> Self {
async fn new(_: &str) -> Self {
let storage = MemoryStorage::default();
let glue = Glue::new(storage);

Expand Down
6 changes: 4 additions & 2 deletions storages/shared-memory-storage/tests/shared_memory_storage.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
use {
gluesql_core::prelude::Glue, gluesql_shared_memory_storage::SharedMemoryStorage, test_suite::*,
async_trait::async_trait, gluesql_core::prelude::Glue,
gluesql_shared_memory_storage::SharedMemoryStorage, test_suite::*,
};

struct SharedMemoryTester {
glue: Glue<SharedMemoryStorage>,
}

#[async_trait(?Send)]
impl Tester<SharedMemoryStorage> for SharedMemoryTester {
fn new(_: &str) -> Self {
async fn new(_: &str) -> Self {
let storage = SharedMemoryStorage::new();
let glue = Glue::new(storage);

Expand Down
8 changes: 6 additions & 2 deletions storages/sled-storage/tests/sled_storage.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
use {gluesql_core::prelude::Glue, gluesql_sled_storage::SledStorage, test_suite::*};
use {
async_trait::async_trait, gluesql_core::prelude::Glue, gluesql_sled_storage::SledStorage,
test_suite::*,
};

struct SledTester {
glue: Glue<SledStorage>,
}

#[async_trait(?Send)]
impl Tester<SledStorage> for SledTester {
fn new(namespace: &str) -> Self {
async fn new(namespace: &str) -> Self {
let path = format!("data/{}", namespace);

match std::fs::remove_dir_all(&path) {
Expand Down
2 changes: 1 addition & 1 deletion test-suite/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ macro_rules! declare_test_fn {
#[$test]
async fn $title() {
let path = stringify!($title);
let storage = $storage::new(path);
let storage = $storage::new(path).await;

$func(storage).await;
}
Expand Down
4 changes: 2 additions & 2 deletions test-suite/src/tester/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -212,9 +212,9 @@ pub fn type_match(expected: &[DataType], found: Result<Payload>) {
///
/// Actual test cases are in [test-suite/src/](https://github.com/gluesql/gluesql/blob/main/test-suite/src/),
/// not in `/tests/`.
#[async_trait]
#[async_trait(?Send)]
pub trait Tester<T: GStore + GStoreMut> {
fn new(namespace: &str) -> Self;
async fn new(namespace: &str) -> Self;

fn get_glue(&mut self) -> &mut Glue<T>;
}
Expand Down

0 comments on commit 7804d43

Please sign in to comment.