Release v0.7.0 (#210)

* Simplify query gen in sky-bench and bump versions

* Upgrade to the latest driver version
next
Sayan 3 years ago committed by GitHub
parent cdc33b349e
commit 111d50b75e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

49
Cargo.lock generated

@ -260,10 +260,11 @@ dependencies = [
[[package]] [[package]]
name = "fd-lock" name = "fd-lock"
version = "2.0.0" version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0010f02effd88c702318c5dde0463206be67495d0b4d906ba7c0a8f166cc7f06" checksum = "b8806dd91a06a7a403a8e596f9bfbfb34e469efbc363fc9c9713e79e26472e36"
dependencies = [ dependencies = [
"cfg-if",
"libc", "libc",
"winapi", "winapi",
] ]
@ -472,13 +473,13 @@ version = "0.7.0"
dependencies = [ dependencies = [
"lazy_static", "lazy_static",
"regex", "regex",
"skytable 0.4.0 (git+https://github.com/skytable/client-rust?branch=next)", "skytable 0.5.0-alpha.1 (git+https://github.com/skytable/client-rust?branch=next)",
"termcolor", "termcolor",
] ]
[[package]] [[package]]
name = "libstress" name = "libstress"
version = "0.1.0" version = "0.7.0"
dependencies = [ dependencies = [
"crossbeam-channel", "crossbeam-channel",
"log", "log",
@ -507,9 +508,9 @@ dependencies = [
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.4.0" version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
[[package]] [[package]]
name = "memoffset" name = "memoffset"
@ -553,9 +554,9 @@ dependencies = [
[[package]] [[package]]
name = "nix" name = "nix"
version = "0.20.1" version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df8e5e343312e7fbeb2a52139114e9e702991ef9c2aea6817ff2440b35647d56" checksum = "e7555d6c7164cc913be1ce7f95cbecdabda61eb2ccd89008524af306fb7f5031"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cc", "cc",
@ -610,9 +611,9 @@ checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
[[package]] [[package]]
name = "openssl" name = "openssl"
version = "0.10.35" version = "0.10.36"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885" checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cfg-if", "cfg-if",
@ -633,9 +634,9 @@ dependencies = [
[[package]] [[package]]
name = "openssl-sys" name = "openssl-sys"
version = "0.9.65" version = "0.9.66"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d" checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82"
dependencies = [ dependencies = [
"autocfg", "autocfg",
"cc", "cc",
@ -837,9 +838,9 @@ checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
[[package]] [[package]]
name = "rustyline" name = "rustyline"
version = "8.2.0" version = "9.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbd4eaf7a7738f76c98e4f0395253ae853be3eb018f7b0bb57fe1b6c17e31874" checksum = "790487c3881a63489ae77126f57048b42d62d3b2bafbf37453ea19eedb6340d6"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cfg-if", "cfg-if",
@ -943,18 +944,18 @@ dependencies = [
"rand", "rand",
"serde", "serde",
"serde_json", "serde_json",
"skytable 0.4.0 (git+https://github.com/skytable/client-rust?branch=next)", "skytable 0.5.0-alpha.1 (git+https://github.com/skytable/client-rust?branch=next)",
] ]
[[package]] [[package]]
name = "sky-migrate" name = "sky-migrate"
version = "0.1.0" version = "0.7.0"
dependencies = [ dependencies = [
"bincode", "bincode",
"clap", "clap",
"env_logger", "env_logger",
"log", "log",
"skytable 0.4.0 (git+https://github.com/skytable/client-rust.git)", "skytable 0.5.0-alpha.1 (git+https://github.com/skytable/client-rust.git)",
] ]
[[package]] [[package]]
@ -991,7 +992,7 @@ dependencies = [
"regex", "regex",
"serde", "serde",
"sky_macros", "sky_macros",
"skytable 0.4.0 (git+https://github.com/skytable/client-rust?branch=next)", "skytable 0.5.0-alpha.1 (git+https://github.com/skytable/client-rust?branch=next)",
"tokio", "tokio",
"tokio-openssl", "tokio-openssl",
"toml", "toml",
@ -1006,14 +1007,14 @@ dependencies = [
"crossterm", "crossterm",
"libsky", "libsky",
"rustyline", "rustyline",
"skytable 0.4.0 (git+https://github.com/skytable/client-rust?branch=next)", "skytable 0.5.0-alpha.1 (git+https://github.com/skytable/client-rust?branch=next)",
"tokio", "tokio",
] ]
[[package]] [[package]]
name = "skytable" name = "skytable"
version = "0.4.0" version = "0.5.0-alpha.1"
source = "git+https://github.com/skytable/client-rust?branch=next#9c44e56dc1a4bcaa755b5a07066f800d94f67b5f" source = "git+https://github.com/skytable/client-rust?branch=next#106bbcf94fd344ca0375b48c08ef3f200ec22126"
dependencies = [ dependencies = [
"bytes", "bytes",
"openssl", "openssl",
@ -1023,8 +1024,8 @@ dependencies = [
[[package]] [[package]]
name = "skytable" name = "skytable"
version = "0.4.0" version = "0.5.0-alpha.1"
source = "git+https://github.com/skytable/client-rust.git#376c05e7ae83ae1c0c06ec10ef0039774819f6c7" source = "git+https://github.com/skytable/client-rust.git#106bbcf94fd344ca0375b48c08ef3f200ec22126"
[[package]] [[package]]
name = "slab" name = "slab"
@ -1055,7 +1056,7 @@ dependencies = [
"log", "log",
"num_cpus", "num_cpus",
"rand", "rand",
"skytable 0.4.0 (git+https://github.com/skytable/client-rust?branch=next)", "skytable 0.5.0-alpha.1 (git+https://github.com/skytable/client-rust?branch=next)",
"sysinfo", "sysinfo",
] ]

@ -16,5 +16,5 @@ skytable = { git = "https://github.com/skytable/client-rust", branch = "next", f
# external deps # external deps
tokio = { version = "1.10.0", features = ["full"] } tokio = { version = "1.10.0", features = ["full"] }
clap = { version = "2.33.3", features = ["yaml"] } clap = { version = "2.33.3", features = ["yaml"] }
rustyline = "8.2.0" rustyline = "9.0.0"
crossterm = "0.20.0" crossterm = "0.20.0"

@ -26,10 +26,11 @@
use core::future::Future; use core::future::Future;
use core::pin::Pin; use core::pin::Pin;
use crossterm::style::{Color, Print, ResetColor, SetForegroundColor}; use crossterm::style::{Color, Print, ResetColor, SetForegroundColor};
use skytable::error::Error;
use skytable::types::Array;
use skytable::types::FlatElement; use skytable::types::FlatElement;
use skytable::Query; use skytable::Query;
use skytable::{aio, Element, RespCode, Response}; use skytable::{aio, Element, RespCode};
use std::io::Error as IoError;
pub struct Runner<T: AsyncSocket> { pub struct Runner<T: AsyncSocket> {
con: T, con: T,
@ -39,14 +40,14 @@ pub trait AsyncSocket {
fn run_simple_query<'s>( fn run_simple_query<'s>(
&'s mut self, &'s mut self,
query: Query, query: Query,
) -> Pin<Box<dyn Future<Output = Result<Response, IoError>> + Send + Sync + 's>>; ) -> Pin<Box<dyn Future<Output = Result<Element, Error>> + Send + Sync + 's>>;
} }
impl AsyncSocket for aio::Connection { impl AsyncSocket for aio::Connection {
fn run_simple_query<'s>( fn run_simple_query<'s>(
&'s mut self, &'s mut self,
query: Query, query: Query,
) -> Pin<Box<dyn Future<Output = Result<Response, IoError>> + Send + Sync + 's>> { ) -> Pin<Box<dyn Future<Output = Result<Element, Error>> + Send + Sync + 's>> {
Box::pin(async move { self.run_simple_query(&query).await }) Box::pin(async move { self.run_simple_query(&query).await })
} }
} }
@ -55,7 +56,7 @@ impl AsyncSocket for aio::TlsConnection {
fn run_simple_query<'s>( fn run_simple_query<'s>(
&'s mut self, &'s mut self,
query: Query, query: Query,
) -> Pin<Box<dyn Future<Output = Result<Response, IoError>> + Send + Sync + 's>> { ) -> Pin<Box<dyn Future<Output = Result<Element, Error>> + Send + Sync + 's>> {
Box::pin(async move { self.run_simple_query(&query).await }) Box::pin(async move { self.run_simple_query(&query).await })
} }
} }
@ -150,26 +151,17 @@ impl<T: AsyncSocket> Runner<T> {
let query = libsky::turn_into_query(unescaped_items); let query = libsky::turn_into_query(unescaped_items);
match self.con.run_simple_query(query).await { match self.con.run_simple_query(query).await {
Ok(resp) => match resp { Ok(resp) => match resp {
Response::InvalidResponse => { Element::String(st) => write_string!(st),
println!("ERROR: The server sent an invalid response"); Element::Binstr(st) => {
} let st = String::from_utf8_lossy(&st);
Response::Item(element) => match element { write_string!(st)
Element::Str(st) => write_string!(st),
Element::Binstr(st) => {
let st = String::from_utf8_lossy(&st);
write_string!(st)
}
Element::BinArray(brr) => print_bin_array(brr),
Element::StrArray(srr) => print_str_array(srr),
Element::RespCode(r) => print_rcode(r, None),
Element::UnsignedInt(int) => write_int!(int),
Element::FlatArray(frr) => write_flat_array(frr),
Element::Array(a) => print_array(a),
_ => eskysh!("Data type not supported"),
},
Response::ParseError => {
println!("ERROR: The client failed to deserialize data sent by the server")
} }
Element::Array(Array::Bin(brr)) => print_bin_array(brr),
Element::Array(Array::Str(srr)) => print_str_array(srr),
Element::RespCode(r) => print_rcode(r, None),
Element::UnsignedInt(int) => write_int!(int),
Element::Array(Array::Flat(frr)) => write_flat_array(frr),
Element::Array(Array::Recursive(a)) => print_array(a),
_ => eskysh!("The server possibly sent a newer data type that we can't parse"), _ => eskysh!("The server possibly sent a newer data type that we can't parse"),
}, },
Err(e) => { Err(e) => {
@ -230,6 +222,7 @@ fn write_flat_array(flat_array: Vec<FlatElement>) {
} }
FlatElement::RespCode(rc) => print_rcode(rc, Some(idx)), FlatElement::RespCode(rc) => print_rcode(rc, Some(idx)),
FlatElement::UnsignedInt(int) => write_int!(int, idx), FlatElement::UnsignedInt(int) => write_int!(int, idx),
_ => eskysh!("Element typed cannot yet be parsed"),
} }
} }
} }
@ -238,11 +231,11 @@ fn print_array(array: Vec<Element>) {
for (idx, item) in array.into_iter().enumerate() { for (idx, item) in array.into_iter().enumerate() {
let idx = idx + 1; let idx = idx + 1;
match item { match item {
Element::Str(st) => write_string!(idx, st), Element::String(st) => write_string!(idx, st),
Element::RespCode(rc) => print_rcode(rc, Some(idx)), Element::RespCode(rc) => print_rcode(rc, Some(idx)),
Element::UnsignedInt(int) => write_int!(idx, int), Element::UnsignedInt(int) => write_int!(idx, int),
Element::BinArray(brr) => print_bin_array(brr), Element::Array(Array::Bin(brr)) => print_bin_array(brr),
Element::StrArray(srr) => print_str_array(srr), Element::Array(Array::Str(srr)) => print_str_array(srr),
_ => eskysh!("Nested arrays cannot be printed just yet"), _ => eskysh!("Nested arrays cannot be printed just yet"),
} }
} }

@ -1,6 +1,6 @@
[package] [package]
name = "libstress" name = "libstress"
version = "0.1.0" version = "0.7.0"
authors = ["Sayan Nandan <nandansayan@outlook.com>"] authors = ["Sayan Nandan <nandansayan@outlook.com>"]
edition = "2018" edition = "2018"

@ -22,7 +22,7 @@ log = "0.4.14"
chrono = "0.4.19" chrono = "0.4.19"
regex = "1.5.4" regex = "1.5.4"
tokio-openssl = "0.6.2" tokio-openssl = "0.6.2"
openssl = { version = "0.10.35", features = ["vendored"] } openssl = { version = "0.10.36", features = ["vendored"] }
hashbrown = { version = "0.11.2", features = ["raw"] } hashbrown = { version = "0.11.2", features = ["raw"] }
parking_lot = "0.11.1" parking_lot = "0.11.1"
num_cpus = "1.13.0" num_cpus = "1.13.0"

@ -27,7 +27,7 @@
#[sky_macros::dbtest] #[sky_macros::dbtest]
mod __private { mod __private {
use libstress::utils; use libstress::utils;
use skytable::{Element, Query, RespCode, Response}; use skytable::{Element, Query, RespCode};
async fn test_create_keyspace() { async fn test_create_keyspace() {
let mut rng = rand::thread_rng(); let mut rng = rand::thread_rng();
let ksname = utils::rand_alphastring(10, &mut rng); let ksname = utils::rand_alphastring(10, &mut rng);
@ -36,7 +36,7 @@ mod __private {
query.push(&ksname); query.push(&ksname);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
async fn test_drop_keyspace() { async fn test_drop_keyspace() {
@ -47,7 +47,7 @@ mod __private {
query.push(&ksname); query.push(&ksname);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("drop"); query.push("drop");
@ -55,7 +55,7 @@ mod __private {
query.push(ksname); query.push(ksname);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
async fn test_create_table() { async fn test_create_table() {
@ -67,7 +67,7 @@ mod __private {
query.push("keymap(str,str)"); query.push("keymap(str,str)");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
async fn test_create_volatile() { async fn test_create_volatile() {
@ -80,7 +80,7 @@ mod __private {
query.push("volatile"); query.push("volatile");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
async fn test_create_table_fully_qualified_entity() { async fn test_create_table_fully_qualified_entity() {
@ -93,7 +93,7 @@ mod __private {
query.push("keymap(str,str)"); query.push("keymap(str,str)");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
async fn test_create_table_volatile_fully_qualified_entity() { async fn test_create_table_volatile_fully_qualified_entity() {
@ -107,7 +107,7 @@ mod __private {
query.push("volatile"); query.push("volatile");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
async fn test_drop_table() { async fn test_drop_table() {
@ -119,7 +119,7 @@ mod __private {
query.push("keymap(str,str)"); query.push("keymap(str,str)");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("drop"); query.push("drop");
@ -127,7 +127,7 @@ mod __private {
query.push(&tblname); query.push(&tblname);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
async fn test_drop_table_fully_qualified_entity() { async fn test_drop_table_fully_qualified_entity() {
@ -141,7 +141,7 @@ mod __private {
query.push("keymap(str,str)"); query.push("keymap(str,str)");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("drop"); query.push("drop");
@ -149,7 +149,7 @@ mod __private {
query.push(my_fqe); query.push(my_fqe);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
async fn test_use() { async fn test_use() {
@ -157,7 +157,7 @@ mod __private {
query.push(&__MYENTITY__); query.push(&__MYENTITY__);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
) )
} }
async fn test_use_syntax_error() { async fn test_use_syntax_error() {
@ -166,7 +166,7 @@ mod __private {
query.push("wiwofjwjfio"); query.push("wiwofjwjfio");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
) )
} }
} }

@ -26,13 +26,13 @@
#[sky_macros::dbtest] #[sky_macros::dbtest]
mod __private { mod __private {
use skytable::{Element, RespCode, Response}; use skytable::{types::Array, Element, RespCode};
async fn test_inspect_keyspaces() { async fn test_inspect_keyspaces() {
query.push("INSPECT"); query.push("INSPECT");
query.push("KEYSPACES"); query.push("KEYSPACES");
assert!(matches!( assert!(matches!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(_)) Element::Array(Array::Str(_))
)) ))
} }
async fn test_inspect_keyspace() { async fn test_inspect_keyspace() {
@ -42,7 +42,7 @@ mod __private {
query.push(my_keyspace); query.push(my_keyspace);
assert!(matches!( assert!(matches!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(_)) Element::Array(Array::Str(_))
)) ))
} }
async fn test_inspect_table() { async fn test_inspect_table() {
@ -51,7 +51,7 @@ mod __private {
query.push("TABLE"); query.push("TABLE");
query.push(my_table); query.push(my_table);
match con.run_simple_query(&query).await.unwrap() { match con.run_simple_query(&query).await.unwrap() {
Response::Item(Element::Str(st)) => { Element::String(st) => {
assert_eq!(st, "Keymap { data:(str,str), volatile:true }".to_owned()) assert_eq!(st, "Keymap { data:(str,str), volatile:true }".to_owned())
} }
_ => panic!("Bad response for inspect table"), _ => panic!("Bad response for inspect table"),
@ -62,7 +62,7 @@ mod __private {
query.push("TABLE"); query.push("TABLE");
query.push(__MYENTITY__); query.push(__MYENTITY__);
match con.run_simple_query(&query).await.unwrap() { match con.run_simple_query(&query).await.unwrap() {
Response::Item(Element::Str(st)) => { Element::String(st) => {
assert_eq!(st, "Keymap { data:(str,str), volatile:true }".to_owned()) assert_eq!(st, "Keymap { data:(str,str), volatile:true }".to_owned())
} }
_ => panic!("Bad response for inspect table"), _ => panic!("Bad response for inspect table"),
@ -74,7 +74,7 @@ mod __private {
query.push("iowjfjofoe"); query.push("iowjfjofoe");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
async fn test_inspect_keyspace_syntax_error() { async fn test_inspect_keyspace_syntax_error() {
@ -84,7 +84,7 @@ mod __private {
query.push("oijfwirfjwo"); query.push("oijfwirfjwo");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
async fn test_inspect_table_syntax_error() { async fn test_inspect_table_syntax_error() {
@ -94,7 +94,7 @@ mod __private {
query.push("oijfwirfjwo"); query.push("oijfwirfjwo");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
} }

@ -41,29 +41,29 @@ mod __private {
let mut count = 0; let mut count = 0;
$( $(
q.push($key); q.push($key);
q.push($value); q.push(stringify!($value));
count += 1; count += 1;
)* )*
assert_eq!( assert_eq!(
$con.run_simple_query(&q).await.unwrap(), $con.run_simple_query(&q).await.unwrap(),
Response::Item(Element::UnsignedInt(count)) Element::UnsignedInt(count)
); );
}; };
} }
#[cfg(test)] #[cfg(test)]
use skytable::{Element, Query, RespCode, Response}; use skytable::{types::Array, Element, Query, RespCode};
/// Test a HEYA query: The server should return HEY! /// Test a HEYA query: The server should return HEY!
async fn test_heya() { async fn test_heya() {
query.push("heya"); query.push("heya");
let resp = con.run_simple_query(&query).await.unwrap(); let resp = con.run_simple_query(&query).await.unwrap();
assert_eq!(resp, Response::Item(Element::Str("HEY!".to_owned()))); assert_eq!(resp, Element::String("HEY!".to_owned()));
} }
async fn test_heya_echo() { async fn test_heya_echo() {
query.push("heya"); query.push("heya");
query.push("sayan"); query.push("sayan");
let resp = con.run_simple_query(&query).await.unwrap(); let resp = con.run_simple_query(&query).await.unwrap();
assert_eq!(resp, Response::Item(Element::Str("sayan".to_owned()))); assert_eq!(resp, Element::String("sayan".to_owned()));
} }
/// Test a GET query: for a non-existing key /// Test a GET query: for a non-existing key
@ -71,7 +71,7 @@ mod __private {
query.push("get"); query.push("get");
query.push("x"); query.push("x");
let resp = con.run_simple_query(&query).await.unwrap(); let resp = con.run_simple_query(&query).await.unwrap();
assert_eq!(resp, Response::Item(Element::RespCode(RespCode::NotFound))); assert_eq!(resp, Element::RespCode(RespCode::NotFound));
} }
/// Test a GET query: for an existing key /// Test a GET query: for an existing key
@ -80,12 +80,12 @@ mod __private {
query.push("x"); query.push("x");
query.push("100"); query.push("100");
let resp = con.run_simple_query(&query).await.unwrap(); let resp = con.run_simple_query(&query).await.unwrap();
assert_eq!(resp, Response::Item(Element::RespCode(RespCode::Okay))); assert_eq!(resp, Element::RespCode(RespCode::Okay));
let mut query = Query::new(); let mut query = Query::new();
query.push("get"); query.push("get");
query.push("x"); query.push("x");
let resp = con.run_simple_query(&query).await.unwrap(); let resp = con.run_simple_query(&query).await.unwrap();
assert_eq!(resp, Response::Item(Element::Str("100".to_owned()))); assert_eq!(resp, Element::String("100".to_owned()));
} }
/// Test a GET query with an incorrect number of arguments /// Test a GET query with an incorrect number of arguments
@ -93,7 +93,7 @@ mod __private {
query.push("get"); query.push("get");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("get"); query.push("get");
@ -101,7 +101,7 @@ mod __private {
query.push("y"); query.push("y");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -112,7 +112,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
@ -124,7 +124,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// attempt the same thing again // attempt the same thing again
let mut query = Query::new(); let mut query = Query::new();
@ -133,7 +133,7 @@ mod __private {
query.push("200"); query.push("200");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::OverwriteError)) Element::RespCode(RespCode::OverwriteError)
); );
} }
@ -143,7 +143,7 @@ mod __private {
query.push("x"); query.push("x");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("set"); query.push("set");
@ -152,7 +152,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -164,7 +164,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// attempt to update it // attempt to update it
let mut query = Query::new(); let mut query = Query::new();
@ -173,7 +173,7 @@ mod __private {
query.push("200"); query.push("200");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
@ -185,7 +185,7 @@ mod __private {
query.push("200"); query.push("200");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::NotFound)) Element::RespCode(RespCode::NotFound)
); );
} }
@ -194,7 +194,7 @@ mod __private {
query.push("x"); query.push("x");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("update"); query.push("update");
@ -203,7 +203,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -213,7 +213,7 @@ mod __private {
query.push("x"); query.push("x");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(0)) Element::UnsignedInt(0)
); );
} }
@ -225,7 +225,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now delete it // now delete it
let mut query = Query::new(); let mut query = Query::new();
@ -233,7 +233,7 @@ mod __private {
query.push("x"); query.push("x");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1)) Element::UnsignedInt(1)
); );
} }
@ -249,7 +249,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
// now delete them // now delete them
let mut query = Query::new(); let mut query = Query::new();
@ -259,7 +259,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
} }
@ -268,7 +268,7 @@ mod __private {
query.push("del"); query.push("del");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -284,7 +284,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
// now check if they exist // now check if they exist
let mut query = Query::new(); let mut query = Query::new();
@ -295,7 +295,7 @@ mod __private {
query.push("a"); query.push("a");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
} }
@ -304,7 +304,7 @@ mod __private {
query.push("exists"); query.push("exists");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -320,7 +320,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
// now get them // now get them
let mut query = Query::new(); let mut query = Query::new();
@ -330,7 +330,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(vec![ Element::Array(Array::Str(vec![
Some("100".to_owned()), Some("100".to_owned()),
Some("200".to_owned()), Some("200".to_owned()),
Some("300".to_owned()) Some("300".to_owned())
@ -350,7 +350,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("mget"); query.push("mget");
@ -361,7 +361,7 @@ mod __private {
query.push("b"); query.push("b");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(vec![ Element::Array(Array::Str(vec![
Some("100".to_owned()), Some("100".to_owned()),
Some("200".to_owned()), Some("200".to_owned()),
None, None,
@ -376,7 +376,7 @@ mod __private {
query.push("mget"); query.push("mget");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -388,7 +388,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1)) Element::UnsignedInt(1)
); );
} }
@ -404,7 +404,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
} }
@ -420,7 +420,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
// now try to set them again with just another new key // now try to set them again with just another new key
let mut query = Query::new(); let mut query = Query::new();
@ -435,7 +435,7 @@ mod __private {
query.push("apple"); query.push("apple");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1)) Element::UnsignedInt(1)
); );
} }
@ -444,7 +444,7 @@ mod __private {
query.push("mset"); query.push("mset");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
async fn test_mset_syntax_error_args_three() { async fn test_mset_syntax_error_args_three() {
@ -454,7 +454,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -466,7 +466,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1)) Element::UnsignedInt(1)
); );
// now attempt to update it // now attempt to update it
// first set the keys // first set the keys
@ -476,7 +476,7 @@ mod __private {
query.push("200"); query.push("200");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1)) Element::UnsignedInt(1)
); );
} }
@ -492,7 +492,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
// now try to update them with just another new key // now try to update them with just another new key
let mut query = Query::new(); let mut query = Query::new();
@ -507,7 +507,7 @@ mod __private {
query.push("apple"); query.push("apple");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
} }
@ -516,7 +516,7 @@ mod __private {
query.push("mupdate"); query.push("mupdate");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -527,7 +527,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -539,7 +539,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
@ -551,7 +551,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now attempt to overwrite it // now attempt to overwrite it
let mut query = Query::new(); let mut query = Query::new();
@ -560,7 +560,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::OverwriteError)) Element::RespCode(RespCode::OverwriteError)
); );
} }
@ -576,7 +576,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
@ -592,7 +592,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now attempt to sset again with just one new extra key // now attempt to sset again with just one new extra key
let mut query = Query::new(); let mut query = Query::new();
@ -607,7 +607,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::OverwriteError)) Element::RespCode(RespCode::OverwriteError)
); );
} }
@ -616,7 +616,7 @@ mod __private {
query.push("sset"); query.push("sset");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -627,7 +627,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -639,7 +639,7 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// update it // update it
let mut query = Query::new(); let mut query = Query::new();
@ -648,7 +648,7 @@ mod __private {
query.push("200"); query.push("200");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
@ -659,7 +659,7 @@ mod __private {
query.push("200"); query.push("200");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::NotFound)) Element::RespCode(RespCode::NotFound)
); );
} }
@ -675,7 +675,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now update all of them // now update all of them
let mut query = Query::new(); let mut query = Query::new();
@ -688,7 +688,7 @@ mod __private {
query.push("400"); query.push("400");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
@ -703,7 +703,7 @@ mod __private {
query.push("400"); query.push("400");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::NotFound)) Element::RespCode(RespCode::NotFound)
); );
} }
@ -712,7 +712,7 @@ mod __private {
query.push("mupdate"); query.push("mupdate");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -723,7 +723,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -733,7 +733,7 @@ mod __private {
query.push("x"); query.push("x");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::NotFound)) Element::RespCode(RespCode::NotFound)
); );
} }
@ -744,14 +744,14 @@ mod __private {
query.push("100"); query.push("100");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("sdel"); query.push("sdel");
query.push("x"); query.push("x");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
@ -767,7 +767,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now delete them // now delete them
let mut query = Query::new(); let mut query = Query::new();
@ -777,7 +777,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
} }
@ -788,7 +788,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::NotFound)) Element::RespCode(RespCode::NotFound)
); );
} }
@ -797,7 +797,7 @@ mod __private {
query.push("sdel"); query.push("sdel");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -813,21 +813,21 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now check the size // now check the size
let mut query = Query::new(); let mut query = Query::new();
query.push("dbsize"); query.push("dbsize");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("dbsize"); query.push("dbsize");
query.push(__MYENTITY__); query.push(__MYENTITY__);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
} }
@ -839,7 +839,7 @@ mod __private {
query.push("ioewjforfifrj"); query.push("ioewjforfifrj");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -855,21 +855,21 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now flush the database // now flush the database
let mut query = Query::new(); let mut query = Query::new();
query.push("flushdb"); query.push("flushdb");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now check the size // now check the size
let mut query = Query::new(); let mut query = Query::new();
query.push("dbsize"); query.push("dbsize");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(0)) Element::UnsignedInt(0)
); );
} }
@ -888,14 +888,14 @@ mod __private {
query.push(__MYENTITY__); query.push(__MYENTITY__);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now check the size // now check the size
let mut query = Query::new(); let mut query = Query::new();
query.push("dbsize"); query.push("dbsize");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(0)) Element::UnsignedInt(0)
); );
} }
@ -907,7 +907,7 @@ mod __private {
query.push("z"); query.push("z");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -924,7 +924,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
// now that the keys already exist, do it all over again // now that the keys already exist, do it all over again
let mut query = Query::new(); let mut query = Query::new();
@ -937,7 +937,7 @@ mod __private {
query.push("300"); query.push("300");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3)) Element::UnsignedInt(3)
); );
} }
@ -946,7 +946,7 @@ mod __private {
query.push("uset"); query.push("uset");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -957,7 +957,7 @@ mod __private {
query.push("three"); query.push("three");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -969,7 +969,7 @@ mod __private {
query.push("helloworld"); query.push("helloworld");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
// now check for the length // now check for the length
let mut query = Query::new(); let mut query = Query::new();
@ -977,7 +977,7 @@ mod __private {
query.push("x"); query.push("x");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(10)) Element::UnsignedInt(10)
); );
} }
@ -986,7 +986,7 @@ mod __private {
query.push("keylen"); query.push("keylen");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
async fn test_keylen_syntax_error_args_two() { async fn test_keylen_syntax_error_args_two() {
@ -995,16 +995,14 @@ mod __private {
query.push("y"); query.push("y");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
async fn test_mksnap_disabled() { async fn test_mksnap_disabled() {
query.push("mksnap"); query.push("mksnap");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ErrorString( Element::RespCode(RespCode::ErrorString("err-snapshot-disabled".to_owned()))
"err-snapshot-disabled".to_owned()
)))
); );
} }
async fn test_mksnap_sanitization() { async fn test_mksnap_sanitization() {
@ -1012,18 +1010,18 @@ mod __private {
query.push("/var/omgcrazysnappy"); query.push("/var/omgcrazysnappy");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ErrorString( Element::RespCode(RespCode::ErrorString(
"err-invalid-snapshot-name".to_owned() "err-invalid-snapshot-name".to_owned()
))) ))
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("mksnap"); query.push("mksnap");
query.push("../omgbacktoparent"); query.push("../omgbacktoparent");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ErrorString( Element::RespCode(RespCode::ErrorString(
"err-invalid-snapshot-name".to_owned() "err-invalid-snapshot-name".to_owned()
))) ))
); );
} }
async fn test_lskeys_default() { async fn test_lskeys_default() {
@ -1042,7 +1040,7 @@ mod __private {
query.push("carrots"); query.push("carrots");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(6)) Element::UnsignedInt(6)
); );
// now get 'em // now get 'em
let mut query = Query::new(); let mut query = Query::new();
@ -1053,7 +1051,7 @@ mod __private {
.into_iter() .into_iter()
.map(|element| element.to_owned()) .map(|element| element.to_owned())
.collect(); .collect();
if let Response::Item(Element::StrArray(arr)) = ret { if let Element::Array(Array::Str(arr)) = ret {
let arr: Vec<String> = arr.into_iter().map(|v| v.unwrap()).collect(); let arr: Vec<String> = arr.into_iter().map(|v| v.unwrap()).collect();
assert_eq!(ret_should_have.len(), arr.len()); assert_eq!(ret_should_have.len(), arr.len());
assert!(ret_should_have.into_iter().all(|key| arr.contains(&key))); assert!(ret_should_have.into_iter().all(|key| arr.contains(&key)));
@ -1077,7 +1075,7 @@ mod __private {
query.push("carrots"); query.push("carrots");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(6)) Element::UnsignedInt(6)
); );
let mut query = Query::new(); let mut query = Query::new();
query.push("lskeys"); query.push("lskeys");
@ -1088,7 +1086,7 @@ mod __private {
.into_iter() .into_iter()
.map(|element| element.to_owned()) .map(|element| element.to_owned())
.collect(); .collect();
if let Response::Item(Element::StrArray(arr)) = ret { if let Element::Array(Array::Str(arr)) = ret {
let arr: Vec<String> = arr.into_iter().map(|v| v.unwrap()).collect(); let arr: Vec<String> = arr.into_iter().map(|v| v.unwrap()).collect();
assert_eq!(ret_should_have.len(), arr.len()); assert_eq!(ret_should_have.len(), arr.len());
assert!(ret_should_have.into_iter().all(|key| arr.contains(&key))); assert!(ret_should_have.into_iter().all(|key| arr.contains(&key)));
@ -1110,7 +1108,7 @@ mod __private {
.into_iter() .into_iter()
.map(|element| element.to_owned()) .map(|element| element.to_owned())
.collect(); .collect();
if let Response::Item(Element::StrArray(arr)) = ret { if let Element::Array(Array::Str(arr)) = ret {
let arr: Vec<String> = arr.into_iter().map(|v| v.unwrap()).collect(); let arr: Vec<String> = arr.into_iter().map(|v| v.unwrap()).collect();
assert_eq!(ret_should_have.len(), arr.len()); assert_eq!(ret_should_have.len(), arr.len());
assert!(ret_should_have.into_iter().all(|key| arr.contains(&key))); assert!(ret_should_have.into_iter().all(|key| arr.contains(&key)));
@ -1127,13 +1125,13 @@ mod __private {
); );
query.push("lskeys"); query.push("lskeys");
query.push(&__MYENTITY__); query.push(&__MYENTITY__);
query.push(3); query.push(3.to_string());
let ret = con.run_simple_query(&query).await.unwrap(); let ret = con.run_simple_query(&query).await.unwrap();
let ret_should_have: Vec<String> = vec!["x", "y", "z"] let ret_should_have: Vec<String> = vec!["x", "y", "z"]
.into_iter() .into_iter()
.map(|element| element.to_owned()) .map(|element| element.to_owned())
.collect(); .collect();
if let Response::Item(Element::StrArray(arr)) = ret { if let Element::Array(Array::Str(arr)) = ret {
let arr: Vec<String> = arr.into_iter().map(|v| v.unwrap()).collect(); let arr: Vec<String> = arr.into_iter().map(|v| v.unwrap()).collect();
assert_eq!(ret_should_have.len(), arr.len()); assert_eq!(ret_should_have.len(), arr.len());
assert!(ret_should_have.into_iter().all(|key| arr.contains(&key))); assert!(ret_should_have.into_iter().all(|key| arr.contains(&key)));
@ -1149,14 +1147,14 @@ mod __private {
query.push("fvnjnvv"); query.push("fvnjnvv");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
async fn test_mpop_syntax_error() { async fn test_mpop_syntax_error() {
query.push("mpop"); query.push("mpop");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
@ -1170,7 +1168,7 @@ mod __private {
query.push(vec!["mpop", "x", "y", "z"]); query.push(vec!["mpop", "x", "y", "z"]);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(vec![ Element::Array(Array::Str(vec![
Some("100".to_owned()), Some("100".to_owned()),
Some("200".to_owned()), Some("200".to_owned()),
Some("300".to_owned()) Some("300".to_owned())
@ -1187,7 +1185,7 @@ mod __private {
query.push(vec!["mpop", "apple", "arnold", "x", "madonna", "y", "z"]); query.push(vec!["mpop", "apple", "arnold", "x", "madonna", "y", "z"]);
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(vec![ Element::Array(Array::Str(vec![
None, None,
None, None,
Some("100".to_owned()), Some("100".to_owned()),
@ -1201,7 +1199,7 @@ mod __private {
query.push("pop"); query.push("pop");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError)) Element::RespCode(RespCode::ActionError)
); );
} }
async fn test_pop_okay() { async fn test_pop_okay() {
@ -1213,7 +1211,7 @@ mod __private {
query.push("x"); query.push("x");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::Str("100".to_owned())) Element::String("100".to_owned())
); );
} }
async fn test_pop_nil() { async fn test_pop_nil() {
@ -1221,7 +1219,7 @@ mod __private {
query.push("x"); query.push("x");
assert_eq!( assert_eq!(
con.run_simple_query(&query).await.unwrap(), con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::NotFound)) Element::RespCode(RespCode::NotFound)
); );
} }
} }

@ -32,7 +32,7 @@ mod kvengine;
mod ssl { mod ssl {
use skytable::aio::TlsConnection; use skytable::aio::TlsConnection;
use skytable::{Element, Query, Response}; use skytable::{Element, Query};
use std::env; use std::env;
#[tokio::test] #[tokio::test]
async fn test_ssl() { async fn test_ssl() {
@ -42,7 +42,7 @@ mod ssl {
let q = Query::from("heya"); let q = Query::from("heya");
assert_eq!( assert_eq!(
con.run_simple_query(&q).await.unwrap(), con.run_simple_query(&q).await.unwrap(),
Response::Item(Element::Str("HEY!".to_owned())) Element::String("HEY!".to_owned())
); );
} }
} }

@ -29,6 +29,7 @@ use devtimer::DevTime;
use libstress::utils::generate_random_string_vector; use libstress::utils::generate_random_string_vector;
use libstress::PoolConfig; use libstress::PoolConfig;
use rand::thread_rng; use rand::thread_rng;
use skytable::Query;
use std::io::{Read, Write}; use std::io::{Read, Write};
use std::net::TcpStream; use std::net::TcpStream;
@ -183,14 +184,28 @@ pub fn runner(
one of `set_packs` one of `set_packs`
*/ */
let set_packs: Vec<Vec<u8>> = (0..max_queries) let set_packs: Vec<Vec<u8>> = (0..max_queries)
.map(|idx| libsky::into_raw_query(&format!("SET {} {}", keys[idx], values[idx]))) .map(|idx| {
let mut q = Query::from("SET");
q.push(&keys[idx]);
q.push(&values[idx]);
q.into_raw_query()
})
.collect(); .collect();
let get_packs: Vec<Vec<u8>> = (0..max_queries) let get_packs: Vec<Vec<u8>> = (0..max_queries)
.map(|idx| libsky::into_raw_query(&format!("GET {}", keys[idx]))) .map(|idx| {
let mut q = Query::from("GET");
q.push(&keys[idx]);
q.into_raw_query()
})
.collect(); .collect();
// just update key -> value to key -> key to avoid unnecessary memory usage // just update key -> value to key -> key to avoid unnecessary memory usage
let update_packs: Vec<Vec<u8>> = (0..max_queries) let update_packs: Vec<Vec<u8>> = (0..max_queries)
.map(|idx| libsky::into_raw_query(&format!("UPDATE {} {}", keys[idx], keys[idx]))) .map(|idx| {
let mut q = Query::from("UPDATE");
q.push(&keys[idx]);
q.push(&keys[idx]);
q.into_raw_query()
})
.collect(); .collect();
if !json_out { if !json_out {
println!("Per-packet size (GET): {} bytes", get_packs[0].len()); println!("Per-packet size (GET): {} bytes", get_packs[0].len());

@ -43,7 +43,8 @@ pub fn create_testkeys(host: &str, port: u16, num: usize, connections: usize, si
move || TcpStream::connect(host.clone()).unwrap(), move || TcpStream::connect(host.clone()).unwrap(),
|sock, packet: Vec<u8>| { |sock, packet: Vec<u8>| {
sock.write_all(&packet).unwrap(); sock.write_all(&packet).unwrap();
let _ = sock.read(&mut vec![0; 1024]).unwrap(); let mut buf = [0u8; 5];
let _ = sock.read_exact(&mut buf).unwrap();
}, },
|socket| { |socket| {
socket.shutdown(net::Shutdown::Both).unwrap(); socket.shutdown(net::Shutdown::Both).unwrap();

@ -29,7 +29,7 @@ use rand::thread_rng;
use std::error::Error; use std::error::Error;
pub const DEFAULT_WORKER_COUNT: usize = 10; pub const DEFAULT_WORKER_COUNT: usize = 10;
pub const DEFAULT_PACKET_SIZE: usize = 8; pub const DEFAULT_PACKET_SIZE: usize = 4;
pub const DEFAULT_QUERY_COUNT: usize = 100_000; pub const DEFAULT_QUERY_COUNT: usize = 100_000;
pub const DEFAULT_REPEAT: usize = 5; pub const DEFAULT_REPEAT: usize = 5;
@ -79,7 +79,7 @@ pub fn calc(reqs: usize, time: u128) -> f64 {
/// A 65535 character long key/value pair is created and fetched. This random string has extremely low /// A 65535 character long key/value pair is created and fetched. This random string has extremely low
/// chances of colliding with any existing key /// chances of colliding with any existing key
pub fn run_sanity_test(host: &str, port: u16) -> Result<(), Box<dyn Error>> { pub fn run_sanity_test(host: &str, port: u16) -> Result<(), Box<dyn Error>> {
use skytable::{Connection, Element, Query, RespCode, Response}; use skytable::{Connection, Element, Query, RespCode};
let mut rng = thread_rng(); let mut rng = thread_rng();
let mut connection = Connection::new(host, port)?; let mut connection = Connection::new(host, port)?;
// test heya // test heya
@ -88,7 +88,7 @@ pub fn run_sanity_test(host: &str, port: u16) -> Result<(), Box<dyn Error>> {
if !connection if !connection
.run_simple_query(&query) .run_simple_query(&query)
.unwrap() .unwrap()
.eq(&Response::Item(Element::Str("HEY!".to_owned()))) .eq(&Element::String("HEY!".to_owned()))
{ {
return Err("HEYA test failed".into()); return Err("HEYA test failed".into());
} }
@ -101,7 +101,7 @@ pub fn run_sanity_test(host: &str, port: u16) -> Result<(), Box<dyn Error>> {
if !connection if !connection
.run_simple_query(&query) .run_simple_query(&query)
.unwrap() .unwrap()
.eq(&Response::Item(Element::RespCode(RespCode::Okay))) .eq(&Element::RespCode(RespCode::Okay))
{ {
return Err("SET test failed".into()); return Err("SET test failed".into());
} }
@ -111,9 +111,7 @@ pub fn run_sanity_test(host: &str, port: u16) -> Result<(), Box<dyn Error>> {
if !connection if !connection
.run_simple_query(&query) .run_simple_query(&query)
.unwrap() .unwrap()
.eq(&Response::Item(Element::Binstr( .eq(&Element::Binstr(value.as_bytes().to_owned()))
value.as_bytes().to_owned(),
)))
{ {
return Err("GET test failed".into()); return Err("GET test failed".into());
} }
@ -123,7 +121,7 @@ pub fn run_sanity_test(host: &str, port: u16) -> Result<(), Box<dyn Error>> {
if !connection if !connection
.run_simple_query(&query) .run_simple_query(&query)
.unwrap() .unwrap()
.eq(&Response::Item(Element::UnsignedInt(1))) .eq(&Element::UnsignedInt(1))
{ {
return Err("DEL test failed".into()); return Err("DEL test failed".into());
} }

@ -104,7 +104,7 @@ fn parse_dbtest(
let mut __flush__ = skytable::Query::from("flushdb"); let mut __flush__ = skytable::Query::from("flushdb");
std::assert_eq!( std::assert_eq!(
con.run_simple_query(&__flush__).await.unwrap(), con.run_simple_query(&__flush__).await.unwrap(),
skytable::Response::Item(skytable::Element::RespCode(skytable::RespCode::Okay)) skytable::Element::RespCode(skytable::RespCode::Okay)
); );
} }
}; };

@ -1,6 +1,6 @@
[package] [package]
name = "sky-migrate" name = "sky-migrate"
version = "0.1.0" version = "0.7.0"
authors = ["Sayan Nandan <nandansayan@outlook.com>"] authors = ["Sayan Nandan <nandansayan@outlook.com>"]
edition = "2018" edition = "2018"

@ -33,9 +33,9 @@ use log::error as err;
use log::info; use log::info;
use skytable::query; use skytable::query;
use skytable::sync::Connection; use skytable::sync::Connection;
use skytable::Element;
use skytable::Query; use skytable::Query;
use skytable::RespCode; use skytable::RespCode;
use skytable::{Element, Response};
use std::collections::HashMap; use std::collections::HashMap;
use std::env; use std::env;
use std::fs; use std::fs;
@ -77,7 +77,7 @@ fn main() {
// run sanity test // run sanity test
let q = query!("HEYA"); let q = query!("HEYA");
match con.run_simple_query(&q) { match con.run_simple_query(&q) {
Ok(Response::Item(Element::Str(s))) if s.eq("HEY!") => {} Ok(Element::String(s)) if s.eq("HEY!") => {}
Ok(_) => err(err!("Unknown response from server")), Ok(_) => err(err!("Unknown response from server")),
Err(e) => err(err!( Err(e) => err(err!(
"An I/O error occurred while running sanity test: {}", "An I/O error occurred while running sanity test: {}",
@ -128,7 +128,7 @@ fn err(_i: ()) -> ! {
fn okay(con: &mut Connection, q: Query) { fn okay(con: &mut Connection, q: Query) {
match con.run_simple_query(&q) { match con.run_simple_query(&q) {
Ok(Response::Item(Element::RespCode(RespCode::Okay))) => {} Ok(Element::RespCode(RespCode::Okay)) => {}
Err(e) => err(err!("An I/O error occurred while running query: {}", e)), Err(e) => err(err!("An I/O error occurred while running query: {}", e)),
Ok(_) => err(err!("Unknown response from server")), Ok(_) => err(err!("Unknown response from server")),
} }

@ -42,7 +42,7 @@ use libstress::Workpool;
use skytable::actions::Actions; use skytable::actions::Actions;
use skytable::query; use skytable::query;
use skytable::Connection; use skytable::Connection;
use skytable::{Element, Query, RespCode, Response}; use skytable::{Element, Query, RespCode};
macro_rules! log_client_linearity { macro_rules! log_client_linearity {
($stressid:expr, $counter:expr, $what:expr) => { ($stressid:expr, $counter:expr, $what:expr) => {
@ -134,7 +134,7 @@ pub fn stress_linearity_concurrent_clients_set(
move |sock, query| { move |sock, query| {
assert_eq!( assert_eq!(
sock.run_simple_query(&query).unwrap(), sock.run_simple_query(&query).unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
}, },
|_| {}, |_| {},
@ -185,7 +185,7 @@ pub fn stress_linearity_concurrent_clients_get(
move |sock, query| { move |sock, query| {
assert_eq!( assert_eq!(
sock.run_simple_query(&query).unwrap(), sock.run_simple_query(&query).unwrap(),
Response::Item(Element::RespCode(RespCode::Okay)) Element::RespCode(RespCode::Okay)
); );
}, },
|_| {}, |_| {},
@ -202,7 +202,7 @@ pub fn stress_linearity_concurrent_clients_get(
We create a mpmc to receive the results returned. This avoids us using We create a mpmc to receive the results returned. This avoids us using
any kind of locking on the surface which can slow down things any kind of locking on the surface which can slow down things
*/ */
let (tx, rx) = bounded::<Response>(DEFAULT_QUERY_COUNT); let (tx, rx) = bounded::<Element>(DEFAULT_QUERY_COUNT);
// generate the get packets // generate the get packets
let get_packs: Vec<Query> = keys.iter().map(|k| query!("GET", k)).collect(); let get_packs: Vec<Query> = keys.iter().map(|k| query!("GET", k)).collect();
@ -228,7 +228,7 @@ pub fn stress_linearity_concurrent_clients_get(
let rets: Vec<String> = rx let rets: Vec<String> = rx
.into_iter() .into_iter()
.map(|v| { .map(|v| {
if let Response::Item(Element::Str(val)) = v { if let Element::String(val) = v {
val val
} else { } else {
panic!("Unexpected response from server"); panic!("Unexpected response from server");

Loading…
Cancel
Save