| //! Ensure we reject connections when SQLite is in single-threaded mode, as it |
| //! would violate safety if multiple Rust threads tried to use connections. |
| |
| use rusqlite::ffi; |
| use rusqlite::Connection; |
| |
| #[test] |
| fn test_error_when_singlethread_mode() { |
| // put SQLite into single-threaded mode |
| unsafe { |
| // Note: macOS system SQLite seems to return an error if you attempt to |
| // reconfigure to single-threaded mode. |
| if ffi::sqlite3_config(ffi::SQLITE_CONFIG_SINGLETHREAD) != ffi::SQLITE_OK { |
| return; |
| } |
| assert_eq!(ffi::sqlite3_initialize(), ffi::SQLITE_OK); |
| } |
| let res = Connection::open_in_memory(); |
| assert!(res.is_err()); |
| } |