60 lines
No EOL
1.9 KiB
Rust
60 lines
No EOL
1.9 KiB
Rust
mod test {
|
|
use std::rc::Rc;
|
|
use std::sync::Arc;
|
|
use classfile_reader::{classloader::load_class, io};
|
|
use classfile_reader::class::Value;
|
|
use classfile_reader::vm::Vm;
|
|
|
|
#[test]
|
|
fn get_constant_int() {
|
|
// let mut vm = Vm::new(".");
|
|
// let class = vm.get_class("Float").expect("ClassNotFound");
|
|
// assert_eq!((55, 0), class.get_version());
|
|
//
|
|
//
|
|
// if let Value::I32(v) = Vm::new("").execute("Float", "public static get()I", None).unwrap() {
|
|
// assert_eq!(v, 42);
|
|
// } else {
|
|
// panic!("fail");
|
|
// }
|
|
}
|
|
|
|
#[test]
|
|
fn get_constant_double() {
|
|
// let mut vm = Vm::new(".");
|
|
// let class = vm.get_class("Double").expect("ClassNotFound");
|
|
// assert_eq!((55, 0), class.get_version());
|
|
// if let Value::F64(v) = Vm::new("").execute("Double", "public static get()D", None).unwrap() {
|
|
// assert_eq!(v, 42.0);
|
|
// } else {
|
|
// panic!("fail");
|
|
// }
|
|
}
|
|
|
|
#[test]
|
|
fn get_constant_foat() {
|
|
let mut vm = Vm::new(".");
|
|
// vm.load_class("Float").expect("ClassNotFound");
|
|
// assert_eq!((55, 0), class.get_version());
|
|
// if let Value::F32(v) = Vm::new().execute(class.methods.get("public static getF()F").unwrap()).unwrap() {
|
|
// assert_eq!(v, 42.0);
|
|
// } else {
|
|
// panic!("fail");
|
|
// }
|
|
}
|
|
|
|
#[test]
|
|
fn get_float() {
|
|
// assert_eq!((55, 0), class.get_version());
|
|
|
|
let mut vm = Vm::new("/Users/FJ19WK/RustroverProjects/classfile_reader/tests");
|
|
|
|
let c = vm.get_class("Float").unwrap();
|
|
let object = Arc::new(vm.new_instance(c));
|
|
if let Value::F32(v) = *vm.execute("Float","public getF2()F", Some(object)).unwrap() {
|
|
assert_eq!(v, 0.0);
|
|
} else {
|
|
panic!("fail");
|
|
}
|
|
}
|
|
} |