mk_tests_default! {
#[allow(unused_imports)]
use crate::*;
#[test]
#[cfg(all(feature = "linking", not(feature = "embedded_tests"), not(feature = "pure_rust")))]
fn dyn_linking() -> Result<(), FbError> {
let conn = builder_native()
.from_string(
"firebird://localhost:3050/test_create_db1.fdb",
)?
.create_database()?;
conn.drop_database()?;
let conn = builder_native()
.with_dyn_link()
.with_remote()
.db_name("test_create_db11.fdb")
.user("SYSDBA")
.host("localhost")
.create_database()?;
conn.drop_database()?;
Ok(())
}
#[test]
#[cfg(all(feature = "dynamic_loading", not(feature = "embedded_tests"), not(feature = "pure_rust")))]
fn dyn_load() -> Result<(), FbError> {
#[cfg(target_os = "linux")]
let libfbclient = "libfbclient.so";
#[cfg(target_os = "windows")]
let libfbclient = "fbclient.dll";
#[cfg(target_os = "macos")]
let libfbclient = "libfbclient.dylib";
let conn = builder_native()
.from_string(
&format!("firebird://localhost:3050/test_create_db2.fdb?lib={}", libfbclient),
)?
.create_database()?;
conn.drop_database()?;
let conn = builder_native()
.with_dyn_load(libfbclient)
.with_remote()
.db_name("test_create_db2.fdb")
.user("SYSDBA")
.host("localhost")
.create_database()?;
conn.drop_database()?;
Ok(())
}
#[test]
#[cfg(all(feature = "linking", feature = "embedded_tests", not(feature = "dynamic_loading"), not(feature = "pure_rust")))]
fn dyn_linking_embedded() -> Result<(), FbError> {
let conn = builder_native()
.from_string(
"firebird:///tmp/embedded_test_create_db1.fdb?dialect=3",
)?
.create_database()?;
conn.drop_database()?;
let conn = builder_native()
.with_dyn_link()
.with_embedded()
.db_name("/tmp/embedded_test_create_db11.fdb")
.user("SYSDBA")
.create_database()?;
conn.drop_database()?;
Ok(())
}
#[test]
#[cfg(all(feature = "dynamic_loading", feature = "embedded_tests", not(feature = "linking"), not(feature = "pure_rust")))]
fn dyn_load_embedded() -> Result<(), FbError> {
#[cfg(target_os = "linux")]
let libfbclient = "libfbclient.so";
#[cfg(target_os = "windows")]
let libfbclient = "fbclient.dll";
#[cfg(target_os = "macos")]
let libfbclient = "libfbclient.dylib";
let conn = builder_native()
.from_string(
&format!("firebird:///tmp/embedded_test_create_db2.fdb?dialect=3&lib={}", libfbclient),
)?
.create_database()?;
conn.drop_database()?;
let conn = builder_native()
.with_dyn_load(libfbclient)
.with_embedded()
.db_name("/tmp/embedded_test_create_db22.fdb")
.user("SYSDBA")
.create_database()?;
conn.drop_database()?;
Ok(())
}
#[test]
#[cfg(all(feature = "pure_rust", not(feature = "native_client")))]
fn pure_rust() -> Result<(), FbError> {
let conn = builder_pure_rust()
.from_string(
"firebird://localhost:3050/test_create_db3.fdb",
)?
.create_database()?;
conn.drop_database()?;
let conn = builder_pure_rust()
.db_name("test_create_db33.fdb")
.user("SYSDBA")
.create_database()?;
conn.drop_database()?;
Ok(())
}
#[test]
#[cfg(all(feature = "linking", not(feature = "embedded_tests"), not(feature = "pure_rust")))]
fn dyn_linking_create_with_invalid_dialect() -> Result<(), FbError> {
let rs = builder_native()
.with_dyn_link()
.with_remote()
.db_name("test_create_db5.fdb")
.user("SYSDBA")
.host("localhost")
.dialect(rsfbclient::Dialect::D2)
.create_database();
assert!(rs.is_err());
assert!(rs.err().unwrap().to_string().contains("Database dialect 2 is not a valid dialec"));
Ok(())
}
#[test]
#[cfg(all(feature = "pure_rust", not(feature = "native_client")))]
fn pure_rust_create_with_invalid_dialect() -> Result<(), FbError> {
let rs = builder_pure_rust()
.db_name("test_create_db55.fdb")
.user("SYSDBA")
.dialect(rsfbclient::Dialect::D2)
.create_database();
assert!(rs.is_err());
assert!(rs.err().unwrap().to_string().contains("Database dialect 2 is not a valid dialec"));
Ok(())
}
}