starry-kernel 0.10.0

A Linux-compatible OS kernel built on ArceOS unikernel
Documentation
#[cfg(all(test, not(axtest)))]
mod tests {
    use super::*;

    #[test]
    fn rttime_watchdog_uses_exact_limits_and_one_second_soft_intervals() {
        let mut watchdog = RttimeWatchdog::new();
        assert_eq!(watchdog.check(9, 0, 10, u64::MAX), RttimeLimitAction::None);
        assert_eq!(watchdog.check(10, 0, 10, u64::MAX), RttimeLimitAction::Soft);
        assert_eq!(
            watchdog.check(1_000_009, 0, 10, u64::MAX),
            RttimeLimitAction::None
        );
        assert_eq!(
            watchdog.check(1_000_010, 0, 10, u64::MAX),
            RttimeLimitAction::Soft
        );

        let mut hard_watchdog = RttimeWatchdog::new();
        assert_eq!(
            hard_watchdog.check(19, 0, u64::MAX, 20),
            RttimeLimitAction::None
        );
        assert_eq!(
            hard_watchdog.check(20, 0, u64::MAX, 20),
            RttimeLimitAction::Hard
        );

        let accounting = CpuTimeAccounting::new().unwrap();
        let mut watchdog = RttimeWatchdog::new();
        assert_eq!(
            watchdog.check_snapshot(accounting.snapshot(0), 0, 0),
            RttimeLimitAction::None
        );
    }

    #[test]
    fn rttime_reset_generation_rearms_the_soft_limit() {
        let mut watchdog = RttimeWatchdog::new();
        assert_eq!(watchdog.check(10, 0, 10, u64::MAX), RttimeLimitAction::Soft);
        assert_eq!(watchdog.check(0, 1, 10, u64::MAX), RttimeLimitAction::None);
        assert_eq!(watchdog.check(10, 1, 10, u64::MAX), RttimeLimitAction::Soft);
    }
}