blob: 6a1cdf20c341d986c2f44cf6f98917525a9ba189 [file] [log] [blame]
#![cfg(feature = "invocation")]
use jni::{errors::Error, objects::JValue};
mod util;
use util::{attach_current_thread, print_exception};
#[test]
fn test_java_integers() {
let mut env = attach_current_thread();
let array_length = 50;
for value in -10..10 {
env.with_local_frame(16, |env| -> Result<_, Error> {
let integer_value =
env.new_object("java/lang/Integer", "(I)V", &[JValue::Int(value)])?;
let values_array =
env.new_object_array(array_length, "java/lang/Integer", &integer_value)?;
let result = env
.call_static_method(
"java/util/Arrays",
"binarySearch",
"([Ljava/lang/Object;Ljava/lang/Object;)I",
&[
JValue::Object(&values_array),
JValue::Object(&integer_value),
],
)?
.i()?;
assert!(0 <= result && result < array_length);
Ok(())
})
.unwrap_or_else(|e| {
print_exception(&env);
panic!("{:#?}", e);
})
}
}