java.rs/tests/class_tests.rs

39 lines
1.1 KiB
Rust

mod test {
use java_rs::class::Value;
use java_rs::heap::ObjectRef;
use java_rs::vm::Vm;
#[test]
fn if_cmp() {
let mut vm = Vm::new("tests");
let ret = vm.execute_virtual("testclasses.IfCmp", "i_is_1()Z", vec![]).unwrap();
unsafe {
if let Value::I32(b) = *ret.get() {
// internally a boolean is an int
assert_eq!(0, b);
} else {
println!("{:?}", *ret.get());
assert!(false)
}
}
}
#[test]
fn consts() {
let mut vm = Vm::new("tests");
let ret = vm
.execute_static("testclasses.Const", "hello()Ljava/lang/String;", vec![])
.unwrap();
unsafe {
if let Value::Ref(s) = &*ret.get() {
// internally a boolean is an int
if let ObjectRef::Object(a) = &*s.get() {
println!("{:?}", a);
}
} else {
println!("{:?}", *ret.get());
assert!(false)
}
}
}
}