axtest 0.5.12

A white-box unit testing framework for ArceOS.
Documentation
#[macro_export]
macro_rules! ax_assert {
    ($cond:expr $(,)?) => {
        if !$cond {
            return $crate::AxTestResult::Failed;
        }
    };
    ($cond:expr, $($arg:tt)+) => {
        if !$cond {
            $crate::axtest_println!(
                "assertion failed: {}",
                core::format_args!($($arg)+)
            );
            return $crate::AxTestResult::Failed;
        }
    };
}

#[macro_export]
macro_rules! ax_assert_eq {
    ($left:expr, $right:expr $(,)?) => {
        match (&$left, &$right) {
            (left_val, right_val) => {
                if !(*left_val == *right_val) {
                    $crate::axtest_println!(
                        "assertion `left == right` failed\n  left: {left_val:?}\n right: {right_val:?}"
                    );
                    return $crate::AxTestResult::Failed;
                }
            }
        }
    };
    ($left:expr, $right:expr, $($arg:tt)+) => {
        match (&$left, &$right) {
            (left_val, right_val) => {
                if !(*left_val == *right_val) {
                    $crate::axtest_println!(
                        "assertion `left == right` failed: {}\n  left: {left_val:?}\n right: {right_val:?}",
                        core::format_args!($($arg)+)
                    );
                    return $crate::AxTestResult::Failed;
                }
            }
        }
    };
}

#[macro_export]
macro_rules! ax_assert_ne {
    ($left:expr, $right:expr $(,)?) => {
        match (&$left, &$right) {
            (left_val, right_val) => {
                if *left_val == *right_val {
                    $crate::axtest_println!(
                        "assertion `left != right` failed\n  left: {left_val:?}\n right: {right_val:?}"
                    );
                    return $crate::AxTestResult::Failed;
                }
            }
        }
    };
    ($left:expr, $right:expr, $($arg:tt)+) => {
        match (&$left, &$right) {
            (left_val, right_val) => {
                if *left_val == *right_val {
                    $crate::axtest_println!(
                        "assertion `left != right` failed: {}\n  left: {left_val:?}\n right: {right_val:?}",
                        core::format_args!($($arg)+)
                    );
                    return $crate::AxTestResult::Failed;
                }
            }
        }
    };
}