Skip to content

Commit

Permalink
give BorrowFlagsState fields descriptive names
Browse files Browse the repository at this point in the history
  • Loading branch information
ngoldbaum committed Feb 18, 2025
1 parent e4ca231 commit 74bc5dd
Showing 1 changed file with 63 additions and 52 deletions.
115 changes: 63 additions & 52 deletions src/borrow/shared.rs
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,12 @@ mod tests {
use crate::untyped_array::PyUntypedArrayMethods;
use pyo3::ffi::c_str;

struct BorrowFlagsState(usize, usize, Option<isize>);
struct BorrowFlagsState {
#[cfg(not(Py_GIL_DISABLED))]
n_flags: usize,
n_arrays: usize,
flag: Option<isize>,
}

fn get_borrow_flags_state<'py>(
py: Python<'py>,
Expand All @@ -460,13 +465,19 @@ mod tests {
.lock()
.unwrap();
if let Some(base_arrays) = inner.get(&base) {
BorrowFlagsState(
inner.len(),
base_arrays.len(),
base_arrays.get(key).copied(),
)
BorrowFlagsState {
#[cfg(not(Py_GIL_DISABLED))]
n_flags: inner.len(),
n_arrays: base_arrays.len(),
flag: base_arrays.get(key).copied(),
}
} else {
BorrowFlagsState(0, 0, None)
BorrowFlagsState {
#[cfg(not(Py_GIL_DISABLED))]
n_flags: 0,
n_arrays: 0,
flag: None,
}
}
}

Expand Down Expand Up @@ -797,10 +808,10 @@ mod tests {
let state = get_borrow_flags_state(py, base1, &key1);
#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
assert_eq!(state.0, 1);
assert_eq!(state.n_flags, 1);

assert_eq!(state.1, 1);
assert_eq!(state.2, Some(-1));
assert_eq!(state.n_arrays, 1);
assert_eq!(state.flag, Some(-1));
}

let key2 = borrow_key(py, array2.as_array_ptr());
Expand All @@ -810,14 +821,14 @@ mod tests {
let state = get_borrow_flags_state(py, base1, &key1);
#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
assert_eq!(state.0, 2);
assert_eq!(state.n_flags, 2);

assert_eq!(state.1, 1);
assert_eq!(state.2, Some(-1));
assert_eq!(state.n_arrays, 1);
assert_eq!(state.flag, Some(-1));

let state = get_borrow_flags_state(py, base2, &key2);
assert_eq!(state.1, 1);
assert_eq!(state.2, Some(1));
assert_eq!(state.n_arrays, 1);
assert_eq!(state.flag, Some(1));
}
});
}
Expand All @@ -844,9 +855,9 @@ mod tests {

#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
assert_eq!(state.0, 1);
assert_eq!(state.1, 1);
assert_eq!(state.2, Some(-1));
assert_eq!(state.n_flags, 1);
assert_eq!(state.n_arrays, 1);
assert_eq!(state.flag, Some(-1));
}

let view2 = py
Expand All @@ -862,12 +873,12 @@ mod tests {
let state = get_borrow_flags_state(py, base, &key1);
#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
assert_eq!(state.0, 1);
assert_eq!(state.1, 2);
assert_eq!(state.2, Some(-1));
assert_eq!(state.n_flags, 1);
assert_eq!(state.n_arrays, 2);
assert_eq!(state.flag, Some(-1));

let state = get_borrow_flags_state(py, base, &key2);
assert_eq!(state.2, Some(1));
assert_eq!(state.flag, Some(1));
}

let view3 = py
Expand All @@ -883,15 +894,15 @@ mod tests {
let state = get_borrow_flags_state(py, base, &key1);
#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
assert_eq!(state.0, 1);
assert_eq!(state.1, 2);
assert_eq!(state.2, Some(-1));
assert_eq!(state.n_flags, 1);
assert_eq!(state.n_arrays, 2);
assert_eq!(state.flag, Some(-1));

let state = get_borrow_flags_state(py, base, &key2);
assert_eq!(state.2, Some(2));
assert_eq!(state.flag, Some(2));

let state = get_borrow_flags_state(py, base, &key3);
assert_eq!(state.2, Some(2));
assert_eq!(state.flag, Some(2));
}

