[ci skip] Make test_array_module fails without sanitizer

This commit is contained in:
gwenn 2018-08-05 16:55:27 +02:00
parent 3aca24792c
commit e8dc412af1

View File

@ -170,8 +170,7 @@ mod test {
use Connection;
#[test]
#[cfg_attr(rustfmt, rustfmt_skip)]
#[ignore] // RUSTFLAGS="-Z sanitizer=address" cargo test --lib --features "array" -- --ignored
#[ignore] // cargo test --lib --features "array" -- --ignored
fn test_array_module() {
let db = Connection::open_in_memory().unwrap();
array::load_module(&db).unwrap();
@ -179,16 +178,18 @@ mod test {
let v = vec![1i64, 2, 3, 4];
let values = v.into_iter().map(|i| Value::from(i)).collect();
let ptr = Rc::new(values);
let mut stmt = db.prepare("SELECT value from rarray(?);").unwrap();
{
let mut stmt = db.prepare("SELECT value from rarray(?);").unwrap();
let rows = stmt.query_map(&[&ptr], |row| row.get::<_, i64>(0)).unwrap();
assert_eq!(2, Rc::strong_count(&ptr));
let mut count = 0;
for (i, value) in rows.enumerate() {
assert_eq!(i as i64, value.unwrap()-1);
count += 1;
let rows = stmt.query_map(&[&ptr], |row| row.get::<_, i64>(0)).unwrap();
assert_eq!(2, Rc::strong_count(&ptr));
let mut count = 0;
for (i, value) in rows.enumerate() {
assert_eq!(i as i64, value.unwrap() - 1);
count += 1;
}
assert_eq!(4, count);
}
assert_eq!(4, count);
assert_eq!(1, Rc::strong_count(&ptr));
}
}