mirror of
https://github.com/dolthub/dolt.git
synced 2026-01-08 08:49:52 -06:00
finalize rust mysql client integration test
This commit is contained in:
@@ -140,5 +140,9 @@ RUN go build -o /usr/local/bin/dolt ./cmd/dolt
|
||||
COPY mysql-client-tests /mysql-client-tests
|
||||
COPY mysql-client-tests/mysql-client-tests-entrypoint.sh /mysql-client-tests/entrypoint.sh
|
||||
|
||||
# install rust dependencies
|
||||
WORKDIR /mysql-client-tests/rust
|
||||
RUN cargo build --config net.git-fetch-with-cli=true
|
||||
|
||||
WORKDIR /mysql-client-tests
|
||||
ENTRYPOINT ["/mysql-client-tests/entrypoint.sh"]
|
||||
|
||||
@@ -164,7 +164,6 @@ EOF" -m "postgres"
|
||||
|
||||
@test "rust mysql.connector client" {
|
||||
cd $BATS_TEST_DIRNAME/rust
|
||||
cargo build
|
||||
cargo run --bin mysql_connector_test $USER $PORT $REPO_NAME
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
name = "mysql_connector_test"
|
||||
version = "0.0.1"
|
||||
# edition = "2018"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
mysql = "*"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//use mysql::*;
|
||||
//use mysql::prelude::*;
|
||||
use mysql::Row;
|
||||
use mysql::prelude::*;
|
||||
use std::env;
|
||||
use std::process::exit;
|
||||
|
||||
@@ -10,65 +10,37 @@ fn main() {
|
||||
let db = &args[3];
|
||||
|
||||
let url = format!("mysql://{}@127.0.0.1:{}/{}", user, port, db);
|
||||
//let pool = Pool::new(url).unwrap();
|
||||
//let mut conn = pool.get_conn().unwrap();
|
||||
println!("USER: {}", user);
|
||||
println!("PORT: {}", port);
|
||||
println!("DB: {}", db);
|
||||
println!("URL: {}", url);
|
||||
let connection_opts = mysql::Opts::from_url(&url).unwrap();
|
||||
let pool = mysql::Pool::new(connection_opts).unwrap();
|
||||
let mut conn = pool.get_conn().unwrap();
|
||||
|
||||
exit(0)
|
||||
}
|
||||
let queries: Vec<(&str, usize)> = [
|
||||
("create table test (pk int, `value` int, primary key(pk))", 0),
|
||||
("describe test", 2),
|
||||
("insert into test (pk, `value`) values (0,0)", 0),
|
||||
("select * from test", 1),
|
||||
("call dolt_add('-A');", 1),
|
||||
("call dolt_commit('-m', 'my commit')", 1),
|
||||
("call dolt_checkout('-b', 'mybranch')", 1),
|
||||
("insert into test (pk, `value`) values (1,1)", 0),
|
||||
("call dolt_commit('-a', '-m', 'my commit2')", 1),
|
||||
("call dolt_checkout('main')", 1),
|
||||
("call dolt_merge('mybranch')", 1),
|
||||
("select COUNT(*) FROM dolt_log", 1)
|
||||
].to_vec();
|
||||
|
||||
/*
|
||||
use std::collections::HashMap;
|
||||
|
||||
|
||||
// queries
|
||||
const QUERY_RESPONSE: HashMap<&str, i32> = HashMap::from([
|
||||
("create table test (pk int, `value` int, primary key(pk))", 0),
|
||||
("describe test", 3),
|
||||
("insert into test (pk, `value`) values (0,0)", 1),
|
||||
("select * from test", 1),
|
||||
("call dolt_add('-A');", 1),
|
||||
("call dolt_commit('-m', 'my commit')", 1),
|
||||
("call dolt_checkout('-b', 'mybranch')", 1),
|
||||
("insert into test (pk, `value`) values (1,1)", 1),
|
||||
("call dolt_commit('-a', '-m', 'my commit2')", 1),
|
||||
("call dolt_checkout('main')", 1),
|
||||
("call dolt_merge('mybranch')", 1),
|
||||
("select COUNT(*) FROM dolt_log", 1)
|
||||
]);
|
||||
|
||||
fn main() {
|
||||
// get CL args
|
||||
let args: Vec<String> = env::args().collect();
|
||||
let user = &args[1];
|
||||
let port = &args[2];
|
||||
let db = &args[3];
|
||||
|
||||
// open connection
|
||||
let client = HashMap::from([
|
||||
("user", user),
|
||||
("host", "127.0.0.1"),
|
||||
("port", port),
|
||||
("db_name", db)
|
||||
]);
|
||||
let mut builder = OptsBuilder::new().from_hash_map(client);
|
||||
//let url = "mysql://" + user + "@localhost:127.0.0.1/" + db;
|
||||
//let pool = Pool::new(url).unwrap();
|
||||
let mut conn = builder.get_conn().unwrap();
|
||||
|
||||
// for query in query_response...execute query
|
||||
for (query, exp_result) in QUERY_RESPONSE.iter() {
|
||||
let result = conn.query_map(query);
|
||||
if result != exp_result {
|
||||
for (query, expected) in queries.into_iter() {
|
||||
let result = conn.query(query);
|
||||
let response : Vec<Row> = result.expect("Error: bad response");
|
||||
println!("{:?}", response);
|
||||
if response.len() != expected {
|
||||
println!("LENGTH: {}", response.len());
|
||||
println!("QUERY: {}", query);
|
||||
println!("EXPECTED: {}", exp_result);
|
||||
println!("RESULT: {}", result);
|
||||
println!("EXPECTED: {}", expected);
|
||||
println!("RESULT: {:?}", response);
|
||||
exit(1)
|
||||
}
|
||||
}
|
||||
exit(0)
|
||||
|
||||
}*/
|
||||
exit(0)
|
||||
}
|
||||
Reference in New Issue
Block a user