tests: asynchronize some interpreter tests
This commit is contained in:
parent
51ed3bbc5c
commit
88fb13325a
2 changed files with 34 additions and 27 deletions
|
|
@ -8,4 +8,4 @@ edition = "2021"
|
|||
[dependencies]
|
||||
bimap = "0.6.3"
|
||||
thiserror = "1.0.50"
|
||||
tokio = { version = "1.35.1", features = ["sync"] }
|
||||
tokio = { version = "1.35.1", features = ["sync", "rt", "macros"] }
|
||||
|
|
|
|||
|
|
@ -166,6 +166,7 @@ impl State {
|
|||
mod tests {
|
||||
use super::*;
|
||||
use std::collections::HashSet;
|
||||
use std::ops::Deref;
|
||||
|
||||
fn users_schema() -> TableSchema {
|
||||
let id: ColumnPosition = 0;
|
||||
|
|
@ -201,8 +202,8 @@ mod tests {
|
|||
assert!(table.table_name() == &users);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_select_empty() {
|
||||
#[tokio::test]
|
||||
async fn test_select_empty() {
|
||||
let mut state = State::new();
|
||||
let users_schema = users_schema();
|
||||
let users = users_schema.table_name().clone();
|
||||
|
|
@ -217,8 +218,9 @@ mod tests {
|
|||
let Response::Selected(schema, rows) = response else {
|
||||
panic!()
|
||||
};
|
||||
let rows: Vec<_> = rows.collect();
|
||||
assert!(rows.len() == 0);
|
||||
|
||||
let mut rows = rows.lock().await;
|
||||
assert!(rows.next().is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -233,8 +235,8 @@ mod tests {
|
|||
assert!(matches!(response, Err(Error::TableDoesNotExist(_))));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_insert_select_basic1() {
|
||||
#[tokio::test]
|
||||
async fn test_insert_select_basic1() {
|
||||
use IndexableValue::*;
|
||||
use Value::*;
|
||||
|
||||
|
|
@ -270,18 +272,19 @@ mod tests {
|
|||
let Response::Selected(schema, rows) = response else {
|
||||
panic!()
|
||||
};
|
||||
let rows: Vec<_> = rows.collect();
|
||||
assert!(rows.len() == 1);
|
||||
let row = &rows[0];
|
||||
|
||||
let mut rows = rows.lock().await;
|
||||
let row = rows.next().expect("expected single row");
|
||||
assert!(row.len() == 3);
|
||||
assert!(row[0].1 == id);
|
||||
assert!(row[1].1 == name);
|
||||
assert!(row[2].1 == age);
|
||||
|
||||
assert!(rows.next().is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_insert_select_basic2() {
|
||||
#[tokio::test]
|
||||
async fn test_insert_select_basic2() {
|
||||
use ColumnSelection::*;
|
||||
use Condition::*;
|
||||
use IndexableValue::*;
|
||||
|
|
@ -336,20 +339,21 @@ mod tests {
|
|||
panic!()
|
||||
};
|
||||
|
||||
let rows: Vec<_> = rows.collect();
|
||||
assert!(rows.len() == 2);
|
||||
let row0 = &rows[0];
|
||||
let row1 = &rows[1];
|
||||
let mut rows = rows.lock().await;
|
||||
|
||||
let row0 = rows.next().expect("expected first row");
|
||||
assert!(row0.len() == 3);
|
||||
assert!(row0[0].1 == id0);
|
||||
assert!(row0[1].1 == name0);
|
||||
assert!(row0[2].1 == age0);
|
||||
|
||||
let row1 = rows.next().expect("expected second row");
|
||||
assert!(row1.len() == 3);
|
||||
assert!(row1[0].1 == id1);
|
||||
assert!(row1[1].1 == name1);
|
||||
assert!(row1[2].1 == age1);
|
||||
|
||||
assert!(rows.next().is_none());
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -364,14 +368,15 @@ mod tests {
|
|||
let Response::Selected(_, rows) = response else {
|
||||
panic!()
|
||||
};
|
||||
let rows: Vec<_> = rows.collect();
|
||||
assert!(rows.len() == 1);
|
||||
let row0 = &rows[0];
|
||||
|
||||
let mut rows = rows.lock().await;
|
||||
let row0 = rows.next().expect("expected first row");
|
||||
|
||||
assert!(row0.len() == 3);
|
||||
assert!(row0[0].1 == id0);
|
||||
assert!(row0[1].1 == name0);
|
||||
assert!(row0[2].1 == age0);
|
||||
assert!(rows.next().is_none());
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -386,18 +391,19 @@ mod tests {
|
|||
let Response::Selected(_, rows) = response else {
|
||||
panic!()
|
||||
};
|
||||
let rows: Vec<_> = rows.collect();
|
||||
assert!(rows.len() == 1);
|
||||
let row0 = &rows[0];
|
||||
|
||||
let mut rows = rows.lock().await;
|
||||
let row0 = rows.next().expect("expected first row");
|
||||
|
||||
assert!(row0.len() == 2);
|
||||
assert!(row0[0].1 == name0);
|
||||
assert!(row0[1].1 == id0);
|
||||
assert!(rows.next().is_none());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_delete() {
|
||||
#[tokio::test]
|
||||
async fn test_delete() {
|
||||
use ColumnSelection::*;
|
||||
use Condition::*;
|
||||
use IndexableValue::*;
|
||||
|
|
@ -460,14 +466,15 @@ mod tests {
|
|||
let Response::Selected(_, rows) = response else {
|
||||
panic!()
|
||||
};
|
||||
let rows: Vec<_> = rows.collect();
|
||||
assert!(rows.len() == 1);
|
||||
let row = &rows[0];
|
||||
|
||||
let mut rows = rows.lock().await;
|
||||
let row = rows.next().expect("expected first row");
|
||||
|
||||
assert!(row.len() == 3);
|
||||
assert!(row[0].1 == id1);
|
||||
assert!(row[1].1 == name1);
|
||||
assert!(row[2].1 == age1);
|
||||
assert!(rows.next().is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue