Upgrade nih_debug_assert!() to panic in tests
This commit is contained in:
parent
58174c1af0
commit
3aa3f08f82
|
@ -10,6 +10,13 @@ Since there is no stable release yet, the changes are organized per day in
|
||||||
reverse chronological order. The main purpose of this document in its current
|
reverse chronological order. The main purpose of this document in its current
|
||||||
state is to list breaking changes.
|
state is to list breaking changes.
|
||||||
|
|
||||||
|
## [2023-04-05]
|
||||||
|
|
||||||
|
### Breaking changes
|
||||||
|
|
||||||
|
- The `nih_debug_assert*!()` macros are now upgraded to regular panicking
|
||||||
|
`debug_assert!()` macros during tests.
|
||||||
|
|
||||||
## [2023-04-01]
|
## [2023-04-01]
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
44
src/debug.rs
44
src/debug.rs
|
@ -84,20 +84,24 @@ macro_rules! nih_dbg {
|
||||||
pub use nih_dbg;
|
pub use nih_dbg;
|
||||||
|
|
||||||
/// A `debug_assert!()` analogue that prints the error with line number information instead of
|
/// A `debug_assert!()` analogue that prints the error with line number information instead of
|
||||||
/// panicking.
|
/// panicking. During tests this is upgraded to a regular panicking `debug_assert!()`.
|
||||||
///
|
///
|
||||||
/// TODO: Detect if we're running under a debugger, and trigger a break if we are
|
/// TODO: Detect if we're running under a debugger, and trigger a break if we are
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! nih_debug_assert {
|
macro_rules! nih_debug_assert {
|
||||||
($cond:expr $(,)?) => (
|
($cond:expr $(,)?) => (
|
||||||
#[allow(clippy::neg_cmp_op_on_partial_ord)]
|
#[allow(clippy::neg_cmp_op_on_partial_ord)]
|
||||||
if cfg!(debug_assertions) && !$cond {
|
if cfg!(test) {
|
||||||
|
debug_assert!($cond);
|
||||||
|
} else if cfg!(debug_assertions) && !$cond {
|
||||||
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($cond))));
|
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($cond))));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
($cond:expr, $format:expr $(, $($args:tt)*)?) => (
|
($cond:expr, $format:expr $(, $($args:tt)*)?) => (
|
||||||
#[allow(clippy::neg_cmp_op_on_partial_ord)]
|
#[allow(clippy::neg_cmp_op_on_partial_ord)]
|
||||||
if cfg!(debug_assertions) && !$cond {
|
if cfg!(test) {
|
||||||
|
debug_assert!($cond, $format, $($($args)*)?);
|
||||||
|
} else if cfg!(debug_assertions) && !$cond {
|
||||||
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($cond), ", ", $format), $($($args)*)?));
|
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($cond), ", ", $format), $($($args)*)?));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -106,16 +110,20 @@ macro_rules! nih_debug_assert {
|
||||||
pub use nih_debug_assert;
|
pub use nih_debug_assert;
|
||||||
|
|
||||||
/// An unconditional debug assertion failure, for if the condition has already been checked
|
/// An unconditional debug assertion failure, for if the condition has already been checked
|
||||||
/// elsewhere.
|
/// elsewhere. See [`nih_debug_assert!()`] for more information.
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! nih_debug_assert_failure {
|
macro_rules! nih_debug_assert_failure {
|
||||||
() => (
|
() => (
|
||||||
if cfg!(debug_assertions) {
|
if cfg!(test) {
|
||||||
|
debug_assert!(false, "Debug assertion failed");
|
||||||
|
} else if cfg!(debug_assertions) {
|
||||||
$crate::util::permit_alloc(|| $crate::log::debug!("Debug assertion failed"));
|
$crate::util::permit_alloc(|| $crate::log::debug!("Debug assertion failed"));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
($format:expr $(, $($args:tt)*)?) => (
|
($format:expr $(, $($args:tt)*)?) => (
|
||||||
if cfg!(debug_assertions) {
|
if cfg!(test) {
|
||||||
|
debug_assert!(false, concat!("Debug assertion failed: ", $format), $($($args)*)?);
|
||||||
|
} else if cfg!(debug_assertions) {
|
||||||
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", $format), $($($args)*)?));
|
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", $format), $($($args)*)?));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -124,16 +132,22 @@ macro_rules! nih_debug_assert_failure {
|
||||||
pub use nih_debug_assert_failure;
|
pub use nih_debug_assert_failure;
|
||||||
|
|
||||||
/// A `debug_assert_eq!()` analogue that prints the error with line number information instead of
|
/// A `debug_assert_eq!()` analogue that prints the error with line number information instead of
|
||||||
/// panicking.
|
/// panicking. See [`nih_debug_assert!()`] for more information.
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! nih_debug_assert_eq {
|
macro_rules! nih_debug_assert_eq {
|
||||||
($left:expr, $right:expr $(,)?) => (
|
($left:expr, $right:expr $(,)?) => (
|
||||||
if cfg!(debug_assertions) && $left != $right {
|
#[allow(clippy::neg_cmp_op_on_partial_ord)]
|
||||||
|
if cfg!(test) {
|
||||||
|
debug_assert_eq!($left, $right);
|
||||||
|
} else if cfg!(debug_assertions) && $left != $right {
|
||||||
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($left), " != ", stringify!($right))));
|
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($left), " != ", stringify!($right))));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
($left:expr, $right:expr, $format:expr $(, $($args:tt)*)?) => (
|
($left:expr, $right:expr, $format:expr $(, $($args:tt)*)?) => (
|
||||||
if cfg!(debug_assertions) && $left != $right {
|
#[allow(clippy::neg_cmp_op_on_partial_ord)]
|
||||||
|
if cfg!(test) {
|
||||||
|
debug_assert_eq!($left, $right, $format, $($($args)*)?);
|
||||||
|
} else if cfg!(debug_assertions) && $left != $right {
|
||||||
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($left), " != ", stringify!($right), ", ", $format), $($($args)*)?));
|
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($left), " != ", stringify!($right), ", ", $format), $($($args)*)?));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -142,16 +156,22 @@ macro_rules! nih_debug_assert_eq {
|
||||||
pub use nih_debug_assert_eq;
|
pub use nih_debug_assert_eq;
|
||||||
|
|
||||||
/// A `debug_assert_ne!()` analogue that prints the error with line number information instead of
|
/// A `debug_assert_ne!()` analogue that prints the error with line number information instead of
|
||||||
/// panicking.
|
/// panicking. See [`nih_debug_assert!()`] for more information.
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! nih_debug_assert_ne {
|
macro_rules! nih_debug_assert_ne {
|
||||||
($left:expr, $right:expr $(,)?) => (
|
($left:expr, $right:expr $(,)?) => (
|
||||||
if cfg!(debug_assertions) && $left == $right {
|
#[allow(clippy::neg_cmp_op_on_partial_ord)]
|
||||||
|
if cfg!(test) {
|
||||||
|
debug_assert_ne!($left, $right);
|
||||||
|
} else if cfg!(debug_assertions) && $left == $right {
|
||||||
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($left), " == ", stringify!($right))));
|
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($left), " == ", stringify!($right))));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
($left:expr, $right:expr, $format:expr $(, $($args:tt)*)?) => (
|
($left:expr, $right:expr, $format:expr $(, $($args:tt)*)?) => (
|
||||||
if cfg!(debug_assertions) && $left == $right {
|
#[allow(clippy::neg_cmp_op_on_partial_ord)]
|
||||||
|
if cfg!(test) {
|
||||||
|
debug_assert_ne!($left, $right, $format, $($($args)*)?);
|
||||||
|
} else if cfg!(debug_assertions) && $left == $right {
|
||||||
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($left), " == ", stringify!($right), ", ", $format), $($($args)*)?));
|
$crate::util::permit_alloc(|| $crate::log::debug!(concat!("Debug assertion failed: ", stringify!($left), " == ", stringify!($right), ", ", $format), $($($args)*)?));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue