rust/library/core/tests/asserting.rs
Josh Soref 9cb9346005 Spelling library/
* advance
* aligned
* borrowed
* calculate
* debugable
* debuggable
* declarations
* desugaring
* documentation
* enclave
* ignorable
* initialized
* iterator
* kaboom
* monomorphization
* nonexistent
* optimizer
* panicking
* process
* reentrant
* rustonomicon
* the
* uninitialized

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-26 02:10:22 -04:00

38 lines
1.0 KiB
Rust

use core::asserting::{Capture, TryCaptureGeneric, TryCapturePrintable, Wrapper};
macro_rules! test {
($test_name:ident, $elem:expr, $captured_elem:expr, $output:literal) => {
#[test]
fn $test_name() {
let elem = $elem;
let mut capture = Capture::new();
assert!(capture.elem == None);
(&Wrapper(&elem)).try_capture(&mut capture);
assert!(capture.elem == $captured_elem);
assert_eq!(format!("{:?}", capture), $output);
}
};
}
#[derive(Debug, PartialEq)]
struct NoCopy;
#[derive(PartialEq)]
struct NoCopyNoDebug;
#[derive(Clone, Copy, PartialEq)]
struct NoDebug;
test!(
capture_with_non_copyable_and_non_debuggable_elem_has_correct_params,
NoCopyNoDebug,
None,
"N/A"
);
test!(capture_with_non_copyable_elem_has_correct_params, NoCopy, None, "N/A");
test!(capture_with_non_debuggable_elem_has_correct_params, NoDebug, None, "N/A");
test!(capture_with_copyable_and_debuggable_elem_has_correct_params, 1i32, Some(1i32), "1");