Skip to content

Commit 09d2f2f

Browse files
ithinuelJorge Aparicio
authored and
Jorge Aparicio
committed
exclude from tests values out of integer range (and NaN).
1 parent d96102d commit 09d2f2f

File tree

1 file changed

+32
-8
lines changed

1 file changed

+32
-8
lines changed

src/float/conv.rs

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -200,43 +200,67 @@ mod tests {
200200
fn __fixsfsi(f: extern fn(f32) -> i32,
201201
a: F32)
202202
-> Option<I32> {
203-
Some(I32(f(a.0)))
203+
if a.0 > (i32::max_value() as f32) ||
204+
a.0 < (i32::min_value() as f32) || a.0.is_nan() {
205+
None
206+
} else { Some(I32(f(a.0))) }
204207
}
205208
fn __fixsfdi(f: extern fn(f32) -> i64,
206209
a: F32)
207210
-> Option<I64> {
208-
Some(I64(f(a.0)))
211+
if a.0 > (i64::max_value() as f32) ||
212+
a.0 < (i64::min_value() as f32) || a.0.is_nan() {
213+
None
214+
} else { Some(I64(f(a.0))) }
209215
}
210216
fn __fixdfsi(f: extern fn(f64) -> i32,
211217
a: F64)
212218
-> Option<I32> {
213-
Some(I32(f(a.0)))
219+
if a.0 > (i32::max_value() as f64) ||
220+
a.0 < (i32::min_value() as f64) || a.0.is_nan() {
221+
None
222+
} else { Some(I32(f(a.0))) }
214223
}
215224
fn __fixdfdi(f: extern fn(f64) -> i64,
216225
a: F64)
217226
-> Option<I64> {
218-
Some(I64(f(a.0)))
227+
if a.0 > (i64::max_value() as f64) ||
228+
a.0 < (i64::min_value() as f64) || a.0.is_nan() {
229+
None
230+
} else { Some(I64(f(a.0))) }
219231
}
220232

221233
fn __fixunssfsi(f: extern fn(f32) -> u32,
222234
a: F32)
223235
-> Option<U32> {
224-
Some(U32(f(a.0)))
236+
if a.0 > (u32::max_value() as f32) ||
237+
a.0 < (u32::min_value() as f32) || a.0.is_nan() {
238+
None
239+
} else { Some(U32(f(a.0))) }
225240
}
226241
fn __fixunssfdi(f: extern fn(f32) -> u64,
227242
a: F32)
228243
-> Option<U64> {
229-
Some(U64(f(a.0)))
244+
if a.0 > (u64::max_value() as f32) ||
245+
a.0 < (u64::min_value() as f32) || a.0.is_nan() {
246+
None
247+
} else { Some(U64(f(a.0))) }
230248
}
231249
fn __fixunsdfsi(f: extern fn(f64) -> u32,
232250
a: F64)
233251
-> Option<U32> {
234-
Some(U32(f(a.0)))
252+
if a.0 > (u32::max_value() as f64) ||
253+
a.0 < (u32::min_value() as f64) || a.0.is_nan() {
254+
None
255+
} else { Some(U32(f(a.0))) }
235256
}
236257
fn __fixunsdfdi(f: extern fn(f64) -> u64,
237258
a: F64)
238259
-> Option<U64> {
239-
Some(U64(f(a.0)))
260+
if a.0 <= (u64::max_value() as f64) ||
261+
a.0 >= (u64::min_value() as f64) || a.0.is_nan() {
262+
None
263+
} else { Some(U64(f(a.0))) }
240264
}
241265
}
242266
}

0 commit comments

Comments
 (0)