use windows_ioring_sys::{IoRing, RingVersion, capabilities};
#[test]
fn a_ring_negotiates_a_version_no_higher_than_the_hosts_maximum() {
let ring = IoRing::new(64, 128).expect("create ring");
let caps = capabilities().expect("capabilities");
assert!(ring.version() <= caps.max_version);
assert!(ring.version() <= RingVersion::HIGHEST_KNOWN);
}
#[test]
fn a_negotiated_ring_reports_its_version_back_through_get_ring_info() {
let ring = IoRing::new(64, 128).expect("create ring");
let info = ring.info().expect("GetIoRingInfo");
assert_eq!(info.version, ring.version());
}
#[test]
fn run_down_is_a_no_op_when_nothing_is_outstanding() {
let mut ring = IoRing::new(64, 128).expect("create ring");
ring.run_down().expect("run_down with nothing outstanding");
assert_eq!(ring.outstanding(), 0);
}
#[test]
fn dropping_a_ring_with_nothing_outstanding_does_not_hang() {
let ring = IoRing::new(64, 128).expect("create ring");
drop(ring);
}