diff --git a/src/lib.rs b/src/lib.rs index c639831..c6f82ce 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -50,6 +50,7 @@ //! } //! } //! ``` +#![cfg_attr(test, feature(duration))] extern crate libc; extern crate libsqlite3_sys as ffi; #[macro_use] extern crate bitflags; diff --git a/src/trace.rs b/src/trace.rs index 29473a2..b024f13 100644 --- a/src/trace.rs +++ b/src/trace.rs @@ -83,17 +83,19 @@ mod test { super::config_log(None).unwrap(); } - extern "C" fn trace_callback(_: *mut ::libc::c_void, sql: *const ::libc::c_char) { + extern "C" fn profile_callback(_: *mut ::libc::c_void, sql: *const ::libc::c_char, nanoseconds: u64) { + use std::time::Duration; unsafe { let c_slice = ::std::ffi::CStr::from_ptr(sql).to_bytes(); - let _ = writeln!(::std::io::stderr(), "TRACE: {:?}", ::std::str::from_utf8(c_slice)); + let d = Duration::from_millis(nanoseconds / 1_000_000); + let _ = writeln!(::std::io::stderr(), "PROFILE: {:?} ({})", ::std::str::from_utf8(c_slice), d); } } #[test] - fn test_trace() { + fn test_profile() { let mut db = SqliteConnection::open_in_memory().unwrap(); - db.trace(Some(trace_callback)); + db.profile(Some(profile_callback)); db.execute_batch("PRAGMA application_id = 1").unwrap(); } }