mirror of
https://github.com/fluencelabs/sqlite-wasm-connector
synced 2025-03-15 06:20:50 +00:00
Return error message from SQLite
This commit is contained in:
parent
4baf4517f8
commit
ef550d6d75
16
src/lib.rs
16
src/lib.rs
@ -8,10 +8,24 @@ macro_rules! raise(
|
||||
);
|
||||
|
||||
macro_rules! success(
|
||||
($result:expr, $database:expr) => (
|
||||
match $result {
|
||||
::raw::SQLITE_OK => {},
|
||||
code => match ::Error::last($database) {
|
||||
Some(error) => return Err(error),
|
||||
None => return Err(::Error::from(::result::code_from_raw(code))),
|
||||
},
|
||||
}
|
||||
);
|
||||
($result:expr) => (
|
||||
match $result {
|
||||
::raw::SQLITE_OK => {},
|
||||
code => return Err(::Error::from(::result::code_from_raw(code))),
|
||||
code => return Err(::Error {
|
||||
code: ::result::code_from_raw(code),
|
||||
message: Some(c_str_to_string!(unsafe {
|
||||
::raw::sqlite3_errstr(code)
|
||||
})),
|
||||
}),
|
||||
}
|
||||
);
|
||||
);
|
||||
|
11
tests/lib.rs
11
tests/lib.rs
@ -55,6 +55,17 @@ fn workflow() {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn failure() {
|
||||
let (path, _directory) = setup();
|
||||
let mut database = ok!(sqlite::open(&path));
|
||||
match database.execute(":)", None) {
|
||||
Err(error) => assert_eq!(error.message,
|
||||
Some(String::from("SQL logic error or missing database"))),
|
||||
_ => assert!(false),
|
||||
}
|
||||
}
|
||||
|
||||
fn setup() -> (PathBuf, Directory) {
|
||||
let directory = ok!(Directory::new("sqlite"));
|
||||
(directory.path().join("database.sqlite3"), directory)
|
||||
|
Loading…
x
Reference in New Issue
Block a user