Skip to content

Commit

Permalink
Bring forward mysql_comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
jonhoo committed Sep 27, 2019
1 parent b689cdd commit 943e125
Showing 1 changed file with 16 additions and 18 deletions.
34 changes: 16 additions & 18 deletions noria-server/tests/mysql_comparison.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
#![feature(slice_concat_ext)]

extern crate backtrace;
extern crate diff;
extern crate futures;
extern crate mysql;
extern crate noria_server;
#[macro_use]
extern crate serde_derive;
extern crate toml;

use mysql::OptsBuilder;
use mysql::Params;
use serde_derive::Deserialize;

use std::collections::BTreeMap;
use std::fmt::Write as FmtWrite;
Expand Down Expand Up @@ -266,7 +258,7 @@ fn compare_results(mysql: &Vec<Vec<String>>, soup: &Vec<Vec<String>>) -> Option<
Some(output)
}

fn check_query(
async fn check_query(
tables: &BTreeMap<String, Table>,
query_name: &str,
query: &Query,
Expand All @@ -278,29 +270,29 @@ fn check_query(
.chain(Some(query_name.to_owned() + ": " + &query.select_query))
.collect();

let mut g = Builder::default().start_simple().unwrap();
g.install_recipe(&queries.join("\n")).unwrap();
let mut g = Builder::default().start_local().await.unwrap();
g.install_recipe(&queries.join("\n")).await.unwrap();

for (table_name, table) in tables.iter() {
let mut mutator = g.table(table_name).unwrap().into_sync();
let mut mutator = g.table(table_name).await.unwrap();
for row in table.data.as_ref().unwrap().iter() {
assert_eq!(row.len(), table.types.len());
let row: Vec<DataType> = row
.iter()
.enumerate()
.map(|(i, v)| table.types[i].make_datatype(v))
.collect();
mutator.insert(row).unwrap();
mutator.insert(row).await.unwrap();
}
}

thread::sleep(time::Duration::from_millis(300));
tokio::timer::delay(time::Instant::now() + time::Duration::from_millis(300)).await;

let mut getter = g.view(query_name).unwrap().into_sync();
let mut getter = g.view(query_name).await.unwrap();

for (i, query_parameter) in query.values.iter().enumerate() {
let query_param = query.types[0].make_datatype(&query_parameter[0]);
let query_results = getter.lookup(&[query_param], true).unwrap();
let query_results = getter.lookup(&[query_param], true).await.unwrap();

let target_results = &target[&i.to_string()];
let query_results: Vec<Vec<String>> = query_results
Expand Down Expand Up @@ -408,7 +400,13 @@ fn mysql_comparison() {
let panic_state: Arc<Mutex<Option<PanicState>>> = Arc::new(Mutex::new(None));
set_panic_hook(panic_state.clone());
let result = panic::catch_unwind(|| {
check_query(&schema.tables, query_name, query, &target_data[query_name])
let rt = tokio::runtime::Runtime::new().unwrap();
rt.block_on(check_query(
&schema.tables,
query_name,
query,
&target_data[query_name],
))
});
let _ = panic::take_hook();
match result {
Expand Down

0 comments on commit 943e125

Please sign in to comment.