Fix up the tests

pull/3/head
Bradlee Speice 2018-12-08 16:08:36 -05:00
parent db120dbe45
commit 2c3cd714a1
2 changed files with 20 additions and 6 deletions

View File

@ -89,6 +89,7 @@ pub struct QADAPT;
///
/// ```rust,no_run
/// use qadapt::enter_protected;
/// use qadapt::exit_protected;
///
/// fn main() {
/// // Force an allocation by using a Box
@ -129,6 +130,7 @@ pub fn enter_protected() {
///
/// ```rust,no_run
/// use qadapt::enter_protected;
/// use qadapt::exit_protected;
///
/// fn main() {
/// // Force an allocation by using a Box

View File

@ -10,21 +10,33 @@ fn math() {
assert_eq!(x, 4);
}
// Because the `exit_protected` guard is never run, the compiler
// warns us of unreachable code
#[allow(unreachable_code)]
fn early_return() -> usize {
assert_no_alloc!(return 8)
}
fn into_box() -> Box<usize> {
Box::new(early_return())
}
#[test]
#[should_panic]
fn early_return_boxing() {
// The release-mode compiler is able to optimize through the Box
if cfg!(debug_assertions) {
// The release-mode compiler is able to optimize through the Box
into_box();
Box::new(early_return());
} else {
panic!("Intentional")
}
}
#[test]
#[should_panic]
fn list_push() {
let mut x = Vec::with_capacity(1);
x.push(1);
if cfg!(debug_assertions) {
assert_no_alloc!(x.push(12))
} else {
panic!("Intentional")
}
}