From 4a5de827d547f1ab7b7d63846160c0f84366f187 Mon Sep 17 00:00:00 2001 From: Lucio Franco Date: Tue, 23 Jul 2024 14:31:50 -0400 Subject: [PATCH 1/2] test: add hrana intp_stream test --- libsql-server/tests/embedded_replica/mod.rs | 2 +- libsql-server/tests/hrana/batch.rs | 39 +++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/libsql-server/tests/embedded_replica/mod.rs b/libsql-server/tests/embedded_replica/mod.rs index c4d9d5b79e..c4eb2b3533 100644 --- a/libsql-server/tests/embedded_replica/mod.rs +++ b/libsql-server/tests/embedded_replica/mod.rs @@ -9,7 +9,7 @@ use std::time::{Duration, Instant}; use crate::common::http::Client; use crate::common::net::{init_tracing, SimServer, TestServer, TurmoilAcceptor, TurmoilConnector}; use crate::common::snapshot_metrics; -use libsql::Database; +use libsql::{params, Database}; use libsql_server::config::{AdminApiConfig, DbConfig, RpcServerConfig, UserApiConfig}; use serde_json::json; use tempfile::tempdir; diff --git a/libsql-server/tests/hrana/batch.rs b/libsql-server/tests/hrana/batch.rs index eeec3f6319..315480886a 100644 --- a/libsql-server/tests/hrana/batch.rs +++ b/libsql-server/tests/hrana/batch.rs @@ -1,5 +1,6 @@ use std::time::Duration; +use futures::StreamExt; use insta::assert_json_snapshot; use libsql::{params, Database}; use libsql_server::hrana_proto::{Batch, BatchStep, Stmt}; @@ -316,3 +317,41 @@ fn stats_legacy() { sim.run().unwrap(); } + +#[test] +fn stream() { + let mut sim = turmoil::Builder::new() + .simulation_duration(Duration::from_secs(1000)) + .build(); + sim.host("primary", super::make_standalone_server); + sim.client("client", async { + let db = Database::open_remote_with_connector("http://primary:8080", "", TurmoilConnector)?; + let conn = db.connect()?; + + conn.execute("create table t(x text)", ()).await?; + conn.execute("insert into t(x) values(?)", params!["hello"]) + .await?; + + conn.execute("insert into t(x) values(?)", params!["hello"]) + .await?; + + conn.execute("insert into t(x) values(?)", params!["hello"]) + .await?; + + conn.execute("insert into t(x) values(?)", params!["hello"]) + .await?; + + let rows = conn + .query("select * from t where x = ?", params!["hello"]) + .await? + .into_stream(); + + let rows = rows.collect::>().await; + + assert_eq!(rows.len(), 4); + + Ok(()) + }); + + sim.run().unwrap(); +} From 436d9bd940258e2562c75902612d357c6bf9f517 Mon Sep 17 00:00:00 2001 From: Lucio Franco Date: Tue, 23 Jul 2024 15:42:21 -0400 Subject: [PATCH 2/2] fix test --- libsql-server/tests/embedded_replica/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libsql-server/tests/embedded_replica/mod.rs b/libsql-server/tests/embedded_replica/mod.rs index c4eb2b3533..c4d9d5b79e 100644 --- a/libsql-server/tests/embedded_replica/mod.rs +++ b/libsql-server/tests/embedded_replica/mod.rs @@ -9,7 +9,7 @@ use std::time::{Duration, Instant}; use crate::common::http::Client; use crate::common::net::{init_tracing, SimServer, TestServer, TurmoilAcceptor, TurmoilConnector}; use crate::common::snapshot_metrics; -use libsql::{params, Database}; +use libsql::Database; use libsql_server::config::{AdminApiConfig, DbConfig, RpcServerConfig, UserApiConfig}; use serde_json::json; use tempfile::tempdir;