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

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

@ -26,10 +26,11 @@
use core::future::Future;
use core::pin::Pin;
use crossterm::style::{Color, Print, ResetColor, SetForegroundColor};
use skytable::error::Error;
use skytable::types::Array;
use skytable::types::FlatElement;
use skytable::Query;
use skytable::{aio, Element, RespCode, Response};
use std::io::Error as IoError;
use skytable::{aio, Element, RespCode};
pub struct Runner<T: AsyncSocket> {
con: T,
@ -39,14 +40,14 @@ pub trait AsyncSocket {
fn run_simple_query<'s>(
&'s mut self,
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 {
fn run_simple_query<'s>(
&'s mut self,
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 })
}
}
@ -55,7 +56,7 @@ impl AsyncSocket for aio::TlsConnection {
fn run_simple_query<'s>(
&'s mut self,
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 })
}
}
@ -150,26 +151,17 @@ impl<T: AsyncSocket> Runner<T> {
let query = libsky::turn_into_query(unescaped_items);
match self.con.run_simple_query(query).await {
Ok(resp) => match resp {
Response::InvalidResponse => {
println!("ERROR: The server sent an invalid response");
}
Response::Item(element) => match element {
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::String(st) => write_string!(st),
Element::Binstr(st) => {
let st = String::from_utf8_lossy(&st);
write_string!(st)
}
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"),
},
Err(e) => {
@ -230,6 +222,7 @@ fn write_flat_array(flat_array: Vec<FlatElement>) {
}
FlatElement::RespCode(rc) => print_rcode(rc, Some(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() {
let idx = idx + 1;
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::UnsignedInt(int) => write_int!(idx, int),
Element::BinArray(brr) => print_bin_array(brr),
Element::StrArray(srr) => print_str_array(srr),
Element::Array(Array::Bin(brr)) => print_bin_array(brr),
Element::Array(Array::Str(srr)) => print_str_array(srr),
_ => eskysh!("Nested arrays cannot be printed just yet"),
}
}

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

@ -22,7 +22,7 @@ log = "0.4.14"
chrono = "0.4.19"
regex = "1.5.4"
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"] }
parking_lot = "0.11.1"
num_cpus = "1.13.0"

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

@ -26,13 +26,13 @@
#[sky_macros::dbtest]
mod __private {
use skytable::{Element, RespCode, Response};
use skytable::{types::Array, Element, RespCode};
async fn test_inspect_keyspaces() {
query.push("INSPECT");
query.push("KEYSPACES");
assert!(matches!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(_))
Element::Array(Array::Str(_))
))
}
async fn test_inspect_keyspace() {
@ -42,7 +42,7 @@ mod __private {
query.push(my_keyspace);
assert!(matches!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(_))
Element::Array(Array::Str(_))
))
}
async fn test_inspect_table() {
@ -51,7 +51,7 @@ mod __private {
query.push("TABLE");
query.push(my_table);
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())
}
_ => panic!("Bad response for inspect table"),
@ -62,7 +62,7 @@ mod __private {
query.push("TABLE");
query.push(__MYENTITY__);
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())
}
_ => panic!("Bad response for inspect table"),
@ -74,7 +74,7 @@ mod __private {
query.push("iowjfjofoe");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError))
Element::RespCode(RespCode::ActionError)
);
}
async fn test_inspect_keyspace_syntax_error() {
@ -84,7 +84,7 @@ mod __private {
query.push("oijfwirfjwo");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError))
Element::RespCode(RespCode::ActionError)
);
}
async fn test_inspect_table_syntax_error() {
@ -94,7 +94,7 @@ mod __private {
query.push("oijfwirfjwo");
assert_eq!(
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;
$(
q.push($key);
q.push($value);
q.push(stringify!($value));
count += 1;
)*
assert_eq!(
$con.run_simple_query(&q).await.unwrap(),
Response::Item(Element::UnsignedInt(count))
Element::UnsignedInt(count)
);
};
}
#[cfg(test)]
use skytable::{Element, Query, RespCode, Response};
use skytable::{types::Array, Element, Query, RespCode};
/// Test a HEYA query: The server should return HEY!
async fn test_heya() {
query.push("heya");
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() {
query.push("heya");
query.push("sayan");
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
@ -71,7 +71,7 @@ mod __private {
query.push("get");
query.push("x");
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
@ -80,12 +80,12 @@ mod __private {
query.push("x");
query.push("100");
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();
query.push("get");
query.push("x");
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
@ -93,7 +93,7 @@ mod __private {
query.push("get");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError))
Element::RespCode(RespCode::ActionError)
);
let mut query = Query::new();
query.push("get");
@ -101,7 +101,7 @@ mod __private {
query.push("y");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// attempt the same thing again
let mut query = Query::new();
@ -133,7 +133,7 @@ mod __private {
query.push("200");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError))
Element::RespCode(RespCode::ActionError)
);
let mut query = Query::new();
query.push("set");
@ -152,7 +152,7 @@ mod __private {
query.push("z");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// attempt to update it
let mut query = Query::new();
@ -173,7 +173,7 @@ mod __private {
query.push("200");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError))
Element::RespCode(RespCode::ActionError)
);
let mut query = Query::new();
query.push("update");
@ -203,7 +203,7 @@ mod __private {
query.push("z");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(0))
Element::UnsignedInt(0)
);
}
@ -225,7 +225,7 @@ mod __private {
query.push("100");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// now delete it
let mut query = Query::new();
@ -233,7 +233,7 @@ mod __private {
query.push("x");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1))
Element::UnsignedInt(1)
);
}
@ -249,7 +249,7 @@ mod __private {
query.push("300");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
// now delete them
let mut query = Query::new();
@ -259,7 +259,7 @@ mod __private {
query.push("z");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
}
@ -268,7 +268,7 @@ mod __private {
query.push("del");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
// now check if they exist
let mut query = Query::new();
@ -295,7 +295,7 @@ mod __private {
query.push("a");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
}
@ -304,7 +304,7 @@ mod __private {
query.push("exists");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
// now get them
let mut query = Query::new();
@ -330,7 +330,7 @@ mod __private {
query.push("z");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(vec![
Element::Array(Array::Str(vec![
Some("100".to_owned()),
Some("200".to_owned()),
Some("300".to_owned())
@ -350,7 +350,7 @@ mod __private {
query.push("300");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
let mut query = Query::new();
query.push("mget");
@ -361,7 +361,7 @@ mod __private {
query.push("b");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(vec![
Element::Array(Array::Str(vec![
Some("100".to_owned()),
Some("200".to_owned()),
None,
@ -376,7 +376,7 @@ mod __private {
query.push("mget");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1))
Element::UnsignedInt(1)
);
}
@ -404,7 +404,7 @@ mod __private {
query.push("300");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
}
@ -420,7 +420,7 @@ mod __private {
query.push("300");
assert_eq!(
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
let mut query = Query::new();
@ -435,7 +435,7 @@ mod __private {
query.push("apple");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1))
Element::UnsignedInt(1)
);
}
@ -444,7 +444,7 @@ mod __private {
query.push("mset");
assert_eq!(
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() {
@ -454,7 +454,7 @@ mod __private {
query.push("z");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1))
Element::UnsignedInt(1)
);
// now attempt to update it
// first set the keys
@ -476,7 +476,7 @@ mod __private {
query.push("200");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(1))
Element::UnsignedInt(1)
);
}
@ -492,7 +492,7 @@ mod __private {
query.push("300");
assert_eq!(
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
let mut query = Query::new();
@ -507,7 +507,7 @@ mod __private {
query.push("apple");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
}
@ -516,7 +516,7 @@ mod __private {
query.push("mupdate");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// now attempt to overwrite it
let mut query = Query::new();
@ -560,7 +560,7 @@ mod __private {
query.push("100");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
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
let mut query = Query::new();
@ -607,7 +607,7 @@ mod __private {
query.push("300");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// update it
let mut query = Query::new();
@ -648,7 +648,7 @@ mod __private {
query.push("200");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// now update all of them
let mut query = Query::new();
@ -688,7 +688,7 @@ mod __private {
query.push("400");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
let mut query = Query::new();
query.push("sdel");
query.push("x");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// now delete them
let mut query = Query::new();
@ -777,7 +777,7 @@ mod __private {
query.push("z");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// now check the size
let mut query = Query::new();
query.push("dbsize");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
let mut query = Query::new();
query.push("dbsize");
query.push(__MYENTITY__);
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
}
@ -839,7 +839,7 @@ mod __private {
query.push("ioewjforfifrj");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// now flush the database
let mut query = Query::new();
query.push("flushdb");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// now check the size
let mut query = Query::new();
query.push("dbsize");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(0))
Element::UnsignedInt(0)
);
}
@ -888,14 +888,14 @@ mod __private {
query.push(__MYENTITY__);
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// now check the size
let mut query = Query::new();
query.push("dbsize");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(0))
Element::UnsignedInt(0)
);
}
@ -907,7 +907,7 @@ mod __private {
query.push("z");
assert_eq!(
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");
assert_eq!(
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
let mut query = Query::new();
@ -937,7 +937,7 @@ mod __private {
query.push("300");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(3))
Element::UnsignedInt(3)
);
}
@ -946,7 +946,7 @@ mod __private {
query.push("uset");
assert_eq!(
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");
assert_eq!(
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");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::Okay))
Element::RespCode(RespCode::Okay)
);
// now check for the length
let mut query = Query::new();
@ -977,7 +977,7 @@ mod __private {
query.push("x");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(10))
Element::UnsignedInt(10)
);
}
@ -986,7 +986,7 @@ mod __private {
query.push("keylen");
assert_eq!(
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() {
@ -995,16 +995,14 @@ mod __private {
query.push("y");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError))
Element::RespCode(RespCode::ActionError)
);
}
async fn test_mksnap_disabled() {
query.push("mksnap");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ErrorString(
"err-snapshot-disabled".to_owned()
)))
Element::RespCode(RespCode::ErrorString("err-snapshot-disabled".to_owned()))
);
}
async fn test_mksnap_sanitization() {
@ -1012,18 +1010,18 @@ mod __private {
query.push("/var/omgcrazysnappy");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ErrorString(
Element::RespCode(RespCode::ErrorString(
"err-invalid-snapshot-name".to_owned()
)))
))
);
let mut query = Query::new();
query.push("mksnap");
query.push("../omgbacktoparent");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ErrorString(
Element::RespCode(RespCode::ErrorString(
"err-invalid-snapshot-name".to_owned()
)))
))
);
}
async fn test_lskeys_default() {
@ -1042,7 +1040,7 @@ mod __private {
query.push("carrots");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(6))
Element::UnsignedInt(6)
);
// now get 'em
let mut query = Query::new();
@ -1053,7 +1051,7 @@ mod __private {
.into_iter()
.map(|element| element.to_owned())
.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();
assert_eq!(ret_should_have.len(), arr.len());
assert!(ret_should_have.into_iter().all(|key| arr.contains(&key)));
@ -1077,7 +1075,7 @@ mod __private {
query.push("carrots");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::UnsignedInt(6))
Element::UnsignedInt(6)
);
let mut query = Query::new();
query.push("lskeys");
@ -1088,7 +1086,7 @@ mod __private {
.into_iter()
.map(|element| element.to_owned())
.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();
assert_eq!(ret_should_have.len(), arr.len());
assert!(ret_should_have.into_iter().all(|key| arr.contains(&key)));
@ -1110,7 +1108,7 @@ mod __private {
.into_iter()
.map(|element| element.to_owned())
.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();
assert_eq!(ret_should_have.len(), arr.len());
assert!(ret_should_have.into_iter().all(|key| arr.contains(&key)));
@ -1127,13 +1125,13 @@ mod __private {
);
query.push("lskeys");
query.push(&__MYENTITY__);
query.push(3);
query.push(3.to_string());
let ret = con.run_simple_query(&query).await.unwrap();
let ret_should_have: Vec<String> = vec!["x", "y", "z"]
.into_iter()
.map(|element| element.to_owned())
.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();
assert_eq!(ret_should_have.len(), arr.len());
assert!(ret_should_have.into_iter().all(|key| arr.contains(&key)));
@ -1149,14 +1147,14 @@ mod __private {
query.push("fvnjnvv");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError))
Element::RespCode(RespCode::ActionError)
);
}
async fn test_mpop_syntax_error() {
query.push("mpop");
assert_eq!(
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"]);
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(vec![
Element::Array(Array::Str(vec![
Some("100".to_owned()),
Some("200".to_owned()),
Some("300".to_owned())
@ -1187,7 +1185,7 @@ mod __private {
query.push(vec!["mpop", "apple", "arnold", "x", "madonna", "y", "z"]);
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::StrArray(vec![
Element::Array(Array::Str(vec![
None,
None,
Some("100".to_owned()),
@ -1201,7 +1199,7 @@ mod __private {
query.push("pop");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::RespCode(RespCode::ActionError))
Element::RespCode(RespCode::ActionError)
);
}
async fn test_pop_okay() {
@ -1213,7 +1211,7 @@ mod __private {
query.push("x");
assert_eq!(
con.run_simple_query(&query).await.unwrap(),
Response::Item(Element::Str("100".to_owned()))
Element::String("100".to_owned())
);
}
async fn test_pop_nil() {
@ -1221,7 +1219,7 @@ mod __private {
query.push("x");
assert_eq!(
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 {
use skytable::aio::TlsConnection;
use skytable::{Element, Query, Response};
use skytable::{Element, Query};
use std::env;
#[tokio::test]
async fn test_ssl() {
@ -42,7 +42,7 @@ mod ssl {
let q = Query::from("heya");
assert_eq!(
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::PoolConfig;
use rand::thread_rng;
use skytable::Query;
use std::io::{Read, Write};
use std::net::TcpStream;
@ -183,14 +184,28 @@ pub fn runner(
one of `set_packs`
*/
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();
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();
// just update key -> value to key -> key to avoid unnecessary memory usage
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();
if !json_out {
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(),
|sock, packet: Vec<u8>| {
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.shutdown(net::Shutdown::Both).unwrap();

@ -29,7 +29,7 @@ use rand::thread_rng;
use std::error::Error;
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_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
/// chances of colliding with any existing key
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 connection = Connection::new(host, port)?;
// test heya
@ -88,7 +88,7 @@ pub fn run_sanity_test(host: &str, port: u16) -> Result<(), Box<dyn Error>> {
if !connection
.run_simple_query(&query)
.unwrap()
.eq(&Response::Item(Element::Str("HEY!".to_owned())))
.eq(&Element::String("HEY!".to_owned()))
{
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
.run_simple_query(&query)
.unwrap()
.eq(&Response::Item(Element::RespCode(RespCode::Okay)))
.eq(&Element::RespCode(RespCode::Okay))
{
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
.run_simple_query(&query)
.unwrap()
.eq(&Response::Item(Element::Binstr(
value.as_bytes().to_owned(),
)))
.eq(&Element::Binstr(value.as_bytes().to_owned()))
{
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
.run_simple_query(&query)
.unwrap()
.eq(&Response::Item(Element::UnsignedInt(1)))
.eq(&Element::UnsignedInt(1))
{
return Err("DEL test failed".into());
}

@ -104,7 +104,7 @@ fn parse_dbtest(
let mut __flush__ = skytable::Query::from("flushdb");
std::assert_eq!(
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]
name = "sky-migrate"
version = "0.1.0"
version = "0.7.0"
authors = ["Sayan Nandan <nandansayan@outlook.com>"]
edition = "2018"

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

@ -42,7 +42,7 @@ use libstress::Workpool;
use skytable::actions::Actions;
use skytable::query;
use skytable::Connection;
use skytable::{Element, Query, RespCode, Response};
use skytable::{Element, Query, RespCode};
macro_rules! log_client_linearity {
($stressid:expr, $counter:expr, $what:expr) => {
@ -134,7 +134,7 @@ pub fn stress_linearity_concurrent_clients_set(
move |sock, query| {
assert_eq!(
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| {
assert_eq!(
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
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
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
.into_iter()
.map(|v| {
if let Response::Item(Element::Str(val)) = v {
if let Element::String(val) = v {
val
} else {
panic!("Unexpected response from server");

Loading…
Cancel
Save