fn calculate_pressure()

in below/src/test.rs [294:353]


fn calculate_pressure() {
    let mut sample: Sample = Default::default();
    let mut last_sample: Sample = Default::default();
    // Two measurements are at least 6s apart
    let pressure = cgroupfs::PressureMetrics {
        avg10: Some(90.0),
        avg60: Some(35.0),
        avg300: Some(16.0),
        total: Some(16_000_000),
    };
    let last_pressure = cgroupfs::PressureMetrics {
        avg10: Some(80.0),
        avg60: Some(30.0),
        avg300: Some(15.0),
        total: Some(10_000_000),
    };
    sample.cgroup.pressure = Some(cgroupfs::Pressure {
        cpu: cgroupfs::CpuPressure {
            some: pressure.clone(),
        },
        io: cgroupfs::IoPressure {
            some: pressure.clone(),
            full: pressure.clone(),
        },
        memory: cgroupfs::MemoryPressure {
            some: pressure.clone(),
            full: pressure,
        },
    });
    last_sample.cgroup.pressure = Some(cgroupfs::Pressure {
        cpu: cgroupfs::CpuPressure {
            some: last_pressure.clone(),
        },
        io: cgroupfs::IoPressure {
            some: last_pressure.clone(),
            full: last_pressure.clone(),
        },
        memory: cgroupfs::MemoryPressure {
            some: last_pressure.clone(),
            full: last_pressure,
        },
    });
    // Measure as 5s, which could happen if last sample took too long to record
    let model = Model::new(
        SystemTime::now(),
        &sample,
        Some((&last_sample, Duration::from_secs(5))),
    );
    // Use avg10 of current pressure metrics and ignore last one
    assert_eq!(
        model.cgroup.data.pressure,
        Some(CgroupPressureModel {
            cpu_some_pct: Some(90.0),
            io_some_pct: Some(90.0),
            io_full_pct: Some(90.0),
            memory_some_pct: Some(90.0),
            memory_full_pct: Some(90.0),
        })
    );
}