let view4 = py
Expand All @@ -907,18 +918,18 @@ mod tests {
let state = get_borrow_flags_state(py, base, &key1);
#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
assert_eq!(state.0, 1);
assert_eq!(state.1, 3);
assert_eq!(state.2, Some(-1));
assert_eq!(state.n_flags, 1);
assert_eq!(state.n_arrays, 3);
assert_eq!(state.flag, Some(-1));

let state = get_borrow_flags_state(py, base, &key2);
assert_eq!(state.2, Some(2));
assert_eq!(state.flag, Some(2));

let state = get_borrow_flags_state(py, base, &key3);
assert_eq!(state.2, Some(2));
assert_eq!(state.flag, Some(2));

let state = get_borrow_flags_state(py, base, &key4);
assert_eq!(state.2, Some(1));
assert_eq!(state.flag, Some(1));
}

drop(shared2);
Expand All @@ -927,18 +938,18 @@ mod tests {
let state = get_borrow_flags_state(py, base, &key1);
#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
assert_eq!(state.0, 1);
assert_eq!(state.1, 3);
assert_eq!(state.2, Some(-1));
assert_eq!(state.n_flags, 1);
assert_eq!(state.n_arrays, 3);
assert_eq!(state.flag, Some(-1));

let state = get_borrow_flags_state(py, base, &key2);
assert_eq!(state.2, Some(1));
assert_eq!(state.flag, Some(1));

let state = get_borrow_flags_state(py, base, &key3);
assert_eq!(state.2, Some(1));
assert_eq!(state.flag, Some(1));

let state = get_borrow_flags_state(py, base, &key4);
assert_eq!(state.2, Some(1));
assert_eq!(state.flag, Some(1));
}

drop(shared3);
Expand All @@ -947,18 +958,18 @@ mod tests {
let state = get_borrow_flags_state(py, base, &key1);
#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
assert_eq!(state.0, 1);
assert_eq!(state.1, 2);
assert_eq!(state.2, Some(-1));
assert_eq!(state.n_flags, 1);
assert_eq!(state.n_arrays, 2);
assert_eq!(state.flag, Some(-1));

let state = get_borrow_flags_state(py, base, &key2);
assert_eq!(state.2, None);
assert_eq!(state.flag, None);

let state = get_borrow_flags_state(py, base, &key3);
assert_eq!(state.2, None);
assert_eq!(state.flag, None);

let state = get_borrow_flags_state(py, base, &key4);
assert_eq!(state.2, Some(1));
assert_eq!(state.flag, Some(1));
}

drop(exclusive1);
Expand All @@ -967,26 +978,26 @@ mod tests {
let state = get_borrow_flags_state(py, base, &key1);
#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
assert_eq!(state.0, 1);
assert_eq!(state.1, 1);
assert_eq!(state.2, None);
assert_eq!(state.n_flags, 1);
assert_eq!(state.n_arrays, 1);
assert_eq!(state.flag, None);

let state = get_borrow_flags_state(py, base, &key2);
assert_eq!(state.2, None);
assert_eq!(state.flag, None);

let state = get_borrow_flags_state(py, base, &key3);
assert_eq!(state.2, None);
assert_eq!(state.flag, None);

let state = get_borrow_flags_state(py, base, &key4);
assert_eq!(state.2, Some(1));
assert_eq!(state.flag, Some(1));
}

drop(shared4);

#[cfg(not(Py_GIL_DISABLED))]
// borrow checking state is shared and other tests might have registered a borrow
{
assert_eq!(get_borrow_flags_state(py, base, &key1).0, 0);
assert_eq!(get_borrow_flags_state(py, base, &key1).n_flags, 0);
}
});
}
Expand Down

0 comments on commit 74bc5dd

Please sign in to comment.