mirror of
https://github.com/bspeice/qadapt
synced 2024-11-21 13:28:11 -05:00
Add some more tests
This commit is contained in:
parent
03310c6372
commit
16a0238dc5
10
src/lib.rs
10
src/lib.rs
@ -20,7 +20,15 @@ static LOG_LEVEL: RwLock<Level> = RwLock::new(Level::Debug);
|
|||||||
pub struct QADAPT;
|
pub struct QADAPT;
|
||||||
|
|
||||||
pub fn set_panic(b: bool) {
|
pub fn set_panic(b: bool) {
|
||||||
*DO_PANIC.write() = b;
|
let mut val = DO_PANIC.write();
|
||||||
|
if *val == b {
|
||||||
|
let level = LOG_LEVEL.read();
|
||||||
|
if log_enabled!(*level) {
|
||||||
|
log!(*level, "Panic flag was already {}, potential data race", b)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = b;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_log_level(level: Level) {
|
pub fn set_log_level(level: Level) {
|
||||||
|
@ -27,4 +27,63 @@ fn test_allocate() {
|
|||||||
set_panic(true);
|
set_panic(true);
|
||||||
let _x = Box::new(12);
|
let _x = Box::new(12);
|
||||||
set_panic(false);
|
set_panic(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn unit_result(b: bool) -> Result<(), ()> {
|
||||||
|
if b {
|
||||||
|
Ok(())
|
||||||
|
} else {
|
||||||
|
Err(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_unit_result() {
|
||||||
|
set_panic(true);
|
||||||
|
#[allow(unused)]
|
||||||
|
{ black_box(unit_result(true)); }
|
||||||
|
black_box(unit_result(true)).unwrap();
|
||||||
|
#[allow(unused)]
|
||||||
|
{ black_box(unit_result(false)); }
|
||||||
|
black_box(unit_result(false)).unwrap_err();
|
||||||
|
set_panic(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
|
fn test_vec_push() {
|
||||||
|
let mut v = Vec::new();
|
||||||
|
set_panic(true);
|
||||||
|
v.push(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_vec_push_capacity() {
|
||||||
|
let mut v = Vec::with_capacity(1);
|
||||||
|
set_panic(true);
|
||||||
|
v.push(0);
|
||||||
|
v.pop();
|
||||||
|
v.push(0);
|
||||||
|
set_panic(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_vec_with_zero() {
|
||||||
|
set_panic(true);
|
||||||
|
let _v: Vec<u8> = black_box(Vec::with_capacity(0));
|
||||||
|
set_panic(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_vec_new() {
|
||||||
|
set_panic(true);
|
||||||
|
let _v: Vec<u8> = black_box(Vec::new());
|
||||||
|
set_panic(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
|
fn test_vec_with_one() {
|
||||||
|
set_panic(true);
|
||||||
|
let _v: Vec<u8> = Vec::with_capacity(1);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user