You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by gi...@apache.org on 2026/10/08 19:21:19 UTC
(arrow-rs) branch gh-readonly-queue/main/pr-11455-45605003b8d541e008983b80d7383d5fd81bd787 created (now 42aae335eb)
This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a change to branch gh-readonly-queue/main/pr-11455-45605003b8d541e008983b80d7383d5fd81bd787
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
at 42aae335eb test(arrow-buffer): generate negative operands in `test_i256_fuzz` (#11455)
This branch includes the following new commits:
new 42aae335eb test(arrow-buffer): generate negative operands in `test_i256_fuzz` (#11455)
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(arrow-rs) 01/01: test(arrow-buffer): generate negative operands in `test_i256_fuzz` (#11455)
Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-11455-45605003b8d541e008983b80d7383d5fd81bd787
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
commit 42aae335ebc666a5ef52e14477a51d13be3d025e
Author: Matt Butrovich <mb...@users.noreply.github.com>
AuthorDate: Thu Oct 8 18:02:51 2026 +0000
test(arrow-buffer): generate negative operands in `test_i256_fuzz` (#11455)
# Which issue does this PR close?
- Closes #11452.
# Rationale for this change
See #11452.
# What changes are included in this PR?
The length range is now `0..=32`, and each operand is negated with
probability 1/2. The negation covers small negative values, which random
bytes almost never produce.
# Are these changes tested?
This PR only changes a test. With `i256::div_rem` changed to return a
floored remainder, the old `test_i256_fuzz` passes and the new one
fails. On `main` the new test passes.
# Are there any significant user-facing changes?
No.
## AI Disclosure
I wrote this PR with help from Claude but understand and support the
core approach, implementation, and test coverage.
---
arrow-buffer/src/bigint/mod.rs | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/arrow-buffer/src/bigint/mod.rs b/arrow-buffer/src/bigint/mod.rs
index 21f7664207..d9c16087d5 100644
--- a/arrow-buffer/src/bigint/mod.rs
+++ b/arrow-buffer/src/bigint/mod.rs
@@ -1739,14 +1739,20 @@ mod tests {
for _ in 0..1000 {
let mut l = [0_u8; 32];
- let len = rng.random_range(0..32);
+ let len = rng.random_range(0..=32);
l.iter_mut().take(len).for_each(|x| *x = rng.random());
let mut r = [0_u8; 32];
- let len = rng.random_range(0..32);
+ let len = rng.random_range(0..=32);
r.iter_mut().take(len).for_each(|x| *x = rng.random());
- test_ops(i256::from_le_bytes(l), i256::from_le_bytes(r))
+ // Random bytes almost never produce a negative value of small magnitude
+ let l = i256::from_le_bytes(l);
+ let r = i256::from_le_bytes(r);
+ let l = if rng.random() { l.wrapping_neg() } else { l };
+ let r = if rng.random() { r.wrapping_neg() } else { r };
+
+ test_ops(l, r)
}
}