On the i386 (32-bit x86) architecture, the size of usize in Rust is 4 bytes (32 bits)
https://github.com/rust-bakery/nom/blob/main/tests/issues.rs#L145
I proposed a patch for Debian to make the test pass. But I'm not sure it's correct.
From: Ermakov Alexander <ermakovav@altgtu.ru>
Date: Mar, 04 2026 09:49:33 +0700
Subject: Fix out of range in tests for i386
Forwarded: no
--- rust-nom-7-7.1.3.orig/tests/issues.rs
+++ rust-nom-7-7.1.3/tests/issues.rs
@@ -139,7 +139,10 @@ mod issue_647 {
fn issue_848_overflow_incomplete_bits_to_bytes() {
fn take(i: &[u8]) -> IResult<&[u8], &[u8]> {
use nom::bytes::streaming::take;
- take(0x2000000000000000_usize)(i)
+ #[cfg(not(target_arch = "x86"))]
+ { take(0x2000000000000000_usize)(i) }
+ #[cfg(target_arch = "x86")]
+ { take(0x20000000_usize)(i) }
}
fn parser(i: &[u8]) -> IResult<&[u8], &[u8]> {
use nom::bits::{bits, bytes};
https://sources.debian.org/src/rust-nom-7/7.1.3-3/debian/patches/fix-tests-for-i386.patch
https://github.com/rust-bakery/nom/blob/main/tests/issues.rs#L145
I proposed a patch for Debian to make the test pass. But I'm not sure it's correct.
https://sources.debian.org/src/rust-nom-7/7.1.3-3/debian/patches/fix-tests-for-i386.patch