mirror of https://github.com/fafhrd91/actix-net
Make double set_available false debug assert panic
This commit is contained in:
parent
28dcd3b9da
commit
269bd24da9
|
@ -119,7 +119,11 @@ impl Availability {
|
||||||
if avail {
|
if avail {
|
||||||
self.0[offset] |= 1 << idx as u128;
|
self.0[offset] |= 1 << idx as u128;
|
||||||
} else {
|
} else {
|
||||||
self.0[offset] ^= 1 << idx as u128;
|
let shift = 1 << idx as u128;
|
||||||
|
|
||||||
|
debug_assert_ne!(self.0[offset] & shift, 0);
|
||||||
|
|
||||||
|
self.0[offset] ^= shift;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -519,6 +523,8 @@ mod test {
|
||||||
aval.set_available(idx, true);
|
aval.set_available(idx, true);
|
||||||
assert!(aval.available());
|
assert!(aval.available());
|
||||||
|
|
||||||
|
aval.set_available(idx, true);
|
||||||
|
|
||||||
aval.set_available(idx, false);
|
aval.set_available(idx, false);
|
||||||
assert!(!aval.available());
|
assert!(!aval.available());
|
||||||
}
|
}
|
||||||
|
@ -559,6 +565,13 @@ mod test {
|
||||||
single(&mut aval, 512);
|
single(&mut aval, 512);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
|
fn double_set_unavailable() {
|
||||||
|
let mut aval = Availability::default();
|
||||||
|
aval.set_available(233, false);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn pin_point() {
|
fn pin_point() {
|
||||||
let mut aval = Availability::default();
|
let mut aval = Availability::default();
|
||||||
|
|
Loading…
Reference in New Issue